打印
[研电赛技术支持]

GD32F405 DMA的多通道ADC采集,DMA顺序改变问题

[复制链接]
850|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小凡凡丶|  楼主 | 2022-3-4 20:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 小凡凡丶 于 2022-3-7 15:28 编辑

请问下大家有遇到过DMA的多通道ADC采集,在DMA的传输过程中顺序改变这样的情况嘛?我实际使用的7路ADC采集,采用DMA,在实际的测试中发现,DMA把原来的0--->1--->2--->3--->4--->5--->6顺序改变成了1--->2--->3--->4--->5--->6--->0,网上的各种方法都试过了,不知道问题出在哪里,现在的解决办法是在初始化ADC的时候,把ADC的采集顺序往前倒1位,这样在传输过程中才能正常,但是始终不是解决办法,请问下大家有遇到这种问题吗?是怎么解决的呢?

使用特权

评论回复
沙发
小凡凡丶|  楼主 | 2022-3-7 15:31 | 只看该作者
有人遇到同类问题的吗?

使用特权

评论回复
板凳
sonicll| | 2022-3-7 17:24 | 只看该作者
感觉像是ADC第一次采样的时候,DMA还没有搬运数据,从第二次采样开始,DMA才开始搬数据,这样就往后顺延了1个数据,检查一下你的代码,ADC有没有在DMA通道使能之前就进行了一次采样?

使用特权

评论回复
地板
小凡凡丶|  楼主 | 2022-3-8 11:40 | 只看该作者
sonicll 发表于 2022-3-7 17:24
感觉像是ADC第一次采样的时候,DMA还没有搬运数据,从第二次采样开始,DMA才开始搬数据,这样就往后顺延了1 ...

我的初始化顺序为,DMA--->ADC,在ADC初始化里面,先使能的DMA,再使能的DMA,再启动ADC校准,校准完成后,再启用软件触发,我在仿真下观察,发现第一次进DMA完成中断里,我的内存上会有两次的数据,第二次转换时数据没有更新,从第三次开始数据才开始更新,不知道为什么,也就是从第三次开始,数据发生了错乱,原本第7个数据,在内存的第一个位置,好奇怪啊

使用特权

评论回复
5
tpgf| | 2022-4-2 14:28 | 只看该作者
顺序可以人为设定吗

使用特权

评论回复
6
paotangsan| | 2022-4-2 14:39 | 只看该作者
dma和普通模式不一样的吗

使用特权

评论回复
7
renzheshengui| | 2022-4-2 14:46 | 只看该作者
难道是启动位置不对吗

使用特权

评论回复
8
wakayi| | 2022-4-2 14:55 | 只看该作者
也就是说dma有一个准备的过程?

使用特权

评论回复
9
wowu| | 2022-4-2 15:01 | 只看该作者
触发的顺序改改试试看

使用特权

评论回复
10
xiaoqizi| | 2022-4-2 15:14 | 只看该作者
从第三次开始顺序就正常了吗?

使用特权

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

本版积分规则

2

主题

13

帖子

0

粉丝