周半梅 发表于 2025-10-5 07:14

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

在做多通道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启动就好了。
页: [1]
查看完整版本: ADC采样结果偶尔跳变,怀疑和DMA传输有冲突