【stm32】HAL库开发——单片机工作模式

目录

一、单片机工作模式

1.1低功耗睡眠模式(Sleep)

1.2低功耗停止模式(Stop)

1.3低功耗待机模式(StandBy)


一、单片机工作模式

1.1低功耗睡眠模式(Sleep)

使用

HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON,PWR_SLEEPENTRY_WFI);

打开睡眠模式。由于Hal库与标准库在管理系统时钟和低功耗模式时的处理方式不同,Hal库中需要多手动关闭SysTick定时器,因为SysTick定时器会周期性触发中断,会唤醒睡眠模式。

HAL_SuspendTick();//关闭SysTick定时器
HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON,PWR_SLEEPENTRY_WFI);
HAL_ResumeTick();//恢复SysTick定时器

1.2低功耗停止模式(Stop)

HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON,PWR_STOPENTRY_WFI);//进入Stop模式
SystemClock_Config();//恢复时钟

1.3低功耗待机模式(StandBy)

配置PA0为唤醒引脚:

【stm32】HAL库开发——单片机工作模式_第1张图片

代码:

HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);

while(1)
{
  __HAL_RCC_PWR_CLK_ENABLE();
  HAL_PWR_EnterSTANDBYMode();
}

你可能感兴趣的:(stm32,嵌入式硬件,单片机,学习)