核心思路:用定时器触发ADC,再用DMA搬运,并开启ADC的DMA半传输/传输完成中断做双缓冲。定时器触发能保证每路ADC在同一时刻采样(如规则组序列),避免CPU干预导致的抖动。数据错位通常源于DMA搬运与ADC转换不同步,建议:1)将ADC配置为扫描模式+连续转换,DMA循环模式,缓冲区大小设为通道数×采样次数;2)在DMA中断里切换双缓冲(如用两个数组),处理当前缓冲时另一缓冲继续采集,防止覆盖;3)若多路需严格同时刻,用ADC注入组配合定时器,或对每路加采样保持电路。实操上,先验证单路DMA时序,再扩展多路;用逻辑分析仪抓取转换完成信号对比数据时间戳。
mcuku 阿沐 · 2026-08-27