蓝桥杯嵌入式学习(五)ADC
ADC:模拟数字转换技术,在stm32中模拟——数字转换技术通常使用逐次逼近法(通过不断进行二分比较最终确定电压值的方法)其中12位称为分辨率,在stm32中分辨率可以设置为6,8,10,12位ADC的结果存储在16位的左对齐或者右对齐的数据寄存器中ADC转换的步骤:采样,保持,量化,编码。
·
一.引言:
ADC:模拟数字转换技术,在stm32中模拟——数字转换技术通常使用逐次逼近法(通过不断进行二分比较最终确定电压值的方法)

其中12位称为分辨率,在stm32中分辨率可以设置为6,8,10,12位
ADC的结果存储在16位的左对齐或者右对齐的数据寄存器中
ADC转换的步骤:采样,保持,量化,编码。
ADC校准:
ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的精准误差。校准期间,在每个电热器上都会计算出一个误差修正码(数字值),这个码用于消除在随后的转换中每个电容器上产生的误差,建议在每次上电后执行一次校准。
启动校准前,ADC必须处于关电状态超过至少两个ADC时钟周期
二.cubeMx配置:
参考产品手册:

两个ADC进行采集:
将对应引脚配置为ADC输入引脚



一个ADC单通道采集:

一个ADC双通道采集:


三.代码模块
两个ADC进行采集:

一个ADC单通道采集:

一个ADC双通道采集:
由于ADC多通道采集时,各个通道采集的数据使用同一个寄存器,所以上一个通道的计数值会被直接覆盖。
在单通道采集的基础上,添加数组保存两个通道的数据,同时由于采集速率过快,读出数组保存的数据可能不按顺序,所以添加了每次读取后1ms的延迟。
同时,在打开多通道后,ADC自动进行连续采集,手动关闭后将无法再次打开,所以无需HAL_ADC_Stop();

更多推荐



所有评论(0)