关于stm32的低功耗三种模式简要分析
学习stm32,用在手持便携式的设备项目上,必要考虑到它的功耗和三种模式。
STM32 的低功耗模式有 3种: 1)睡眠模式(CM3内核停止,外设仍然运行) 2)停止模式(所有时钟都停止) 3)待机(standby)模式(1.8V内核电源关闭) 从待机模式唤醒后的代码执行等同于复位后的执行 进入Standby模式后,只能有Wake-up脚和RTC唤醒,特别是唤醒后,程序将从最开始运行,也就是相当于软件复位。
睡眠模式,要对电源配置,以及睡眠模式下相关的寄存器进行配置,。官方例程为了最大量的节省功耗,会将各个io的时钟关掉。睡眠模式下的唤醒,不会对程序复位,睡眠模式下被唤醒的中断基本 都是外部中断,也就是所有的IO,只要前提配置好中断NViC,以及优先级即可。it.c里边还要有对中断函数进行处理。
睡眠模式被唤醒后,先从中断进入,这里应该清除中断标志位,同时清除进入睡眠模式的标志位,否则刚唤醒又马上进入睡眠,官方给出的数据是1ms唤醒时间。然后程序进入while循环,直到标志位变化进入休眠。
待机模式下,只有2个外部引脚可以触发,分别是PA0 PA1,其他引脚都不可以触发,触发方式还是上升沿触发。触发后,没有中断处理函数,他就像按下复位键一样从头开始执行。该方式比休眠下更节省功耗。
停止模式下基本就是一块板砖了,没有时钟运行。