[STM32L0] ADC采样结果偶尔跳变,怀疑和DMA传输有冲突

[复制链接]
111|10
周半梅 发表于 2025-10-5 07:14 | 显示全部楼层 |阅读模式
在做多通道ADC采样时,发现偶尔有一个通道的值会突然跳很高,然后又恢复正常。采样是用DMA循环传输的。单步调试看寄存器没问题,怀疑可能是DMA和ADC触发的时序有点错位。
Clyde011 发表于 2025-10-5 07:20 | 显示全部楼层
可以考虑用双缓冲DMA,看是不是切换瞬间数据乱了。
公羊子丹 发表于 2025-10-5 07:21 | 显示全部楼层
你是不是在采样结束回调里又修改了ADC配置?那可能打乱DMA节奏。
 楼主| 周半梅 发表于 2025-10-5 07:22 | 显示全部楼层
多通道扫描模式下如果没开连续转换,容易出这种“卡顿”。
帛灿灿 发表于 2025-10-5 07:23 | 显示全部楼层
我之前遇到过,是DMA缓存没清空,残留上一次的数据。
童雨竹 发表于 2025-10-5 07:24 | 显示全部楼层
有时候地线噪声也会造成ADC值飘高,尤其是模拟地没分开。
万图 发表于 2025-10-5 07:25 | 显示全部楼层
可以试着加点采样平均,看跳变是不是随机的。
Wordsworth 发表于 2025-10-5 07:26 | 显示全部楼层
我觉得也可能是某个通道输入阻抗太高,采样保持时间不够。
Bblythe 发表于 2025-10-5 07:27 | 显示全部楼层
要不你关掉DMA,用单次模式采几次看看,是不是还会跳。
Pulitzer 发表于 2025-10-5 07:27 | 显示全部楼层
我怀疑是DMA半传输中断没处理好,造成错位。
Uriah 发表于 2025-10-5 07:28 | 显示全部楼层
这种情况我加了个互斥锁保护ADC启动就好了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

167

主题

6128

帖子

1

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