核心方案:使用ADC的注入组(Injected Group)配合DMA,或采用规则组多通道+定时器触发+DMA循环模式。规则组多通道DMA传输时,数据按通道顺序排列,若通道切换或DMA未及时读取,易错位。建议:1) 配置ADC为扫描模式+连续转换,DMA设为循环模式,缓冲区大小=通道数×采样次数,每次转换完成触发DMA搬运,确保数据对齐;2) 用定时器(如TIM1)的TRGO事件触发ADC启动,实现硬件级同步采样,避免软件延迟;3) 在DMA传输完成中断中,用标志位校验缓冲区首字节对应的通道号(如通过ADC1->DR的序列),若错位则重置DMA指针。实操中,将DMA的传输数据宽度设为字(32位),ADC分辨率设为12位,左对齐,可减少对齐问题。若需多ADC同步,使用ADC的同步模式(如ADC1和ADC2同时采样)。
mcuku 阿沐 · 2026-08-27