简介
stm32l系列主打低功耗,这篇主要说一下在stm32cubemx中使用hal库实现STANDBY操作,及外部WKUP
唤醒
注:单纯的进入STANDBY并不能实现最低功耗,还需要关闭许多其他的外设,以及配置IO口,不过目前还没研究到那个地方,以下内容只是简单的 进入、唤醒 操作
配置
配置唤醒引脚
代码
//这个函数是自己写的,可以再需要睡眠的地方调用一下
void enter_standby_mode()
{
HAL_SuspendTick();
HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN2); //关闭第2个外部唤醒引脚功能
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU); //清除标志位(如果不清除会导致第二次无法进入低功耗模式)
HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN2); //开启第2个外部唤醒引脚功能
HAL_PWR_EnterSTANDBYMode(); //进入STANDBY模式
//进入STANDBY后cpu不在执行任何代码,并且ram掉电,当外部唤醒后从头开始执行代码,相当于复位效果
}