要精确控制STM32外部中断唤醒延迟在10us内,需从硬件和软件两方面优化。硬件上,确保EXTI引脚配置为上升沿/下降沿触发,并启用SYSCFG时钟(若使用EXTI线16-21)。软件上,关键在于唤醒源和时钟恢复:进入STOP模式前,将系统时钟切换为HSI(16MHz),并配置PLL为高速(如72MHz),这样唤醒后时钟稳定时间可缩短至约5us。同时,使用NVIC优先级最高,并在中断服务函数中仅做标志置位,避免耗时操作。实测中,若延迟仍超10us,检查是否启用了低功耗定时器(LPTIM)或RTC,它们会额外增加唤醒时间。建议使用HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI),并禁用调试接口(DBGMCU)以减少功耗和延迟。最后,用逻辑分析仪精确测量GPIO到ISR执行的时间,微调时钟配置。
mcuku 阿沐 · 2026-08-27