STM32单片机低功耗配置

一、低功耗模式

当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗,STM32支持三种低功耗模式,可以在要求低功耗、短启动时间和多种唤醒事件之间达到最佳的平衡。

  • 睡眠模式SleepMode。在睡眠模式,只有CPU停止,所有外设处于工作状态并可在发生中断/事件时唤醒CPU

 

  • 停机模式StopMode。保持SRAM和寄存器内容不丢失,达到最低的电能消耗。停止所有内部1.8V部分的供电, PLL、 HSI的RC振荡器和HSE晶体振荡器被关闭,调压器可以被置于普通模式或低功耗模式。可以通过任一EXTI从停机模式中唤醒, EXTI信号可以是16个外部I/O口之一、 PVD的输出、 RTC闹钟或USB的唤醒信号

 

  • 待机模式StandbyMode。最低的电能消耗。内部1.8V部分的供电被切断; PLL、 HSI的RC振荡器和HSE晶体振荡器关闭;SRAM和寄存器的内容将消失,但后备寄存器的内容仍然保留,待机电路仍工作。从待机模式退出的条件是: NRST上的外部复位信号、 IWDG复位、 WKUP引脚上的一个上升边沿或RTC的闹钟到时

 

二、低功耗模式基于HAL库的常用API

2.1睡眠模式SleepMode

  • __HAL_RCC_PWR_CLK_ENABLE();//电源管理使能
  • HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI);//进入睡眠模式

2.2停机模式StopMode

  • __HAL_RCC_PWR_CLK_ENABLE();//电源管理使能
  • HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI);//进入停机模式
  • ReSysClkConfig_STOP(); //停机唤醒后需要重新配置时钟  

2.3 待机模式StandbyMode

  • __HAL_RCC_PWR_CLK_ENABLE();//电源管理使能
  • PWR_Check_Standby();//检查是否是待机模式
  • __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);//清除唤醒标志
  • __HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB);//清除待机标志
  • __HAL_PWR_GET_FLAG(PWR_FLAG_SB);//获得待机模式标志
  • HAL_PWR_EnterSTANDBYMode();//进入待机模式

三、UnusedPin配置原则

1、不用的IO按照外部电路设置成上拉或下拉;

2、设置成浮空输入的功耗最大。

3、不用的管脚模拟输入。

STM32单片机低功耗配置_第1张图片

 

 

你可能感兴趣的:(嵌入式)