打印
[STM32L0]

ADC 多通道连续转换,DMA Normal模式下停止,启动

[复制链接]
2584|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ReuterkLL|  楼主 | 2018-7-6 21:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教:

如果ADC多通道配合DMA,配置为连续扫描模式时,而DMA使用Normal模式,即转换Buffer Size之后就结束当前。

如果在DMA中断中仅仅处理里面的CNT等参数,然后重新启动DMA,此时很明显,ADC一直在运行,所以在某种情况下ADC转换的通道可能已经不是从开始设置的通道开始传输数据,而是其他一个随机通道,这个时候DMA搬运数据就会出差错。

有什么好方法在一次DMA结束后,重新启动时,ADC通道仍然从第一个起始?
或者只能在DMA中断中操作ADCstop, start?
沙发
ReuterkLL|  楼主 | 2018-7-7 10:59 | 只看该作者
DMA ADC,如果是需要传输一批次之后(多通道),正确的打开方式是:

将ADC的DMA配置CFG为one shot方式,而不是circular方式;
DMA的配置也不是循环方式。

这样,在DMA传输一批次结束之后,ADC也自动停止,就可以很从容地处理下一次DMA ADC转换传输。

使用特权

评论回复
板凳
xinpian101| | 2018-7-9 21:43 | 只看该作者
经验不错,消化消化。

使用特权

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

本版积分规则

9

主题

31

帖子

0

粉丝