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