📖 第 24 章:低功耗实验(Low Power)

🔧 正点原子《DMF407 开发指南》V1.0 · Chapter 24
🗨️ 「电池供电的核心:低功耗设计 = 续航 × 10。」
这一章在干嘛? 低功耗实验:睡眠 / 停止 / 待机三种模式、WKUP 引脚唤醒、PVD 电压监控、各模式功耗对比。从一粒纽扣电池续航到 1 年。
24.1 电源控制(PWR)简介24.2 PVD 电压监控实验24.3 睡眠模式实验24.4 停止模式实验24.5 待机模式实验

24.1 电源控制(PWR)简介

STM32F4 三种低功耗模式:

模式内核外设典型功耗唤醒源
睡眠~10 mA任意中断
停止~20 µAEXTI / RTC / WKUP
待机断电断电~2 µAWKUP / RTC / NRST

原书图 24.1.1:三种低功耗模式转换图
原书图 24.1.1:三种低功耗模式转换图

睡眠 = CPU 停但 SRAM/外设都还在,最快唤醒;停止 = 全部 1.2V 域停,SRAM 保留;待机 = 1.2V 域也停,SRAM 全丢,相当于软复位。

24.2 PVD 电压监控实验

PVD(Programmable Voltage Detector)监测 VDD 电压,低于阈值触发中断。

配置:PLS[2:0] 选择阈值(2.0~2.9 V)→ 使能 PVD → 中断里报警。

原书图 24.2.1:PVD 阈值与触发
原书图 24.2.1:PVD 阈值与触发

24.3 睡眠模式实验

WFI / WFE 指令进入睡眠:

HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI);

任何中断都能唤醒。

原书图 24.3.1:睡眠模式唤醒时序
原书图 24.3.1:睡眠模式唤醒时序

24.4 停止模式实验

停止模式下电压调节器可设为「低功耗模式」进一步省电:

HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_SLEEPENTRY_WFI);

// 唤醒后要重新配置时钟
SystemClock_Config();

唤醒源:EXTI + RTC 闹钟。

原书图 24.4.1:停止模式唤醒时序
原书图 24.4.1:停止模式唤醒时序

24.5 待机模式实验

待机模式下 SRAM 全部丢失,相当于软复位:

HAL_PWR_EnterSTANDBYMode();   // 不会返回

唤醒后从 main 开始。唤醒源:WKUP 引脚上升沿 / RTC 闹钟。

待机唤醒后程序重跑,所以要在 main 开头判断 __HAL_PWR_GET_FLAG(PWR_FLAG_SB) 区分冷启动和唤醒。

🧠 小测验
睡眠、停止、待机三种模式功耗排序?
睡眠 > 停止 > 待机。
待机模式唤醒后程序从哪里开始?
从 main 开头,相当于复位。
PVD 是什么?检测什么的?
可编程电压检测器,检测 VDD 电压低于阈值时触发中断。
← 上一篇🏠 顶层目录下一篇 →