若要理解低功耗,则先要说一下STM32的事件和中断

事件是中断的触发源,开放了对应的中断屏蔽位,则事件可以触发相应的中断。在STM32中,中断与事件不是等价的,一个中断肯定对应一个事件,但一个事件不一定对应一个中断。

当外部有信号输入时,如果通过了事件屏蔽寄存器,那么事件信号就进入脉冲触发器,引发一个脉冲信号,直接传递给相应的外设,用于触发,这就是一个纯硬件的过程,理解DMA的应该知道,这个方式不需要CPU参与,但是这也有它的缺点,如功能比较单一,仅能提供信号,不能提供信息,也就是只能产生指定功能的事件。如果通过中断屏蔽寄存器,就被直接送到CPU中,产生中断,如进入上面的入口函数开始处理。从这就可看出,事件是单纯硬件触发执行的过程,与CPU本身设计支持有关,而中断中则可以软件实现各种功能,而低功耗模式的事件唤醒就是stm32支持的事件之一。

对于STM32来说,共有3种低功耗模式:睡眠模式,停机模式,待机模式。

睡眠模式

当Cortex-M3遇到WFE(等待中断)或者WFI(等待事件)指令时会停止内部时钟,中带程序执行。尽管Cortex-M3停止工作,但是其外设仍在继续工作,直到某个外设产生事件或者中断时,内核将会被唤醒,藉此退出睡眠模式。

停机模式

倘若用户将Cortex-M3处理器的电源控制寄存器(Cortex Power Control Register,Cor-tex_PCR)中的SLEEPDEEP位置位,然后将STM32电源控制寄存器(STM32 Power Control Register.STM32 PCR)中的PDDS(Power Down Deep Sleep)位清除,就完成了 STM32停机模式的设置。

当停机模式设置完毕后,CPU一旦遇到WFI或 WFE指令就会停止工作,HSI和HSE 也进人关闭状态。但Flash和SRAM将会继续保持电源供应,所以此时STM32的所有工作状态仍然是保留着的。和睡眠模式一样,停机模式也可以通过外设中断唤醒,然面在停机模式下,除了外部中断控制单元,所有设备的时钟都被禁止了,只能通过在GPIO引脚上产生电平边沿触发外部中断的方式来将STM32从停机状态下唤醒。而前面也曾提到过,外部中断通道除了与GPIO连接,还和RTC时钟的报警事件连接,加之RTC的计数时钟并非来源于STM32的设备总线(而是直接来自LSI或LSE),因此还可以使用RTC模块实现定时将STM32从停机状态中唤醒。

待机模式

将Cortex_PCR中的SLEEP位进行置位,再将STM32_PCR中的PDDS位进行置位,如此一来,STM32则进入待机模式。
若要唤醒待机模式,有多种方式进行唤醒,分别位:RTC的闹钟事件、NRST的外部引脚复位、独立看门狗(IWDG)所产生的复位信号,以及GPIOA.0引脚上所产生的一个上升沿,但是若要是要该引脚所产生的上升沿来唤醒STM32,则必须事先设置为唤醒引脚功能。待机模式是STM32的最低功耗模式。
当进入待机模式后,所有的SRAM数据、Cortex-M3处理器的寄存器和STM32的寄存器内容都将会被清零。效果等同于硬件复位。

STM32——浅谈睡眠模式、停机模式、待机模式相关推荐

  1. 休眠后gpio状态_浅谈Digi XBee模块的休眠模式

    浅谈Digi XBee模块的休眠模式 2020-3-25 Digi XBee S2C模块,如果仅连接电源线可以测得,在待机情况下,大约是10.5mA左右的电流,在休眠时的功耗可以低到0.5uA.可以知 ...

  2. [原]浅谈几种服务器端模型——反应堆模式(epoll 简介) - _Boz - 博客园

    [原]浅谈几种服务器端模型--反应堆模式(epoll 简介) - _Boz - 博客园 [原]浅谈几种服务器端模型--反应堆模式(epoll 简介) 引言:上一篇说到了线程池方式来处理服务器端的并发, ...

  3. 浅谈 CRTP:奇异递归模板模式

    浅谈 CRTP:奇异递归模板模式 前言 建议先看一遍文末的参考资料! 建议先看一遍文末的参考资料! 建议先看一遍文末的参考资料! 思维导图 一.CRTP 是什么 CRTP 全称 : Curiously ...

  4. html 怪异模式,CSS_浅谈CSS编程中的怪异模式,怪异模式盒模型 今天学习了 - phpStudy...

    浅谈CSS编程中的怪异模式 怪异模式盒模型 今天学习了一下css3的box-sizing属性,顺便又温习了一下css的盒模型,最后觉得有必要对盒模型做一个全面整理. 先不考虑css3的情况,盒模型一共 ...

  5. 【Android 电量优化】电量优化特性 ( Doze 低电耗模式 | Standby 应用待机模式 | 白名单设置 | 白名单添加系统设置界面 | 指定应用的白名单添加界面 | 测试应用 )

    文章目录 一.Doze 低耗电模式简介 二.Standby 应用待机模式简介 三.Doze 和 Standby 模式测试 四.白名单添加 ( 方式一 ) 五.白名单添加 ( 方式二 ) Android ...

  6. (两百七十)学习 针对低电耗模式和应用待机模式进行优化

    https://developer.android.google.cn/training/monitoring-device-state/doze-standby 针对低电耗模式和应用待机模式进行优化 ...

  7. AlarmManager针对低电耗模式和应用待机模式进行优化

    从 Android 6.0(API 级别 23)开始,Android 引入了两项省电功能,通过管理应用在设备未连接至电源时的行为方式,帮助用户延长电池寿命.当用户长时间未使用设备时,低电耗模式会延迟应 ...

  8. 浅谈.Net版(C#)的CMP模式

    商城上线快2.3个月了,一直都懒得写点东西,在加上杂七杂八的事情也比较忙,所以都没有把这个系统当时做的整个架构思绪整理清,昨天才从深圳完了两天回来,怎感觉是要做的事来着.刚开始接触CMP模式的时候也是 ...

  9. Android开发用到的几种常用设计模式浅谈(一):组合模式

    1:应用场景 Android中对组合模式的应用,可谓是泛滥成粥,随处可见,那就是View和ViewGroup类的使用.在android UI设计,几乎所有的widget和布局类都依靠这两个类.组合模式 ...

最新文章

  1. 2016年第七届蓝桥杯决赛Java本科B组试题解析
  2. 基于tensorflow深度学习的中文的命名实体识别
  3. net core文件接收(jpg、png、zip、pdf等自己设置)
  4. lopatkin俄大神精简中文系统Windows 10 Pro 18363.592 19H2 Release x86-x64 ZH-CN SM
  5. FastDFS实现原理及流程
  6. Mac下载m3u8视频
  7. matlab firl,matlab 利用matlab工具箱函数fir1 联合开发网 - pudn.com
  8. 华为手机下拉菜单变大_华为手机如何设置下拉菜单顺序 原来是这样的
  9. Calendar类你可能不知道的坑
  10. 05、汇编语言和汇编软件
  11. GhostXP_SP3电脑公司特别版_V2013.06
  12. connection reset by peer
  13. 英伟达的这款GPU太强了!
  14. JS 实战: Drag 点击拖曳效果
  15. 浅谈手机系统——iOS
  16. UG/NX二次开发Siemens官方NXOPEN实例解析—1.6 BlockStyler/SelectionExample
  17. 【读书笔记】分布式下服务可靠性保障
  18. 逆向倾向评分 (Inverse Propensity Scoring, IPS) 原理解析与MF算法的结合使用
  19. 韦东山ARM第一期作业(三)内存控制器和SDRAM
  20. bga封装扇出过孔_Altium Designer BGA扇出

热门文章

  1. Python 如何 ping
  2. 经典分割线 html分割线
  3. 小程序 获取今天日期 星期几 不墨迹就是快
  4. 还在学Django! FastAPI Web 框架教程来了!
  5. python实现简单舒尔方格
  6. 【大数据入门】Hadoop技术原理与应用之基于Hadoop的数据仓库Hive
  7. TOP20W词库,双十一,直通车,用超级推荐获取手淘流量的方法——上篇
  8. Dell笔记本更换系统主板后出现Microsoft Office Outlook Exchange 错误 80090016
  9. SDIO - 1bit / 4bit V2.0 协议深度解析-简单易懂协议详解
  10. css写七步诗,兄弟情谊的诗句