一,基本介绍![](https://img-blog.csdnimg.cn/23bd428b79734d1695394e31367b279b.png)
1,ADC时钟。
ADC时钟一般常用来自于经可编程预分频器分频的
APB2
时钟,该预分频器允许
ADC
在
f
PCLK2
/2、 /4
、
/6
或
/8
下工作。
ADCCLK
的最大值限制。
2,ADC通道。
有
16
条复用通道。我的理解是每个ADC(1,2,3)都有16个通道输入,但是对应到外部IO口,ADC123是有共用的,也就是外部ADC输入的IO不是16*3,大部分是三个ADC复用这些IO口。
可以将转换分为两组:常规转换和注入转换。
一个
常规转换组
最多由
16
个转换构成。
一个
注入转换组
最多由
4
个转换构成。
温度传感器、
V
REFINT
和
V
BAT
内部通道
温度传感器在内部连接到与
VBAT
共用的通道
ADC1_IN18
。一次只能选择一个转换(温
度传感器或
VBAT
)。同时设置了温度传感器和
VBAT
转换时,将只进行
VBAT
转换。
内部参考电压
VREFINT
连接到
ADC1_IN17
。
V
BAT
通道连接到
ADC1_IN18
通道。该通道也可转换为注入通道或常规通道。
规则通道和注入通道的区别,还是没理解透彻,网上解释
规则通道:
相当于正常运行的程序,
注入通道:
相当于一个“中断”,打断正在进行的规则通道,从而进行注入通道的程序。当注入通道完成转换后,然后继续完成规则通道的转换。
3,ADC触发方式
可分软件触发和外部触发。
软件触发,指控制寄存器触发一次ADC转换。
外部触发,可以通过外部事件(例如,定时器捕获、EXTI 中断线)触发转换,使用定时器触发属于外部触发。
触发源
对于高级定时器tim1,tim8除了TRGO还有TRGO2。
4,ADC的转换时间
进行一次采样所需的最少时钟个数。
采样时间可设置。
5,ADC采样频率
采样频率,比如使用定时器触发,触发频率就是ADC的采样频率,ADC的转换时间,限制了最大采样频率。
6,ADC的工作模式
单次转换模式,在单次转换模式下,ADC 执行一次转换。
连续转换模式,在连续转换模式下,ADC 结束一个转换后立即启动一个新的转换。
扫描模式
(Scan mode),
此模式用于扫描一组模拟通道。
二,stm32Cube IDE,软件触发单次测量设置
三,程序。
初始化,除了自动生成的初始化函数,加上开启ADC的函数
HAL_ADC_Start(&hadc1);
测试
uint32_t adc_value = HAL_ADC_GetValue(&hadc1);
参考文章: