续上篇——AD单通道转换
上一篇文章讲了AD如何单通道转换,就是简单的配置一下就可以了。这篇就来讲讲如何不利用DMA来实现多路数据采集。
AD转换存放组的缺点
理想情况是:假如我有4个外接传感器,也就是有4路数据输入,我可以把这4路数据放到1个组里面,然后等第4个数据采集完后,我就将整个组的数据打包发送。
但是,这种状态仅仅限于连续转换模式,而且需要配合DMA。单次转换会将上一路的数据覆盖掉。那么单次转换模式可以实现将四个数据同时转换嘛?
答案是可以的,但并没有做到同时,还是利用人眼余晖效应。
单通道进行多路数据转换的原理
就是依此给数据赋值,在本次数据未被覆盖前就将数据提前读取出来。
这一部分很难理解,我直接开始代码讲解:
代码讲解
首先,代码的主体还是上一篇的代码,只是改几个部分。
1,先把引脚定义好
这四个引脚分别对应ADC1的通道0,1,2,3;
2,将规则组的参数配置放到ADC读取函数里面
3,通过手动输入参数的方法来对数据进行一一赋值
4,在主函数里面定义四个变量,以此来存放读取的值
5,一一赋值
6,显示即可