接下來我們就詳細的看一下這三者有何區(qū)別。
1、睡眠(Sleep)模式
● 進入睡眠模式
進入睡眠模式有兩種指令:WFI(等待中斷)和WFE(等待事件)。根據(jù)Cortex-M內(nèi)核的SCR(系統(tǒng)控制)寄存器可以選擇使用立即休眠還是退出時休眠,當 SCR 寄存器的 SLEEPONEXIT(bit1)位為 0 的時候使用立即休眠,當為 1的時候使用退出時休眠。
CMSIS(Cortex 微控制器軟件接口標準)提供了兩個函數(shù)來操作指令 WFI 和 WFE,我們可以 直接使用這兩個函數(shù):__WFI和__WFE。FreeRTOS 系統(tǒng)會使用 WFI 指令進入休眠模式。
● 退出休眠模式
如果使用 WFI 指令進入休眠模式的話那么任意一個中斷都會將 MCU 從休眠模式中喚醒,如果使用 WFE指令進入休眠模式的話那么當有事件發(fā)生的話就會退出休眠模式,比如配置一個 EXIT 線作為事件。
當 STM32F103 處于休眠模式的時候 Cortex-M3 內(nèi)核停止運行,但是其他外設(shè)運行正常,比如 NVIC、SRAM等。休眠模式的功耗比其他兩個高,但是休眠模式?jīng)]有喚醒延時,應(yīng)用程序可以立即運行。
2、停止(Stop)模式
停止模式基于 Cortex-M3 的深度休眠模式與外設(shè)時鐘門控,在此模式下 1.2V 域的所有時鐘都會停止,PLL、HSI 和 HSE RC振蕩器會被禁止,但是內(nèi)部 SRAM 的數(shù)據(jù)會被保留。調(diào)壓器可以工作在正常模式,也可配置為低功耗模式。如果有必要的話可以通過將 PWR_CR 寄存器的FPDS位置 1 來使 Flash 在停止模式的時候進入掉電狀態(tài),當 Flash 處于掉電狀態(tài)的時候MCU從停止模式喚醒以后需要更多的啟動延時。停止模式的進入和退出如表所示:
3、待機(Standby)模式
相比于前面兩種低功耗模式,待機模式的功耗最低。待機模式是基于 Cortex-M3 的深度睡眠模式的,其中調(diào)壓器被禁止。1.2V 域斷電,PLL、HSI振蕩器和 HSE 振蕩器也被關(guān)閉。除了備份區(qū)域和待機電路相關(guān)的寄存器外,SRAM 和其他寄存器的內(nèi)容都將丟失。待機模式的進入和退出如表所示:
退出待機模式的話會導(dǎo)致 STM32F1 重啟,所以待機模式的喚醒延時也是最大的。實際應(yīng)用中要根據(jù)使用環(huán)境和要求選擇合適的待機模式。
-
嵌入式
+關(guān)注
關(guān)注
5094文章
19185瀏覽量
307905 -
STM32
+關(guān)注
關(guān)注
2272文章
10925瀏覽量
357735 -
低功耗
+關(guān)注
關(guān)注
10文章
2420瀏覽量
103910 -
FreeRTOS
+關(guān)注
關(guān)注
12文章
484瀏覽量
62412
發(fā)布評論請先 登錄
相關(guān)推薦
使用HAL庫RTC時鐘喚醒低功耗STOP和STANDBY模式
低功耗藍牙三種發(fā)現(xiàn)模式是什么
stm32低功耗模式有哪幾種
三種STOP模式的區(qū)別是什么
三 stm32低功耗模式
![<b class='flag-5'>三</b> <b class='flag-5'>stm32</b><b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32 低功耗停機模式(STOP)管腳事件(EVENT)喚醒實現(xiàn)及優(yōu)化
![<b class='flag-5'>STM32</b> <b class='flag-5'>低功耗</b>停機<b class='flag-5'>模式</b>(STOP)管腳事件(EVENT)喚醒實現(xiàn)及優(yōu)化](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32與FreeRTOS實現(xiàn)低功耗
![<b class='flag-5'>STM32</b>與FreeRTOS實現(xiàn)<b class='flag-5'>低功耗</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
32怎么通過一個按鍵實現(xiàn)不同工作模式_stm32幾種低功耗模式的實現(xiàn)和差別
![32怎么通過一個按鍵實現(xiàn)不同工作<b class='flag-5'>模式</b>_<b class='flag-5'>stm32</b>幾種<b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>的實現(xiàn)和差別](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
32怎么通過一個按鍵實現(xiàn)不同工作模式_stm32幾種低功耗模式的實現(xiàn)和差別
![32怎么通過一個按鍵實現(xiàn)不同工作<b class='flag-5'>模式</b>_<b class='flag-5'>stm32</b>幾種<b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>的實現(xiàn)和差別](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論