STM32F103低功耗喚醒時鐘設定

2021-10-10 22:19:44 字數 1653 閱讀 9134

stm32中有四個時鐘源:

stm32f103中預設的時鐘源為8m高速外部時鐘,通過分頻器llxtpre選擇不分頻為8mhz,再通過鎖相環pll經過9倍頻得到時鐘頻率72mhz,並將該頻率作為系統時鐘。

stm32中很方便的將以上步驟簡化為乙個初始化函式:

systeminit()

;

因此,對於stm32中時鐘的配置可以分為以下幾步:

初始化時鐘

rcc_init()

;

選擇時鐘源:hse、lse、hsi、lsi(lse、lsi可通過分頻或直接用於rtc)

rcc_hseconfig

(rcc_hse_on)

;//8m外部時鐘源

高速外部晶振時鐘源預設為8m,若要修改為其他頻率,需要進行如下設定:

3. 設定pll的時鐘源及倍頻係數

rcc_pllconfig

(rcc_pllsource_hse_div1, rcc_pllmul_9)

;

第乙個引數可以進行不同設定:

. rcc_pllsource_hsi_div2:hsi頻率除以2

選擇pll作為系統時鐘,並使能

rcc_pllcmd

(enable)

;//使能pll

rcc_sysclkconfig

(rcc_sysclksource_pllclk)

;

int

main

(void)}

/*喚醒低功耗後配置時鐘*/

void

exti0_irqhandler

(void

)/*時鐘配置*/

void

sysclkconfig

(void

)while

(rcc_getflagstatus

(rcc_flag_hserdy)

== reset)

/* 等待pll準備就緒 */

rcc_pllcmd

(enable)

;/* 使能pll */

while

(rcc_getflagstatus

(rcc_flag_pllrdy)

== reset)

/* 等待pll準備就緒 */

rcc_sysclkconfig

(rcc_sysclksource_pllclk)

;/*選擇pll作為系統時鐘源 */

while

(rcc_getsysclksource()

!=0x08

)/* 等待pll被選擇為系統時鐘源 */

}

執行結果如下:

STM32F103ZET6待機喚醒 低功耗

在系統或者電源復位後,微控制器出於執行狀態之下,hclk為cpu提供時鐘,核心執行 當cpu不需要繼續執行時,可以利用多種低功耗模式來節省功耗,例如等待某個事件觸發。睡眠模式 核心停止,外設如nvic,系統時鐘systick仍執行。停止模式 所有時鐘都已停止。1.8v核心電源工作。pll,his和h...

STM32F103三種低功耗模式的區別

低功耗模式下gpio的狀態 低功耗設計思路 睡眠模式 sleep mode 停機機模式 stop mode 待機模式 standby mode 睡眠模式喚醒之後,從睡眠模式進入的下一條語句執行。停機模式喚醒之後,從停機模式進入的下一條語句執行。待機模式喚醒後的 執行等同於復位後的執行 進入stand...

STM32F103 時鐘配置

stm32f103外部8m的振盪器,經過倍頻後最高可以達到72m。void rcc deinit void 將外設rcc暫存器重設為預設值 void rcc hseconfig u32 rcc hse 設定外部高速晶振 hse rcc hse 取值如下 rcc hse offhse晶振off rcc...