STM32F429 >> 18. 电源管理_实现低功耗(Code)

2019-07-14 00:49发布

睡眠

进入睡眠的方式很简单
只需要调用WFI 或WFE 命令,在睡眠模式中,内核停止,但是所有外设,包括M4 核心的外设均处于工作状态中。 唤醒睡眠的方式
  1. 任一中断;
  2. 唤醒事件。
// Wait For Interrupt __WFI(); // Wait For Event __WFE();

停止

进入停止的操作为
调用 PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry) 函数。 唤醒停止的操作为
任一外部中断。 PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI); SYS_HSE_Config(); 需要注意的是
由于程序从停止模式中唤醒时会将HSI 配置为系统时钟,故当唤醒后,我们需要重新将HSE 配置为系统时钟。

待机

进入待机的操作为
调用 PWR_EnterSTANDBYMode() 函数。 唤醒待机的操作为
  1. WKUP 引脚的上升沿;
  2. RTC 闹钟事件;
  3. NRST 引脚上的外部复位;
  4. IWDG 复位。
在进入待机模式前需要使能WKUP 引脚的唤醒功能: PWR_WakeUpPinCmd(ENABLE);