我們都知道,MCU有低功耗模式,比如GD32F303芯片,就有Sleep、Deepsleep和Standby三種模式。關(guān)于這三種模式的具體使用方法,小伙伴們可以參考《GD32F30x系列用戶手冊》。
今天我們來聊下幾個低功耗模式要點。
1、進入低功耗模式后IO口的狀態(tài):
Sleep和Deepsleep模式:IO口保持進入低功耗前的狀態(tài),即本來是輸出高的繼續(xù)輸出高,本來是輸出低的繼續(xù)輸出低(一個重要提示:在進入Deepsleep前,要將不需要保持狀態(tài)的IO口配置為模擬輸入,這樣可以達到最低功耗)
Standby模式:所有IO口都被強制設(shè)置為浮空輸入,即IO口不保持;
2、關(guān)于外部晶振狀態(tài)
Sleep模式:外部晶振保持振動狀態(tài)
Deepsleep模式:外部晶振停振,喚醒MCU后,MCU強制使用內(nèi)部晶振且沒有倍頻,應(yīng)用程序需要在喚醒后進行時鐘重配
Standy模式:外部晶振停振
3、喚醒后程序執(zhí)行位置:
Sleep和Deepsleep模式:從進入低功耗之后的第一句開始執(zhí)行(一般Deepsleep喚醒后的第一句為時鐘重配函數(shù))
Standby模式:從頭重新執(zhí)行程序,Standby喚醒相當于一次掉電復位
4、喚醒源:
Sleep模式:任何一個中斷或事件都將喚醒MCU(中斷或者事件取決于使用WFI還是WFE指令進入低功耗)
Deepsleep模式:只有EXTI中斷或事件可以喚醒MCU,EXTI觸發(fā)源如下圖
Standby模式:只有特定幾個喚醒源可以喚醒,分別是NRST引腳喚醒、WKUP(PA0)引腳喚醒、看門狗事件喚醒、RTC鬧鐘喚醒
更多詳細內(nèi)容,請小伙伴參考《GD32F30x系列用戶手冊》——PMU章節(jié)。
關(guān)于低功耗,小伙伴們有其他想要了解的,可以在評論區(qū)留言互動哦。
--BY JUWOTEK.