PWR(Power Control)电源控制
PWR负责管理STM32内部的电源供电部分,可以实现可编程电压监测器和低功耗模式的功能
可编程电压监测器(PVD)可以监控VDD电源电压,当VDD下降到PVD阀值以下或上升到PVD阀值之上时,PVD会触发中断,用于执行紧急关闭任务
低功耗模式包括睡眠模式(Sleep)、停机模式(Stop)和待机模式(Standby),可在系统空闲时,降低STM32的功耗,延长设备使用时间
电源框图
VDDA模拟部分供电;VDD 数字部分供电;VBAT后备供电;
上电复位、掉电复位
3.3V 正常供电; 2.9V~2.2V之间属于PVD监测范围;1.9V是复位电路检测范围.
低功耗模式
第二列:表示如何配置才能进入我们想要的模式;三行能耗依次递减,唤醒难度递增。
WFI:(Wait For Interrupt)等待中断;WFE:(Wait For Event)等待事件
PDDS=0 进入停机模式,PDDS=1 进入待机模式 LPDS 用来设置电压调节器
睡眠模式:只把CPU时钟关闭,所有的运算和涉及时序的操作都会暂停。寄存器和存储器里面保存的数据还可以维持,不会消失。
停机模式:关闭所有1.8V区域的时钟,CPU和外设均不能运行,定时器在定时的会暂停,串口收发数据也会暂停,不过由于没关闭电源,CPU和寄存器数据都是维持原状的。HSI内部高速时钟、HSE外部高速时钟会关闭,LSI内部低速时钟、LSE外部低速时钟不会主动关闭,如果开启过这两个时钟,还会继续运行。
待机模式:LSI内部低速时钟、LSE外部低速时钟不会主动关闭,如果开启过这两个时钟,还会继续运行。这两个时钟要维持RTC和独立看门狗的运行,来唤醒。
模式选择
执行WFI(Wait For Interrupt)或者WFE(Wait For Event)指令后,STM32进入低功耗模式。
在中断函数里调用WFI/WFE 进行睡眠,才需要考虑SLEEPONEXIT为置1。
睡眠模式
执行完WFI/WFE指令后,STM32进入睡眠模式,程序暂停运行,唤醒后程序从暂停的地方继续运行
SLEEPONEXIT位决定STM32执行完WFI或WFE后,是立刻进入睡眠,还是等STM32从最低优先级的中断处理程序中退出时进入睡眠
在睡眠模式下,所有的I/O引脚都保持它们在运行模式时的状态
WFI指令进入睡眠模式,可被任意一个NVIC响应的中断唤醒
WFE指令进入睡眠模式,可被唤醒事件唤醒
停止模式
执行完WFI/WFE指令后,STM32进入停止模式,程序暂停运行,唤醒后程序从暂停的地方继续运行
1.8V供电区域的所有时钟都被停止,PLL(倍频)、HSI和HSE被禁止,SRAM和寄存器内容被保留下来
在停止模式下,所有的I/O引脚都保持它们在运行模式时的状态
当一个中断或唤醒事件导致退出停止模式时,HSI被选为系统时钟
当电压调节器处于低功耗模式下,系统从停止模式退出时,会有一段额外的启动延时
WFI指令进入停止模式,可被任意一个EXTI中断唤醒
WFE指令进入停止模式,可被任意一个EXTI事件唤醒
待机模式
执行完WFI/WFE指令后,STM32进入待机模式,唤醒后程序从头开始运行
整个1.8V供电区域被断电,PLL、HSI和HSE也被断电,SRAM和寄存器内容丢失,只有备份的寄存器和待机电路维持供电
在待机模式下,所有的I/O引脚变为高阻态(浮空输入)
WKUP引脚的上升沿、RTC闹钟事件的上升沿、NRST引脚上外部复位、IWDG复位退出待机模式
标签:WFI,PWR,二十,模式,WFE,STM32,唤醒,时钟 From: https://blog.csdn.net/weixin_52307528/article/details/142961872