本评测主要介绍NUCLEO-STM32L053R8的待机唤醒,使用板上B1按键实现唤醒功能,并使用LD2指示灯标识运行状态。使用STM32Cubemx软件实现软件操作。
<strong>配置</strong>
<center><img src="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100059093-113652-1.p…; alt=“” ></center>
<center><img src="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100059093-113653-2.p…; alt=“” ></center>
<center><img src="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100059093-113654-3.p…; alt=“” ></center>
<strong>串口设置</strong>
配置串口,可将调试信息打印出来。
<center><img src="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100059093-113655-4.p…; alt=“” ></center>
<strong>时钟设置</strong>
<center><a href="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100059093-113656-5.p…; target="_black"><img src="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100059093-113656-5.p…; alt=“”></a></center>
<strong>STM32 的低功耗模式有 3 种:</strong>
1)睡眠模式(CM3 内核停止,外设仍然运行)
2)停止模式(所有时钟都停止)
3)待机模式(1.8V 内核电源关闭)
<center><img src="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100059093-113657-6.p…; alt=“” width="600"></center>
在这三种低功耗模式中,最低功耗的是待机模式。
进入低功耗实现的代码
<center><img src="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100059093-113658-7.j…; alt=“” width="600"></center>
<pre>VOID SYS_ENTER_STANDBY(VOID)
{
__HAL_RCC_APB2_FORCE_RESET(); //复位所有 IO 口
__HAL_RCC_PWR_CLK_ENABLE(); //使能 PWR 时钟
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU); //清除 WAKE_UP 标志
HAL_PWR_ENABLEWAKEUPPIN(PWR_WAKEUP_PIN1); //设置 WKUP 用于唤醒
HAL_PWR_ENTERSTANDBYMODE(); //进入待机模式
}</pre>