核心方案是采用ADC的规则组扫描模式+DMA循环传输,并确保DMA配置为循环模式且缓冲区大小与通道数严格匹配。为避免数据错位,需在DMA中断或ADC的EOC(转换结束)事件中,通过读取ADC状态寄存器或使用双缓冲(DMA半传输/全传输中断)来同步处理数据。具体实操:1)配置ADC为扫描模式,连续转换,DMA请求使能;2)DMA设置为循环模式,外设地址固定为ADC_DR,内存地址为数组首地址,数据宽度均为半字(16位),传输次数等于通道数;3)在DMA传输完成中断中,将数据从缓冲区拷贝到应用层,并清标志。为保证采样时刻一致,需使用ADC的注入组(若需多通道同步采样)或外部触发(如定时器)来启动转换,且所有通道在同一个触发源下开始转换,扫描模式下通道间有微小延迟(约1个ADC时钟),若要求严格同步,需使用ADC的同步采样模式(仅部分型号支持)或外置采样保持电路。建议优先使用定时器触发ADC启动,并设置采样时间为最小值以减少通道间延迟。
mcuku 阿沐 · 2026-08-27