STM32省电模式(STM32F103 STM32F030F4)

来源:互联网 发布:vue.js调试工具 编辑:程序博客网 时间:2024/06/02 06:25
  1. 三种模式
    Sleep,stop,standby,省电量由小到大

  2. Sleep模式
    在STM32F103中没有专用的外部库函数,而是直接利用了系统的底层库函数
    __WFI(); //进入SLEEP模式
    只是让CPU停止了,其他都在供电,尤其是寄存器
    任意中断,不论外部还是内容,及定时、串口,管脚输入,都可以退出此模式
    而在STM32F030中用专门的函数,PWR_EnterSleepMode(PWR_SLEEPEntry_WFI);
    //通过中断唤醒CPU
    省电量一般

  3. Stop模式
    有专门的函数,PWR_EnterSTOPMode(),
    可以通过任一配置成EXTI的信号把微控制器从停机模式中唤醒,EXTI信号可以是16个外部I/O口之一、PVD的输出、RTC闹钟或USB的唤醒信号。
    这句话的意思是要想唤醒,必须把中断配置成exti中断,例如串口,本身有串口中断服务,但是不能唤醒,你需要把串口的输入引脚配置成exti中断才可以唤醒,tim定时器不具有外部中断功能,不能唤醒,而RTC很特殊,给了一个外部中断号,也可以唤醒,STM32官方的例子就是讲的RTC的例子,具体外部中断如下。
    这里写图片描述

个人觉的,这个功能很蛋疼,主要时定时唤醒问题,只能用RTC,没有的选了。
再者是这外部输入,例如串口,这个要想唤醒,需要进行管脚的增加配置,除去正常的串口配置外,还需要把输入引脚配置成exit中断,这样才能唤醒,增加了复杂性。
串口唤醒还有问题,串口是1跟线接收数据,结果数据有8到10位,高低电平变化,不断产生中断,这样就不是一次唤醒的问题了,没有调试通过,放弃此想法
4. Standby模式
不用考虑了,寄存器数据丢失了。

原创粉丝点击