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...