STM32学习 ADC

ADC,将模拟电压转换为数字变量,32单片机是12位的ADC,分辨率就是1/2^12*Vref,Vref就是参考电压,0-4095,分辨率就是参考电压/4095,也就是最低的电压值。

1.参考电压

如图是参考手册上的ADC工作框图,可以看到做上面的VRET+和VREF-,这个就是参考电压,比如这个12位的满量程,即数据位全是1的时候代表电压是多少呢,就是由这个参考电压决定,

这里给出手册上的数据表,参考电压分为参考正极和参考负极,按照手册可知一般来说ADC的测量范围和供电范围是一样的。

2.ADC时钟

右边的ADCCLK是ADC的时钟,可以理解为计算转换时间,这个来自于ADC预分频器,用RCC进行配置。

3.输入通道

再看下面可以看到输入通道(GPIO通道)ADCx_IN0-ADCx_IN15,这就对应了引脚,共计16个,还有下面两个手册上给出,指向温度传感器和内部参考电压,共计18个。

再看右侧是模拟多路开关,可以看到这个开关被分为了两组,一个规则组(最多16个通道),一个注入组(最多4个通道),这个通道就是可以最多同时输入进来这么多的电压进行检测。

4.规则组和注入组

普通的ADC,就是单个通道,转换完毕之后直接存储。

这里规则组可以理解成一个菜单,菜单上有16个菜(通道),然后按照点菜顺序(通道的序列号顺序)做好(进行转换),然后一次性给你所有数据,但是有个问题,可以看到规则组的数据寄存器只有一个,这里可以理解你的桌子只能放下一个菜,一次性给你所有的菜(数据),但是存储完一个不及时处理的话,那么就会被下一个数据覆盖掉,所以规则组通常配合DMA一起使用,在给你一个数据后及时进行转移避免覆盖。

这里的注入组和上面的类似,但是可以看到有4个注入组的数据寄存器,也就是说可以最多同时给你4个转换后的数据并进行存储,就不用担心数据覆盖的问题。

5.数据对齐

如图所示,规则组和注入组可以分别设置左对齐和右对齐。具体的细节图中已经说明,一般就选择右对齐。

6.模拟看门狗

这里可以存一个阈值上限和阈值下限,设置想要监视的通道,一旦数值不在这个范围内,就会触发中断乱叫。

7.控制位

再下面可以ADC的控制,也是分为注入组的触发控制位和规则组的触发控制位,注意这里的是硬件触发源,也可以使用软件触发。对于图中连接类型中断的第二个,具体是外部引脚还是定时器的内部信号,需要使用AFIO重映射配置。

8.转换标志位

再看图的最上面,就是结束转换后,就会置相应的标志位为1,注意注入转换结束和规则转换结束都会置EOC为1,而只有注入转换结束才会置JEOC为1。后面可以进行中断使能,进入NVIC进行中断配置。

9.规则组/注入组的四种转换模式

注意,这里视频上说是规则组的,按手册上来说,注入组也可以

这个在ADC的初始化的结构体进行配置

9.1单次转换,非扫描模式

9.2连续转换,非扫描模式

9.2单次转换,扫描模式

9.3连续转换,扫描模式

10.转换时间不常计算,看所给的视频

11.校准

ADC有个自校准模式,可以大幅度减小误差,这个是固定的只需要在初始化后面加上几个代码就行了

12.配置流程

按照介绍的顺序来,步骤包括:时钟源的配置(包括时钟总线,对应的引脚,ADC的分频时钟),模式(规则/注入)的选择,通道的选择,4种转换模式的选择,控制位的选择(可以设置为软件触发),ADC使能,自校准,开始转换,转换结束读取转换数值

参考视频

[7-1] ADC模数转换器_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值