一.引言:

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();

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐