CubeMX系列教程——16 adc多通道采集

前面讲了如何使用CubeMX配置MCU的ADC,在实际中往往会使用多个通道采集输入的模拟量,这篇文章讲解双通道ADC的采集如何配置。

MCU的引脚PA0:ADC1的输入通道0,引脚PA5:ADC1的输入通道5。

查看原理图

使用扫描模式,连续转换,使能DMA,转换的顺序为先通道5后通道0,其配置如下,选择ADC1的通道0和通道5

CubeMX系列教程——16 adc多通道采集_第1张图片

配置ADC的参数

CubeMX系列教程——16 adc多通道采集_第2张图片

配置DMA,外设地址不变,内存地址增加。当通道5转换完成,将AD值存入对应的内存中,如果内存地址不变的话,当通道0转换完成,则AD值会将当前值覆盖掉,结果会导致通道5的值不能正常获取。打开ADC的参数栏,选择开启DMA的连续转换请求。

CubeMX系列教程——16 adc多通道采集_第3张图片

在生成的工程中添加测试代码

CubeMX系列教程——16 adc多通道采集_第4张图片

开启DMA,并指定传输的地址和长度

当传输完成时,调用回调函数,将标志置1

CubeMX系列教程——16 adc多通道采集_第5张图片

在主函数中判断标志位,当转换完成时打印采集的电压值,并将标志位置0

CubeMX系列教程——16 adc多通道采集_第6张图片

字符AD1是通道5采集的电压,字符AD2是通道0采集的额电压。

当通道5(字符AD1)接3.3V,通道0(字符AD2)接0V时,打印结果如下图

CubeMX系列教程——16 adc多通道采集_第7张图片

当通道5(字符AD1)接0V,通道0(字符AD2)接3.3V时,打印结果如下图

CubeMX系列教程——16 adc多通道采集_第8张图片

欢迎关注公众号:嵌入式学习与实践

你可能感兴趣的:(python,java,vue,js,android)