MCU進入低功耗之后,以極低的功耗維持著系統“活著”,但是醒過來是需要一定條件的,比如定個“鬧鐘”,按鍵“按一下”等,目前常用的“正常的”喚醒方式有以下幾種:
1、RTC定時喚醒;
2、外部中斷喚醒(按鍵或者通訊喚醒);
3、特殊喚醒引腳喚醒(某些引腳具有專門的喚醒功能)。
下面,我們再來看一看如何通過RTC和外部中斷喚醒MCU。
1、RTC定時喚醒
依然是從手冊中我們可以看到,所有的RTC時間都可以把MCU從低功耗模式中喚醒:
介紹使用RTC的定時功能實現,定時1S喚醒一次,使用cubemx進行對RTC進行配置:
生成代碼的時候,勾選這個選項,可以把不用的引腳配置為模擬輸入模式,降低功耗:
RTC的配置如圖,使能RTC,1S中斷喚醒一次:
接著,我們在while(1)里面寫下面的代碼,通過串口打印出喚醒信息,實際上代碼在執行的時候,遇到紅框出的低功耗入口函數,代碼會停止在這里,當遇到喚醒信號的時候,會繼續往下執行,一般進入STOP模式之前我們會先配置好喚醒所需要的條件,相應的IO等進入低功耗狀態,喚醒之后,把硬件相關的重新初始化,才可以正常使用。
外部中斷也可以用來喚醒MCU,需要提供一個下降沿用以把MCU從低功耗中喚醒。
我們就直接使用串口的RX作為外部中斷引腳喚醒,使用串口3的RX也即是PB11引腳,關于外部中斷這里不做具體介紹了,需要的小伙伴可以私信我,專門出一期介紹。
需要先配置IO口為外部中斷模式:
在進入低功耗模式之前一定要先配置,這樣才能夠正常喚醒。
審核編輯:湯梓紅
-
mcu
+關注
關注
146文章
17173瀏覽量
351659 -
STM32
+關注
關注
2270文章
10906瀏覽量
356565 -
低功耗
+關注
關注
10文章
2408瀏覽量
103775
發布評論請先 登錄
相關推薦
評論