[研电赛技术支持] GD32F405 DMA的多通道ADC采集,DMA顺序改变问题

[复制链接]
1262|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个数据,在内存的第一个位置,好奇怪啊
tpgf 发表于 2022-4-2 14:28 | 显示全部楼层
顺序可以人为设定吗
paotangsan 发表于 2022-4-2 14:39 | 显示全部楼层
dma和普通模式不一样的吗
renzheshengui 发表于 2022-4-2 14:46 | 显示全部楼层
难道是启动位置不对吗
wakayi 发表于 2022-4-2 14:55 | 显示全部楼层
也就是说dma有一个准备的过程?
wowu 发表于 2022-4-2 15:01 | 显示全部楼层
触发的顺序改改试试看
xiaoqizi 发表于 2022-4-2 15:14 | 显示全部楼层
从第三次开始顺序就正常了吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

13

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部