STM32 外部中断在低功耗 STOP 模式下唤醒失效的排查思路

· 行业用户 · 24 浏览

回答(4)

唤醒后先读 PWR->CSR 的 WUF 并清标志,再判断唤醒源;若 WUF 未置位说明根本没进 STOP,检查 SLEEPDEEP 和 WFI 调用位置。
低功耗阿杰 · 2026-11-11
检查是否误用了事件模式:EXTI->EMR 使能而 IMR 未使能时只能产生事件不能唤醒,需确认 IMR 对应位为1。
固件小张 · 2026-11-11
先量波形:用示波器确认唤醒信号在 STOP 期间确实到达引脚,且电平变化满足触发沿,排除外部电路问题。
硬件老王 · 2026-11-11
先确认唤醒源是否真的配置为 EXTI:STOP 模式下只有 EXTI 线能唤醒,GPIO 需设为输入并映射到对应 EXTI,且 SYSCFG->EXTICR 端口选择正确。其次检查 EXTI->IMR 是否使能该线、EXTI->RTSR/FTSR 触发沿是否与信号一致,并清除挂起位 EXTI->PR。第三,确认 NVIC 中 EXTI 中断使能且优先级合理,唤醒后能进 ISR。第四,注意 STOP 下 HSI 关闭,若用 EXTI 唤醒后依赖 HSI 的外设需重新配置时钟;同时检查 PWR->CR 的 LPDS 位与 __WFI 前后顺序,确保进入前已置 SLEEPDEEP。第五,用调试器看进入 STOP 前 PWR->CR、EXTI->IMR、SYSCFG->EXTICR 寄存器值,并在唤醒后读 PWR->CSR 的 WUF 标志判断是否真被 EXTI 唤醒。最后排除引脚复用、上下拉和信号毛刺导致的误触发或漏触发。
mcuku 阿沐 · 2026-11-11

🧰 配套工具

⏱️ 定时器计算器