wang6623 发表于 2022-9-30 23:03

STM32物联网项目-低功耗模式

低功耗模式 电源框图VDD供电区域一般为2V ~ 3.6V,经过电压调节器可降压到1.8V给CPU核心、存储器和内置数字外设供电,为了降低CPU的功耗,
后备供电区域可由电池供电,输入引脚为VBAT



wang6623 发表于 2022-9-30 23:04

STM32各种电源

wang6623 发表于 2022-9-30 23:06

STM32的低功耗模式

STM32F10xxx有三种低功耗模式:

    睡眠模式:Cortex™-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统时钟(SysTick)等仍在运行

wang6623 发表于 2022-9-30 23:25

停止模式:所有的时钟都已停止

wang6623 发表于 2022-9-30 23:26

待机模式:1.8V电源关闭

wang6623 发表于 2022-9-30 23:29

wang6623 发表于 2022-9-30 23:30

模式从上到下功耗越低,但唤醒条件越严格

wang6623 发表于 2022-9-30 23:30

此外,在运行模式下,可以通过以下方式中的一种降低功耗:

    降低系统时钟。时钟频率越慢功耗越低,例如平时使用芯片时的系统时钟频率都是72MHz,这能满足绝大部分外设的要求,但如果是点个流水灯,又想要低功耗,就没必要使用72MHz的,用8M或者更低能运行的话就用低点的,

wang6623 发表于 2022-9-30 23:31

关闭APB和AHB总线上未被使用的外设时钟。

wang6623 发表于 2022-9-30 23:32

低功耗模式下的自动唤醒(AWU)


低功耗模式下的自动唤醒(AWU)在STM32F1是没有的,在F4是有的,但F1可以通过RTC闹钟事件来唤醒

wang6623 发表于 2022-9-30 23:36

如下面STM32F4的RTC框图,就有16位的唤醒自动重载寄存器,可以通过设定值来唤醒

wang6623 发表于 2022-9-30 23:37

实验目标

触摸按键1被按下,则系统进入睡眠模式,点击触摸按键4退出睡眠模式;

触摸按键2被按下,则系统进入停止模式,点击触摸按键4退出停机模式;

触摸按键3被按下,则进入待机模式,通过复位按键退出待机模式;

wang6623 发表于 2022-9-30 23:38

CubeMX配置

按键外部中断的配置,LED灯作系统的指示作用,拉低WIFI模块的使能脚,不然模块会耗电

wang6623 发表于 2022-9-30 23:39

wang6623 发表于 2022-9-30 23:42

初始化串口1,用于打印信息

wang6623 发表于 2022-9-30 23:43

程序
stm32f1xx_hal_pwr.h

下面是进入低功耗模式的三个HAL库函数,可以直接调用

wang6623 发表于 2022-9-30 23:44

/* Low Power modes configuration functions ************************************/
void HAL_PWR_EnterSTOPMode(uint32_t Regulator, uint8_t STOPEntry);                //进入停止模式
void HAL_PWR_EnterSLEEPMode(uint32_t Regulator, uint8_t SLEEPEntry);        //进入睡眠模式
void HAL_PWR_EnterSTANDBYMode(void);                                                                //进入停机模式

wang6623 发表于 2022-9-30 23:45

进入或退出睡眠模式

wang6623 发表于 2022-9-30 23:45

以WFI进入睡眠模式后,是可以通过任意一个中断来唤醒的,这里就需要注意了,平时使用的延时函数HAL_Delay()是以SysTick滴答定时器来作为时基的,并且NVIC中默认已经开启了SysTick的中断,如果直接在主函数中调用HAL_PWR_EnterSLEEPMode函数进入睡眠模式的话,SysTick滴答定时器的中断就会立马唤醒系统,达不到低功耗的效果;所以在进入睡眠模式之前,需要先关闭SysTick的中断

wang6623 发表于 2022-9-30 23:46

同理,系统中开启的用户中断也要关闭,如定时器,外部中断等,可以留某些中断用于退出睡眠模式
页: [1] 2 3
查看完整版本: STM32物联网项目-低功耗模式