STM32学习--低功耗

什么是低功耗

默认情况下,系统复位或上电复位后,微控制器进入运行模式。在运行模式下,CPU 通过 HCLK 提供时钟,并执行程序代码。系统提供了多个低功耗模式,可在 CPU 不需要运行时(例如等待外部事件时)节省功耗。由用户根据应用选择具体的低功耗模式,以在低功耗、短启动时间和可用唤醒源之间寻求最佳平衡。

低功耗的分类

器件有三个低功耗模式:
● 睡眠模式(Cortex™-M4F 内核停止,外设保持运行)
流水灯:LED1->LED2(进入睡眠模式)->LED3->LED4
当在LED2点亮时,进入睡眠模式,这个时候流水灯不工作,但是LED2还是点亮状态

● 停止模式(所有时钟都停止)=》退出停止模式,这个时候,时钟变慢了

● 待机模式(1.2 V 域断电) =》关机,退出待机模式,重启

此外,可通过下列方法之一降低运行模式的功耗:
● 降低系统时钟速度 — 不建议
● 不使用 APBx 和 AHBx 外设时,将对应的外设时钟关闭
在这里插入图片描述
WFI:Wait For Interrupt=>等待中断 ,本身指令,执行这个指令就可以进入睡眠模式
WFE:Wait For Event =>等待事件
在这里插入图片描述
深度休眠(待机+停止)

休眠模式

执行 WFI(等待中断)或 WFE(等待事件)指令即可进入睡眠模式。根据 Cortex™-M4F 系 统控制寄存器中 SLEEPONEXIT 位的设置,可以通过两种方案选择睡眠模式进入机制:
● 立即休眠:如果 SLEEPONEXIT 位清零,MCU 将在执行 WFI 或 WFE 指令时立即进入睡眠模式。
● 退出时休眠:如果 SLEEPONEXIT 位置 1,MCU 将在退出优先级最低的ISR 时立即进入睡眠模式

立即休眠

执行WFI或者WFE立刻休眠

进入立即休眠SCB->SCR&=~(1<<1); 执行WFI或者WFE指令
退出立即休眠执行任意中断(外部中断)
特点1、不会退出当前中断;2、CPU停止运行,外设正常运行

在这里插入图片描述

退出时休眠

执行WFI\WFE命令之后完成当前函数后进入休眠
在这里插入图片描述

在这里插入图片描述

停止模式

停止模式基于 Cortex™-M4F 深度睡眠模式与外设时钟门控。调压器既可以配置为正常模式,也可以配置为低功耗模式。在停止模式下,1.2 V 域中的所有时钟都会停止,PLL、HSI 和 HSE RC 振荡器也被禁止。内部 SRAM 和寄存器内容将保留。将 PWR_CR 寄存器中的 FPDS 位置 1 后,Flash 还会在器件进入停止模式时进入掉电状态。Flash 处于掉电模式时,将器件从停止模式唤醒将需要额外的启动延时。

进入停止模式

停止模式关闭内核和部分时钟保留 HSI RC会导致外设运行变慢
在这里插入图片描述在这里插入图片描述

待机模式

相当于关机
待机模式下可达到最低功耗。待机模式基于 Cortex™-M4F 深度睡眠模式,其中调压器被禁 止。因此 1.2 V 域断电。PLL、HSI 振荡器和 HSE 振荡器也将关闭。除备份域(RTC 寄存器、RTC 备份寄存器和备份 SRAM)和待机电路中的寄存器外,SRAM 和寄存器内容都将丢失。

待机模式进入和退出

在这里插入图片描述

在这里插入图片描述

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值