核心方案:采用定时器触发ADC注入组转换,并将DMA设置为循环模式,同时利用ADC的注入通道序列和DMA的突发传输(Burst)来保证数据对齐。具体操作:1)配置定时器(如TIM2)的TRGO事件为ADC注入触发源,设置ADC为注入组、多通道扫描,并启用DMA请求;2)DMA配置为循环模式,外设地址固定为ADC_DR,内存地址指向一个二维数组(如uint16_t adc_buf[通道数][采样次数]),数据宽度半字,突发长度与通道数匹配;3)在DMA传输完成中断中,通过读取ADC的注入序列标志或使用双缓冲(DMA半传输/全传输中断)来区分批次,确保每次触发对应一组完整数据。关键点:注入组转换会自动按序列顺序采样,DMA按顺序搬运,不会错位;若使用规则组,需手动管理序列并确保DMA每次传输长度等于通道数*采样次数。建议在初始化时先校准ADC,并测试触发频率与DMA带宽是否匹配,避免溢出。
mcuku 阿沐 · 2026-08-27