STM32 的几种休眠模式:
Stop 模式:CPU时钟关闭,调压器可以选择正常运行或者进入低功耗模式,1.8V域所有时钟都关闭,PLL,HSI,HSE都关闭,SRAM和寄存器的值能保持。
Standby 模式:Standby模块达到最低功耗,CPU进入深度休眠,调压器关闭,PLL,HSI和HSE时钟关闭,SRAM和寄存器的值都会丢失,仅在有备份电源情况下,保持备份寄存。
STM32 stop模式实验Stop模式:特性:1、所有时钟关闭;2、调压器要么正常工作要么进入低功耗模式;3、SRAM和寄存器值能保持;4、IO引脚状态跟运行模式是一样;进入stop模式:1、为了更减少功耗,内部调压器可以进入低功耗模式;2、如果Flash 正在变成,会等到编程结束再进入stop模式;3、如果正在访问APB域,会等到访问结束再进入stop模式;
离开stop模式:
通过中断和唤醒事件来离开Stop模式,离开以后,HSI RC 振荡器被选作为系统时钟;
如果调压器工作在低功耗模式,从Stop模式唤醒有一个额外的启动延迟;
在Stop模式下保持内部调节器打开,虽然启动时间减少,但消耗量更高。
调压器在低功耗情况下唤醒 13.78us
调压器在运作下唤醒 11.98us
测试代码:
STM32 Standby 模式Standby模式达到最低功耗,基于Cortex-M3的深度休眠模式,同时调压器关闭;1.8V域也被关闭,PLL,HSI和HSE振荡器也被关了。SRAM和寄存器的值丢失,除非备用域有打开;进入Standby模式:
离开Standby模式
当外部复位(NRST引脚)、IWDG复位、WKUP引脚上的上升边沿或RTC报警的上升边沿发生时,微控制器将退出待机模式。
除电源控制/状态寄存器(PWR_CSR)外,所有寄存器在备用唤醒后复位。
从待机模式醒来后,程序执行以与重置后相同的方式重新启动(boot引脚采样、获取矢量复位等)。
电源控制/状态寄存器(PWR_CSR)中的SBF状态标志表示单片机处于待机模式。
在Standby模式下IO口状态
在待机模式,所有的IO口都是高阻态,除了:
1、复位pad(仍然可用)
2、如果配置作为tamper或者校准输出,TAMPER引脚
3、WKUP 引脚 ,如果使能
唤醒时间:
粉红色是时钟
测试代码
从Standby模式唤醒,要经过100us才稳定
💡 关键要点
STM32 的几种休眠模式: Stop 模式:CPU时钟关闭,调压器可以选择正常运行或者进入低功耗模式,1.8V域所有时钟都关闭,PLL,HSI,HSE都关闭,SRAM