STM32的3種低功耗模式

2021-08-07 12:07:33 字數 914 閱讀 9151

睡眠模式:核心停止,外設如nvic,系統時鐘systick仍執行。

停止模式:所有時鐘都已停止;1.8v核心電源工作;pll,his和hserc振盪器功能禁止;暫存器和sram內容保留。

待機模式:1.8v核心電源關閉;只有備份暫存器和待機電路維持供電;暫存器和sram內容全部丟失;實現最低功耗。

在待機模式下,所有的i/o引腳均處於高阻態,除了復位引腳、被使能的喚醒引腳和tamper引腳。待機模式下只有2ua的電流,停機模式下20ua的電流。 

庫函式進入待機模式:

1. 使能電源時鐘。 

2. 設定wk_up引腳作為喚醒源。 

3. 設定sleepdeep位,設定pdds位,執行wfi指令,進入待機模式。 

程式原始碼:

#include

"wkup.h"

#include

"led.h"

#include

"delay.h"

void sys_standby(void)

//系統進入待機模式

void sys_enter_standby(void)

//檢測wkup腳的訊號

//返回值1:連續按下3s以上

// 0:錯誤的觸發

u8 check_wkup(void)

}else

}} //中斷,檢測到pa0腳的乙個上公升沿.

//中斷線0線上的中斷檢測

void exti0_irqhandler(void) }

//pa0 wkup喚醒初始化

void wkup_init(void)

STM32低功耗模式 停止模式

停止模式是在cortex m3的深睡眠模式基礎上結合了外設的時鐘控制機制,在停止模式下電壓調節器可執行在正常或低功耗模式。此時在1.8v供電區域的的所有時鐘都被停止,pll hsi和hse rc振盪器的功能被禁止,sram和暫存器內容被保留下來。thumb指令不支援彙編內聯 採用如下方法實現執行彙編...

STM32低功耗設計

具體要點為 1 所有io管腳,如果高阻狀態埠是高電平,就設成上拉輸入,如果高阻狀態是低電平,設成下拉輸入,如果高阻是中間狀態,設成模擬輸入。這個很多人都提到過,必須的。作為輸出口就免了,待機你想輸出個什麼東西,一定要輸,硬體上加上下拉就可以了 2 兩個晶振輸入腳要remap成普通io!使用內部晶振。...

STM32開發 低功耗模式詳解(1)

很多微控制器都有低功耗模式,stm32 也不例外。當 cpu 不需繼續執行時,可以利用多個低功耗模式來節省功耗。這部分不是我負責,但是也是有必要看一下的。參看 stm32f1開發指南 庫函式版本 v3.2.pdf stm32中文參考手冊 v10.pdf 在系統或電源復位以後,微控制器處於執行狀態。當...