STM32自学历程——非DMA的多路数据转化

续上篇——AD单通道转换

        上一篇文章讲了AD如何单通道转换,就是简单的配置一下就可以了。这篇就来讲讲如何不利用DMA来实现多路数据采集。

AD转换存放组的缺点

        理想情况是:假如我有4个外接传感器,也就是有4路数据输入,我可以把这4路数据放到1个组里面,然后等第4个数据采集完后,我就将整个组的数据打包发送。

        但是,这种状态仅仅限于连续转换模式,而且需要配合DMA。单次转换会将上一路的数据覆盖掉。那么单次转换模式可以实现将四个数据同时转换嘛?

        答案是可以的,但并没有做到同时,还是利用人眼余晖效应。

单通道进行多路数据转换的原理

        就是依此给数据赋值,在本次数据未被覆盖前就将数据提前读取出来。

这一部分很难理解,我直接开始代码讲解:

代码讲解

首先,代码的主体还是上一篇的代码,只是改几个部分。

1,先把引脚定义好

这四个引脚分别对应ADC1的通道0,1,2,3;

2,将规则组的参数配置放到ADC读取函数里面

        

3,通过手动输入参数的方法来对数据进行一一赋值

4,在主函数里面定义四个变量,以此来存放读取的值

5,一一赋值

6,显示即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值