【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为唤醒引脚:
代码:
HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);while(1)
{__HAL_RCC_PWR_CLK_ENABLE();HAL_PWR_EnterSTANDBYMode();
}