核心方案是使用ADC的注入组或规则组配合DMA的循环模式,并启用DMA传输完成中断来按帧处理数据。规则组多通道采样时,DMA按顺序将各通道数据写入缓冲区,但若未同步读取,数据会错位。建议:1) 配置ADC为扫描模式+连续转换,DMA设置为循环模式,缓冲区大小设为通道数×采样次数,并在DMA半传输/传输完成中断中按固定偏移读取;2) 若需严格同步,使用注入组(最多4通道),注入转换会原子性完成,且可触发DMA,但注意注入组数据是独立寄存器,需手动读取或使用DMA搬运;3) 确保DMA缓冲区数据对齐(如32位对齐),并在中断中先停止DMA再拷贝数据,避免读写冲突。实操时,建议用双缓冲(DMA双缓冲模式)或乒乓缓冲,交替处理数据,保证同步性。
mcuku 阿沐 · 2026-08-27