低功耗模式
1、PWR电源控制
PWR(Power Control)电源控制。PWR负责管理STM32内部的电源供电部分,可以实现可编程电压监测器和低功耗模式的功能,这里我们只学习低功耗模式的功能,低功耗模式包括睡眠模式(Sleep)、停机模式(Stop)和待机模式(Standby),可在系统空闲时,降低STM32的功耗,延长设备使用时间。
下图为STM32的供电区域:
如图:
①VDDA供电区域为模拟供电区域,由VDDA供电,VREF为A/D转换器的参考电压供电脚。主要是给A/D转换器,复位模块,PLL供电,供电电压为2.4v。
②VDD供电区域由3.3v供电,而通过电压调节器调节到1.8v给CPU内部核心供电。
③后背供电区域可以由VDD供电和VBAT供电,通过电压检测器来判断使用那个供电。
2、低功耗模式
如上图:
①睡眠模式:接入睡眠模式的方式WFI(wait for interrupt)/WFE(wait for event),WFI和WFE只是一个指令。若使用WFI进入睡眠模式,唤醒条件是任意的中断,那唤醒时会接入中断,执行中断服务函数。如使用WFE进入睡眠模式,唤醒条件是事件,可以是外部中断配置为事件模式,也可以是使能中断未配置NVIC。睡眠模式只关闭了CPU的时钟。关闭时钟只是暂停了程序运行,寄存器和存储器里面的数据不会被清除。关闭电源是直接断电,数据会被清除。
【注】睡眠模式唤醒后,程序从被进入睡眠模式之后代码开始运行
②停机模式:PDDS位置0 + SLEEPDEEP位置1,而LPDS位控制电压调节器处于开启或处于低功耗模式。停机模式关闭了1.8v供电区域的所有闹钟,关闭了HSI和HSE振荡器,不会关闭低速振荡器。唤醒条件只能是外部中断,唤醒后时钟由内部低速振荡器提供了。
【注】停止模式唤醒后,程序从被进入停止模式之后代码开始运行
③待机模式:PDDS位置1+ SLEEPDEEP位置1,待机模式在停机模式的基础上关闭了电压调节器的电源,即停止了1.8v供电区域的供电。唤醒调节是1、WKUP引脚的上升沿;2、RTC闹钟事件;3、NRST引脚上的外部复位(复位键);4、IWDG复位。
【注】待机模式唤醒后,程序从头开始执行。