STM32F4外設配置速查 低功耗喚醒部分

2021-10-13 09:53:33 字數 2461 閱讀 2561

一般在系統或電源復位後,mcu在執行狀態下由hclk為cpu提供時鐘,核心執行**,當cpu不需要執行時可利用多種低功耗模式來節省功耗,等待某事件觸發時才喚醒

stm32f4xx有三種低功耗模式

睡眠模式

僅核心停止,外設如nvic、systick等仍執行

停止模式

所有時鐘停止,1.8v核心電源工作,備份暫存器、待機電路等都有供電,暫存器、sram資料保留

待機模式

1.8v核心電源關閉,僅有備份暫存器和待機電路維持供電,暫存器、sram清空,功耗最低

執行模式下,也可通過降低系統時鐘關閉未被使用的外設時鐘來降低功耗

嵌入式線性調壓器為除備份域和待機電路外所有數位電路供電,需要連線兩個外部電容到專用引腳vca

p_1v_

vcap_1

​和vcap

_2

v_vc

ap_2

​為啟用和停用調壓器,需要將特定引腳連線到vss或vdd,具體引腳由封裝決定

模式進入

喚醒對1.2v域時鐘的影響

對vdd域時鐘的影響

調壓器睡眠

wfi/wfe

任意中斷/喚醒事件

cpu clk關閉,其他無影響無開啟

停止pdds位和lpds位+sleepdeep位+wfi/wfe

任意exti線(可在exti暫存器中配置,包括內部線和外部線)

全部關閉

hsi、hse關閉

開啟或處於低功耗模式

待機pdds位+sleepdeep位+wfi/wfe

wkup引腳上公升沿、rtc鬧鐘(a或b)、rtc喚醒事件、rtc入侵事件、rtc時間戳事件、nrst引腳外部復位、iwdg復位

全部關閉

hsi、hse關閉

關閉wfi置位可用任意中斷喚醒

wfe置位可用喚醒事件喚醒

理想狀態下,待機模式只需要2.2ua電流,典型電流為350ua

使能了rtc鬧鐘中斷或rtc週期性喚醒等中斷時,進入待機模式前,必須進行以下處理:

禁止rtc中斷

清零對應中斷標誌位

清除pwr喚醒(wuf)標誌(通過設定pwr_cr->cwuf位實現)

重新使能rtc對應中斷

進入低功耗模式

詳情參考stm32f4xx晶元手冊

注意:使用前需引入stm32f4xx_pwr.c庫檔案

進入待機配置步驟:

使能電源時鐘

關閉rtc相關中斷

設定wk_up引腳為喚醒源

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

wkup.h

#ifndef __wkup_h

#define __wkup_h

#include

"sys.h"

u8 check_wkup

(void);

//檢測wkup腳訊號

void

wkup_enter_standbymode

(void);

//系統進入待機模式

void

wkup_init

(void);

//待機喚醒初始化

#endif

wkup.c

#include

"wkup.h"

#include

"delay.h"

//檢測wkup腳訊號

//返回1:連續按下3s以上;返回0:錯誤的觸發(連按3s以下)

u8 check_wkup

(void

)else

delay_ms(30

);if(t>=

100)

//按下超過3s

return1;

}}/*此函式效率較低,可使用定時器來重寫*/

//系統進入待機模式

void

wkup_enter_standbymode

(void

)//以pa0為待機喚醒引腳,進行wkup喚醒初始化

void

wkup_init

(void

)//中斷線0-pa0中斷服務函式

//上公升沿觸發,用於正常執行狀態進入待機模式

void

exti0_irqhandler

(void

)

main.c

此程式為待機喚醒的演示

如果用了上面的「長按3s進入待機模式」**,則main檔案內應當放入日常執行的程式

int

main

(void)}

}

STM32F4外設配置速查 RTC部分

2個32位暫存器包含bcd格式的second minute hour 12 24小時制 day week month year 還可以提供二進位制的亞秒值 系統可自動將月份天數補償位28 29 30 31天,還可以進行夏令時補償 時鐘源 由rtc calr精密校準過的lse 32.768khz 時鐘...

STM32F4外設配置速查 DMA部分

dma即direct memory access 直接儲存器訪問 將資料從乙個位址複製到另乙個位址,當cpu初始化dma控制器後,傳輸動作由dma控制器實現和完成 優點 無需cpu控制 或 中斷壓棧 出棧過程,讓ram與io裝置間可快速傳輸資料,減少cpu負載 雙ahb匯流排,乙個用於儲存器訪問,乙...

STM32F4外設配置速查 FPU與DSP部分

詳細內容參考cortex m4核心程式設計手冊 stm32f4xx及更高配置stm32微控制器才有fpu支援 stm32f4帶有32位單精度硬體fpu,支援浮點指令集,整個fpu單元能被使能和關閉 使用協處理器控制暫存器 scb cpacr 中的cp11和cp10啟用 關閉fpu 晶元復位後,cp1...