设置不同位来配置是哪种低功耗模式 

WAKEUP引脚可以唤醒任何睡眠状态,但是只有待机模式是属于WAKEUP唤醒,其他模式都是属于中断唤醒,所以待机模式要使能EWUP引脚,还要手动清除唤醒标志位(在进入待机模式前就要清除标志位)

要关闭电压调节器的话,要打开电源时钟

__HAL_RCC_PWR_CLK_ENABLE();

使能WAKEUP引脚的唤醒功能

HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1)

清除唤醒标记

__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU)

进入待机模式

HAL_PWR_EnterSTANDBYMode()

进入待机模式后唤醒系统是会复位的

坑1:如果你用HAL库的话,进入各睡眠模式时都要关闭滴答定时器

HAL_SuspendTick();

坑2:当你退出停机模式的时候系统时钟是被设置为HSI的频率的,如果你要恢复要手动调节

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐