学习HAL库STM32F103C8T6(低功耗、低功耗实验)
摘要:STM32的低功耗模式适用于电池供电设备,包含运行、睡眠、停机和待机四种模式。睡眠模式保持外设运行,停机模式关闭核心时钟,待机模式功耗最低但会复位。实验通过按键切换模式,利用LED指示状态变化。不同模式通过配置寄存器实现,可根据应用需求选择。
低功耗
1. 什么是低功耗?
STM32的低功耗(low power mode)特性是其嵌入式处理器系列的一个重要优势,特别适用于需要长时间 运行且功耗敏感的应用场景,如便携式设备、物联网设备、智能家居系统等。
在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电 源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大 导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。
2. STM32电源系统结构

3. 低功耗模式介绍
STM32具有运行、睡眠、停止和待机四种工作模式。
上电后默认是在运行模式,当内核不需要继续运行时,可以选择后面三种低功耗模式。

3.1 睡眠模式(sleep mode)
在睡眠模式下,CPU停止工作,但所有外设(如ADC、通信接口等)仍然运行,时钟继续运转。这适用于需 要暂时关闭CPU但外围设备需要继续工作的场景。
模式特点:
对系统影响小,但是节能效果最差。
在睡眠模式下,所有的I/O引脚都保持它们在运行模式时的状态。
进入条件:
当系统控制寄存器中的SLEEPDEEP位被清除(通常为0),并且SLEEPONEXIT位根据需求
设置时(如 果设置为1,则在最低优先级中断处理程序退出时进入Sleep模式;如果为0,则
执行WFI或WFE时立即 进入)。
执行WFI(Wait For Interrupt)或WFE(Wait For Event)指令来进入。
唤醒条件:
任意一个中断都能将系统从Sleep模式唤醒。
如果执行WFE指令进入Sleep模式,则一旦发生唤醒事件时,MCU将唤醒。
3.2 停机模式(stop mode)
在停机模式下,CPU和核心外围设备的时钟会停止,但部分唤醒源(如外部中断和某些定时器)仍然运行。 这适用于需要长时间等待外部事件唤醒的应用,如等待用户输入或外部信号。Stop模式实现了非常低的功 耗,同时保留了SRAM和寄存器的内容。
模式特点:
节能效果好,程序不会复位。但恢复时间较长(比如震荡器需要重新起震等)。
在停机模式下,所有的I/O引脚都保持它们在运行模式时的状态。
退出停止模式,HSI RC振荡器被选为系统时钟
进入条件:
需要将SLEEPDEEP位设置为1以进入深度睡眠模式,然后通过设置电源控制/状态寄存器
(PWR_CSR) 中的PDDS位为0来选择进入Stop模式。
根据需求设置LPDS位(LPDS = 0:表示在深睡眠模式下,电压调节器保持开启状态;LPDS
= 1:表示 在深睡眠模式下,电压调节器进入低功耗模式。)。
执行WFI(Wait For Interrupt)或WFE(Wait For Event)指令来进入。
在进入Stop模式之前,通常需要关闭不必要的外设时钟,并保存需要保留的状态信息。
唤醒条件:
Stop模式可以通过外部中断(如按键中断、USART接收中断等)唤醒。
RTC闹钟事件、USB唤醒、以太网(ETH)唤醒等也可以作为唤醒源,但这些通常需要通过
外部中断来 触发。
3.3 待机模式(standby mode)
在该模式下,CPU、外围设备和时钟都被关闭,只保留唤醒逻辑和备份寄存器。这适用于不需要保留RAM内 容且可以从复位状态恢复的设备,常见于需要极低功耗且稀疏唤醒的应用。Standby模式是STM32中功耗最 低的模式之一。
模式特点:
节能效果最好,但程序会复位,只有少数条件唤醒。
在Standby模式下,大部分IO引脚处于高阻态,只有复位引脚、TAMPER引脚(如果配置为防
侵入或校 准输出)和WKUP引脚可用作唤醒源。
进入条件:
Standby模式进入前,需要清除电源控制/状态寄存器(PWR_CSR)中的WUF位,以确保没
有未处理的 唤醒标志。
将SLEEPDEEP位设置为1以进入深度睡眠模式,并设置PDDS位为1来选择进入Standby模
式。
执行WFI或WFE指令进入Standby模式。
唤醒条件:
Standby模式可以通过WKUP引脚的上升沿唤醒。
RTC闹钟事件也可以作为唤醒源。
独立看门狗(IWDG)复位和NRST引脚上的外部复位也可以唤醒STM32,但这通常用于系统
复位而非 低功耗唤醒。

4.小实验:低功耗实验
实验目的
1. 按下按键 2 ,进入低功耗模式(睡眠、停机、待机);
2. 按下按键 1 ,退出低功耗模式;
3. 正常模式下,LED1 闪烁;进入停机\睡眠模式,LED2 长亮。
编写代码
低功耗相关代码

主函数

更多推荐



所有评论(0)