低功耗不是只把 MCU 切进最深睡眠。设备的续航由每一种状态的电流和驻留时间共同决定:一次高电流的无线发送、一个没有关掉的传感器、频繁的误唤醒,都可能比休眠电流高几微安更值得处理。先做能量预算,再选睡眠状态和唤醒策略。
先算平均电流,再优化最低电流
可以把一个工作周期拆成若干状态,按 I_avg = Σ(I_state × t_state) / T 粗略估算平均电流。这个公式会直接暴露问题:若设备每分钟只采一次样,却因为轮询或错误中断每秒醒来几次,先减少唤醒次数通常比继续压低深睡眠电流有效。
每次优化都要记录采样周期、无线发送次数、外设开启时长和温度。只有同一业务负载下的平均电流才可比较,不能拿“什么都不做”的最低数字当续航结论。
唤醒后先恢复必要资源
进入睡眠前要明确哪些时钟、引脚、DMA 缓冲区和外设状态会丢失;唤醒后按依赖顺序恢复。深睡眠下调试接口、外部传感器供电和通信模块的行为常与普通暂停不同,必须在真实板上测量。排查异常电流时,也要断开调试器并检查 IO 是否通过保护二极管向未上电外设反向供电。
参考:EmbedSummary