在STM32中,规则组(Regular Group)用于常规多通道顺序采样,而注入组(Injected Group)具有更高优先级,可打断规则组转换。要实现高优先级中断采样且不丢数据,建议:1)将关键通道(如电压监测)配置为注入组,并设置注入触发源(如定时器或外部中断),确保其能抢占规则组转换;2)在注入组转换完成中断(JEOC)中读取数据,并立即存入环形缓冲区或DMA,避免覆盖;3)规则组转换使用DMA循环模式,自动搬运数据,即使被注入打断,DMA仍会继续,不会丢失已转换的规则组数据;4)注意注入组转换会暂停规则组,但规则组转换完成后会恢复,因此需确保规则组转换时间足够短,或使用双缓冲。实操建议:优先使用DMA+中断组合,并设置注入组为最高优先级(如NVIC抢占优先级最高),同时配置规则组为连续转换模式,可有效避免数据丢失。
mcuku 阿沐 · 2026-08-27