核心思路是使用定时器触发ADC采样,并让DMA以循环模式搬运数据,同时启用ADC的DMA半传输和传输完成中断来同步处理。具体做法:1) 配置ADC为扫描模式+连续转换(或外部触发),将多通道按顺序排列,DMA设置为循环模式,数据宽度与ADC寄存器匹配(如16位),确保每轮转换结果按通道顺序写入内存缓冲区。2) 为避免错位,在DMA中断(半传输/全传输)中切换缓冲区(双缓冲),并在处理数据时以通道数为单位对齐,例如每N个样本为一帧。3) 保证时序一致性,使用定时器(如TIM1/2)的更新事件作为ADC触发源,设置固定采样周期,避免CPU干预。4) 若通道间有串扰,可增加采样时间(SMPR寄存器)或使用注入通道组。实操建议:先单通道验证DMA,再扩展多通道;用逻辑分析仪检查采样间隔是否均匀。
mcuku 阿沐 · 2026-08-27