目录

STM32 电源系统结构介绍(F1)

低功耗是什么?

低功耗模式介绍(F1 / F4 / F7)

睡眠模式

停止模式

待机模式

低功耗模式表(F1 / F4 / F7)

三种模式的功耗(F1)

低功耗相关寄存器介绍(F1)

系统控制寄存器(SCB_SCR)

电源控制寄存器PWR_CR

电源控制/状态寄存器(PWR_CSR)

WFI命令和WFE命令

低功耗模式的使用步骤

睡眠模式

睡眠模式配置步骤 

停止模式

停止模式配置步骤

待机模式

待机模式配置步骤

STM32 电源系统结构介绍(F1)

器件的工作电压(VDD) 2.0~3.6V

        ①,为了提高转换精度,给模拟外设独立供电

        ②,电压调节器为1.8V供电区域供电,且1.8V供电区域是电源系统中最主要的部分

        ③,两种供电方式:VBAT和VDD。主要电源被切断,该区域还能工作  

低功耗是什么?

降低集成电路的能量消耗。

低功耗特性对用电池供电的产品:

          更小电池体积(降低了大小和成本)  延长电池寿命

          电磁干扰更小,提高无线通信质量

          电源设计更简单,无需过多考虑散热问题

低功耗模式介绍(F1 / F4 / F7)

STM32具有运行、睡眠、停止和待机四种工作模式。

上电后默认是在运行模式,当内核不需要继续运行时,可以选择后面三种低功耗模式。

低功耗模式:①,睡眠模式   ②,停止模式   ③,待机模式

这三种模式的不同点:电源消耗不同、唤醒时间不同、唤醒源不同

睡眠模式

停止模式

待机模式

低功耗模式表(F1 / F4 / F7)

三种模式的功耗(F1)

低功耗相关寄存器介绍(F1)

系统控制寄存器(SCB_SCR)

 进入睡眠模式,SLEEPDEEP设置为0;进入停止模式 or 待机模式 ,SLEEPDEEP置1。

电源控制寄存器PWR_CR

 

停止模式:PDDS清0,LPDS选调节器模式。

待机模式:PDDS置1,清除唤醒位 CWUF。

电源控制/状态寄存器(PWR_CSR)

待机模式下 ,使用WKUP引脚唤醒并需要清除WUF标记位。实际上得操作CWUF位。

WKUP上升沿才能唤醒待机状态。

WFI命令和WFE命令

        内核指令,使用函数的格式“__WFI()”和“__WFE()”来调用。__wfi和__wfe是编译器内置的函数,函数内部调用了相对应的汇编指令。更详细的描述参考《CM3权威指南》。 

低功耗模式的使用步骤

睡眠模式

SLEEP_NOW直接进入睡眠模式。

 SLEEP-ON_EXIT从中断退出后进入睡眠模式:

 

睡眠模式配置步骤 

1、初始化WKUP为中断触发源:          参考外部中断引脚初始化

2、外设低功耗处理:                            设置MCU外围外设进入低功耗,可选

3、进入睡眠模式:                                HAL_PWR_EnterSLEEPMode           

4、等待WKUP外部中断唤醒                    

停止模式

 注意:退出停止模式,HSI RC振荡器被选为系统时钟

停止模式配置步骤

1、初始化WKUP为中断触发源:                参考外部中断引脚初始化

2、外设低功耗处理:                                  设置MCU外围外设进入低功耗,可选

3、进入停止模式:                                      HAL_PWR_EnterSTOPMode

等待WKUP外部中断唤醒

重新设置时钟、重新选择滴答时钟源、失能systick中断

待机模式

 注意:

待机模式下,所有I/O引脚处于高阻态,除了复位引脚、被使能的唤醒引脚等

待机模式下,不能下载程序,必须退出待机模式才能下载

待机模式配置步骤

1、初始化WKUP为中断触发源:               参考外部中断引脚初始化,可选

2、外设低功耗处理:                                 设置MCU外围外设进入低功耗,可选

3、使能电源时钟:                                     __HAL_RCC_PWR_CLK_ENABLE

4、使能WKUP的唤醒功能:                      HAL_PWR_EnableWakeUpPin

5、清除唤醒标记WUF:                            __HAL_PWR_CLEAR_FLAG    

6、进入待机模式:                                    HAL_PWR_EnterSTANDBYMode    

更多推荐