打印
[APM32E1]

ADC+DMA采样,通道错位问题

[复制链接]
1401|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Alden|  楼主 | 2022-5-7 12:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Alden 于 2022-5-7 12:01 编辑

#技术资源# #申请原创#
ADC+DMA采样,发生通道错位问题

为方便ADC多通道采样,经常会使用DMA获取转换数据,有时会发现DMA获取到的通道出现错误。

下面是产生这个问题的代码配置:



上图的配置中,先初始化了ADC并直接开始了转化并且ADC采样时间很短,然后才开始配置DMA。
导致DMA配置过程中,ADC就已经采样了几个通道,DMA才开始搬运数据,导致数据出现错位的情况。
解决这种问题的办法也很简单:
1、DMA先与ADC初始化,都配置完之后再开始ADC采样。
2、ADC初始化之后不使能采样,DMA初始化后面再加ADC_SoftwareStartConvCmd(ADC1, ENABLE);
3、DMA是非连续转化时,需要关闭ADC和DMA,再开启ADC和DMA使能,见下图。


这样就可以得到正确的通道数据。

DMA-ADC - text.zip (4.09 MB)




使用特权

评论回复
沙发
冒冒mao| | 2022-5-14 13:10 | 只看该作者
来学习,学习

使用特权

评论回复
板凳
lidi911| | 2022-5-14 18:45 | 只看该作者
感谢分享经验

使用特权

评论回复
地板
kai迪皮| | 2022-5-19 10:52 | 只看该作者
感谢分享经验

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

83

帖子

1

粉丝