从 WFI 到唤醒链路,系统排查低功耗唤醒失败
做电池供电的嵌入式产品时,低功耗模式往往是最容易“看起来配置正确,实际上完全跑不通”的模块之一。
代码可能已经完成:
配置GPIO唤醒
配置RTC
配置EXTI
配置NVIC
关闭外设
进入WFI
结果程序一进入低功耗就出现两种极端情况:
要么刚睡下就立刻醒。
要么真正睡下以后,再也醒不过来。
很多工程师遇到这种问题,第一反应都是:
“是不是唤醒源没有配置对?”
于是不断检查GPIO、EXTI、RTC、NVIC。
但实际工程中,唤醒源只是整条链路中的一个环节。
一个完整的低功耗唤醒过程至少涉及:
外部事件
│
▼
唤醒检测电路
│
▼
时钟/低速时钟
│
▼
中断或唤醒标志
│
▼
NVIC / Wakeup Controller
│
▼
CPU退出低功耗
│
▼
恢复时钟与系统状态
其中任何一环出现问题,都可能表现成:
“MCU睡死了。”
所以,低功耗问题真正应该排查的,不只是“谁负责唤醒”,而是
网硕互联帮助中心




评论前必须登录!
注册