首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32省电模式(STM32F103 STM32F030F4)

STM32省电模式(STM32F103 STM32F030F4)

  • 三种模式
    Sleep,stop,standby,省电量由小到大
  • Sleep模式
    在STM32F103中没有专用的外部库函数,而是直接利用了系统的底层库函数
    __WFI();  //进入SLEEP模式
    只是让CPU停止了,其他都在供电,尤其是寄存器
    任意中断,不论外部还是内容,及定时、串口,管脚输入,都可以退出此模式
    而在STM32F030中用专门的函数,PWR_EnterSleepMode(PWR_SLEEPEntry_WFI);
    //通过中断唤醒CPU
    省电量一般
  • Stop模式
    有专门的函数,PWR_EnterSTOPMode(),
    可以通过任一配置成EXTI的信号把微控制器从停机模式中唤醒,EXTI信号可以是16个外部I/O口之一、PVD的输出、RTC闹钟或USB的唤醒信号。
    这句话的意思是要想唤醒,必须把中断配置成exti中断,例如串口,本身有串口中断服务,但是不能唤醒,你需要把串口的输入引脚配置成exti中断才可以唤醒,tim定时器不具有外部中断功能,不能唤醒,而RTC很特殊,给了一个外部中断号,也可以唤醒

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