序号 | 运行状态 | 进入指令(stm32f2xx_pwr.c) | 退出条件 | 状态 | IO管脚状态 | 进一步降低功耗的措施 | |||||
1 | 运行模式 | 上电/系统复位后的默认模式, HCLK驱动CPU运行代码 |
可通过指令 进入其他模式 |
供电一切正常, 时钟处于默认设置 |
用户设置状态 | 1、降低系统时钟和所用外设的时钟 2、关闭不用外设的时钟 |
|||||
2 | 睡眠模式 | __WFI()或 __WFE() | 任意中断和唤醒事件 | 1、可分两种,一种是立刻进入,另一种是从最低优先级退出后进入; 2、内核时钟停止,外设继续运行; |
暂时没弄清楚 | 进入之前: 1、降低所用外设时钟 2、关闭不用外设的时钟 |
|||||
3 | 待机模式 | void PWR_EnterSTANDBYMode(void); | 1、PA0上升沿唤醒 2、RTC alarm 3、RTC wakeup 4、tamper event 5、time-stamp event 6、external reset in NRST pin 7、IWDG reset |
1、关掉1.2V电压域失电; 2、内部SRAM和寄存器内容丢失; 3、PLL/HSI/HSE关闭; 4、IWDG/RTC/LSI/LSE都可由用户决定是否运行; 5、电压调节器关闭 |
所有Pin处 于高阻态,除 了复位和PC13、PI8和PA0 |
进入之前关闭备份SRAM | |||||
4 | 停止模式 | void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry) | 任意内外中断 或事件唤醒 |
1、1.2V电压域内的时钟全部停止; 2、内部SRAM和寄存器内容仍保持; 3、PLL/HSI/HSE关闭; 4、IWDG/RTC/LSI/LSE都可由用户决定是否运行; 5、电压调节器可设置低功耗和运行状态 |
所有Pin保持 同运行模式的状态 |
进入之前 1、把VR配置到低功耗模式 2、把Flash配置到关闭模式 3、关掉ADC/DAC如果不需要 |