[STM32G4] G4的ADC+DMA模式采样,数据顺序错位了?

[复制链接]
816|13
 楼主| 万图 发表于 2025-5-18 08:04 | 显示全部楼层 |阅读模式
AD, ADC, DM, DMA, dc
搞了三个通道轮询,DMA采集回来的数据偶尔不对位,怀疑是不是ADC触发没对上。
Clyde011 发表于 2025-5-18 08:08 | 显示全部楼层
看看是不是Timer触发冲突了。
公羊子丹 发表于 2025-5-18 08:09 | 显示全部楼层
是不是用的Scan模式?顺序会乱。
周半梅 发表于 2025-5-18 08:09 | 显示全部楼层
DMA circular模式开了吗?
帛灿灿 发表于 2025-5-18 08:10 | 显示全部楼层
用双缓冲再对齐一下比较安全。
童雨竹 发表于 2025-5-18 08:11 | 显示全部楼层
多通道采样记得通道配置顺序要对。
 楼主| 万图 发表于 2025-5-18 08:11 | 显示全部楼层
有些通道模拟延时大,要注意切换间隔。
Wordsworth 发表于 2025-5-18 08:12 | 显示全部楼层
建议每次采样后打一包再分析。
Bblythe 发表于 2025-5-18 08:13 | 显示全部楼层
我试过改成single mode就没错位了。
Pulitzer 发表于 2025-5-18 08:14 | 显示全部楼层
DMA传输长度是不是设错了?
Uriah 发表于 2025-5-18 08:15 | 显示全部楼层
确认下ADC寄存器的更新顺序。
hehhehee 发表于 2025-5-31 17:49 | 显示全部楼层
DMA循环模式时,如果处理不及时,可能覆盖缓存导致数据错乱。
淡漠安然 发表于 2025-6-9 18:46 | 显示全部楼层
如果ADC触发和DMA传输没有正确同步,可能导致数据顺序错位。例如,DMA可能在ADC完成采样之前就开始传输数据,或者ADC在DMA传输过程中触发了新的采样
夜阑风雨 发表于 2025-6-9 19:00 | 显示全部楼层
检查ADC的EOC(End of Conversion)标志,确保在DMA传输之前ADC已经完成采样
别乱了阵脚 发表于 2025-6-9 19:21 | 显示全部楼层
DMA配置不当可能导致数据传输顺序错位。例如,DMA的缓冲区大小、数据宽度或传输方向配置错误
远山寻你 发表于 2025-6-9 20:00 | 显示全部楼层
确保DMA的缓冲区大小足够大,能够容纳所有通道的采样数据
一秒落纱 发表于 2025-6-9 21:00 | 显示全部楼层
检查DMA的数据宽度(如8位、16位或32位)是否与ADC的分辨率匹配
江河千里 发表于 2025-6-9 22:30 | 显示全部楼层
一定要保证DMA的传输方向(从外设到内存)正确。
冰春彩落下 发表于 2025-6-10 01:00 | 显示全部楼层
确保ADC触发和DMA传输的时序正确。可以使用定时器触发ADC采样,并确保DMA在ADC完成采样后才开始传输数据
三生万物 发表于 2025-6-10 01:00 | 显示全部楼层
可以查查ADC_SQR1、ADC_SQR2和ADC_SQR3寄存器中的通道顺序配置是否正确
您需要登录后才可以回帖 登录 | 注册

本版积分规则

185

主题

6337

帖子

1

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