核心方案是采用双缓冲(DMA半传输/传输完成中断)配合循环模式,并在中断中切换处理缓冲区。具体操作:1) 配置ADC为扫描模式+连续转换,DMA设为循环模式,数据宽度与ADC分辨率匹配(如12位用半字)。2) 开启DMA半传输和传输完成中断,分别对应两个缓冲区(各存N次采样),在中断里处理已满的缓冲区,避免覆盖。3) 确保ADC采样时间足够长(如采样周期>1.5us),且DMA优先级高于CPU访问,防止总线冲突导致错位。4) 若多路时序要求严格,可改用定时器触发ADC转换(如TIM1更新事件),保证采样间隔精确。5) 在中断中通过标志位或序号校验数据,如检查通道ID(若ADC有注入通道)或软件计数,发现错位则重新同步。实操建议:先用逻辑分析仪验证时序,再调采样周期;若仍错位,检查DMA配置的MEMSIZE和PSIZE是否一致。
mcuku 阿沐 · 2026-08-27