STMCU小助手
发布时间:2022-12-25 13:10
ADC引脚
注入通道与规则通道 1. 注入通道 相当于中断,最多4个通道,注入通道和它的转换顺序在ADC_JSQR寄存器中选择,注入通道转化的总数应写入ADC_JSQR寄存器的最低两位 注入通道的转换结果保存在下图中的注入通道寄存器(4*16位) 转换结束后产生标志位,能够产生相应的中断 2. 规则通道 相当于正常运行的程序,最多16个通道,规则通道和它的转化顺序在ADC_SQRx寄存器中进行选择,规则通道转换的总数应写入ADC_SQR1寄存器的最低4位中 规则通道的转换结果保存在下图中的规则通道数据寄存器(16位) 转换结束后产生标志位,能够产生相应的中断
ADC时钟
ADC的触发事件
ADC的运行模式 1. 单次转换模式 只执行一次转换 可以通过以下方式启动: 设置ADC_CR2寄存器的ADON位(规则通道) 外部触发启动(规则通道或注入通道) 如果一个规则通道转换完成,则: 转换结果数据被存储在16位的ADC_DR寄存器中饭 EOC转换结束标志被置1 如果设置了EOCIE,则产生中断 如果一个注入通道被转换,则: 转换结果数据被存储在16位的ADC_DRJ1寄存器中饭 JEOC注入转换结束标志被置1 如果设置了JEOCIE,则产生中断 2. 连续转换模式 ADC转换已结束马上启动另一次转换 此模式可以通过外部触发启动或通过设置ADC_CR2寄存器的ADON位启动 如果一个规则通道转换完成,则: 转换结果数据被存储在16位的ADC_DR寄存器中饭 EOC转换结束标志被置1 如果设置了EOCIE,则产生中断 如果一个注入通道被转换,则: 转换结果数据被存储在16位的ADC_DRJ1寄存器中饭 JEOC注入转换结束标志被置1 如果设置了JEOCIE,则产生中断 3. 扫描模式 用于扫描一组模拟通道 可以通过设置ADC_CR1的SCAN位来控制 一旦开启,ADC将会扫描所有被ADC_SQRX寄存器(针对规则通道)或ADC_JSQR寄存器(针对注入通道)选中的通道 在每个扫描组的每个通道上执行单次转换,每次转换结束时,同一组的下一个通道被自动转换 如果设置了CONT位,则转换不会在选择组的最后一个通道上停止,而是再次从选择组的第一个通道继续转换 如果设置了DMA位,每次EOC后,DMA控制器把规则通道的转换数据传输到SRAM中,而注入通道转换的数据总是存储在ADC_JDRx寄存器中 ADC的中断 规则通道转换结束和注入通道转换结束都能产生中断,有独立的中断使能位 ADC1和ADC2的中断映射在同一个中断向量上,而ADC3的中断有自己的中断向量
ADC的时钟 RCC_CFGR寄存器
注意不要让ADC的时钟超过14 MHz ADC控制寄存器 ADC_CR1
ADC_CR2控制器
ADC的数据对齐 左对齐或右对齐 由于STMF1自带的ADC是12位的,而数据寄存器是16位的,因此可以设置转化结果为左对齐或右对齐
ADC的采样时间设置 设置好预分频后相当于确定了ADC的时钟,即ADC时钟的周期(ADC_CLK) 需要用多少的ADC采样周期来完成一次采样,可以在这2个寄存器里进行设置 总的转换时间为采样时间+12.5个ADC时钟周期 通过计算可知,STM32F1自带ADC的最小转换时间是1微秒
ADC的规则转换通道寄存器
ADC的注入转换通道寄存器
ADC数据寄存器
ADC状态寄存器
ADC使用的配置过程 1. 开启相关时钟,记住配置相应的GPIO引脚为模拟输入 开启相关时钟
配置GPIO引脚
2. 设置ADC时钟
设置完后复位
这里的ADC_DeInit函数的实现如下
3. 初始化ADC的相关参数 ADC初始化
这个函数的实现如下
初始化的结构体如下: ADC_InitTypeDef
使用单次转换还是连续转换,可以选择的参数:
触发方式的可选择项:
数据对齐方式的可选性:
4. 使能ADC并进行校准
ADC_Cmd函数的实现如下
ADC_ResetCalibration函数实现如下
5. ADC配置规则转换通道参数使能软件启动并获取结果
ADC_GetConversionValue函数的实现
ADC_SoftwareStartConvCmd函数的实现
ADC_ITConfig的实现
ADC_StartCalibration的实现
———————————————— 版权声明:CodeForCoffee |
STM32固件库分享,超全系列整理
经验分享 | 为什么重启ADC的DMA传输要先停掉ADC?
【MCU实战经验】基于STM32F103的二轮平衡车(6轴上位机 源代...
经验分享 | STM32 ADC过采样话题
10张图带你完全掌握STM32 GPIO,从入门到精通,收藏就够了!
如果你解决了这些问题,就可以直接学STM32
STM32的分类和选型
学习STM32很简单?
STM32到底由什么组成?内核和外设的关系又是怎样的?看这篇!
GD32和STM32的区别在哪里??
微信公众号
手机版