一、STM32低功耗模式
①运行模式,特点是不省电(while(1))
②睡眠模式,特点是内核休眠(关闭内核时钟)
③停止模式,特点是内核外设休眠
④待机模式,特点是停止供电。
1、STM32睡眠模式详解
进入方式:**内核寄存器SLEEPDEEP = 0,调用WFI或WFE进入睡眠模式。
SLEEPONEXIT = 0 立即睡眠,SLEEPONEXIT = 1,退出睡眠。
唤醒方式:_WFI任意中断唤醒。_WFE任意事件唤醒。
睡眠:关闭内核时钟、不关闭外设、唤醒后会保持睡眠前的内核寄存器以及内存数据。
唤醒延迟:无延迟。
唤醒后执行:唤醒后执行中断函数,完成后继续睡眠。
2、STM32停止模式
进入方式:内核寄存器SLEEPDEEP = 1PWR_CR寄存器PDDS=0,调用WFI或WFE进入停止模式。
PWR_CR寄存器LPDS=0,调压器正常。
PWR_CR寄存器LPDS=1,低功耗模式
PWR_CR寄存器FPDS=0,Flash正常。
PWR_CR寄存器LPDS=1.Flash掉电。
唤醒方式:_WFI外部中断唤醒。_WFE外部事件唤醒。
睡眠:关闭内核时钟,关闭外设时钟,不关闭电源保留寄存器数据。
唤醒延迟:HSI(HSE)启动时间+低功耗恢复时间+flash恢复时间
**唤醒后执行:**唤醒后执行中断函数,完成后继续睡眠。
3、STM32待机模式
进入方式:内核寄存器SLEEPDEEP=1,PWR_CR寄存器PDDS=1,PWR_CR寄存器WUF=0.调用WFI或WFE进入待机模式。
唤醒模式:WKUP上升沿,RTC闹钟事件、NRST、看门狗复位
**睡眠:**内核关闭、外设关闭、内存数据丢失、引脚高阻
唤醒延迟:复位芯片时间
唤醒后执行:唤醒后执行代码继续待机。