stm32f103外部8m的振盪器,經過倍頻後最高可以達到72m。
void rcc_deinit(void)將外設rcc暫存器重設為預設值
void rcc_hseconfig(u32 rcc_hse)設定外部高速晶振(hse)
rcc_hse 取值如下:
rcc_hse_offhse晶振off
rcc_hse_onhse晶振on
rcc_hse_bypasshse晶振被外部時鐘旁路
errorstatus rcc_waitforhsestartup(void)等待hse起振
該函式將等待直到hse就緒,或者在超時的情況下退出
返回值乙個errorstatus列舉值:
success:hse晶振穩定且就緒
error:hse晶振未就緒
void rcc_hclkconfig(u32 rcc_hclk)設定ahb時鐘(hclk)
ahb(hclk)時鐘源自系統時鐘(sysclk)
rcc_hclk 取值如下:
rcc_sysclk_div1ahb時鐘 = 系統時鐘
rcc_sysclk_div2ahb時鐘 = 系統時鐘 / 2
rcc_sysclk_div4ahb時鐘 = 系統時鐘 / 4
rcc_sysclk_div8ahb時鐘 = 系統時鐘 / 8
rcc_sysclk_div16ahb時鐘 = 系統時鐘 / 16
rcc_sysclk_div64ahb時鐘 = 系統時鐘 / 64
rcc_sysclk_div128ahb時鐘 = 系統時鐘 / 128
rcc_sysclk_div256ahb時鐘 = 系統時鐘 / 256
rcc_sysclk_div512ahb時鐘 = 系統時鐘 / 512
void rcc_pclk2config(u32 rcc_pclk2)設定高速ahb時鐘(pclk2)
pclk2時鐘源自ahb時鐘(hclk)
rcc_pclk2輸入引數:
rcc_hclk_div1apb2時鐘 = hclk
rcc_hclk_div2apb2時鐘 = hclk / 2
rcc_hclk_div4apb2時鐘 = hclk / 4
rcc_hclk_div8apb2時鐘 = hclk / 8
rcc_hclk_div16apb2時鐘 = hclk / 16
void rcc_pclk1config(u32 rcc_pclk1)設定低速ahb時鐘(pclk1)
rcc_pclk1輸入引數
rcc_hclk_div1apb1時鐘 = hclk
rcc_hclk_div2apb1時鐘 = hclk / 2
rcc_hclk_div4apb1時鐘 = hclk / 4
rcc_hclk_div8apb1時鐘 = hclk / 8
rcc_hclk_div16apb1時鐘 = hclk / 16
void rcc_pllconfig(u32 rcc_pllsource, u32 rcc_pllmul)設定pll時鐘源及倍頻係數
rcc_pllsource輸入引數
rcc_pllsource_hsi_div2pll的輸入時鐘 = hsi時鐘頻率除以2
rcc_pllsource_hse_div1pll的輸入時鐘 = hse時鐘頻率
rcc_pllsource_hse_div2pll的輸入時鐘 = hse 時鐘頻率除以2
rcc_pllmul輸入引數
rcc_pllmul_2pll輸入時鐘 x 2
rcc_pllmul_3pll輸入時鐘 x 3
rcc_pllmul_4pll輸入時鐘 x 4
rcc_pllmul_5pll輸入時鐘 x 5
rcc_pllmul_6pll輸入時鐘 x 6
rcc_pllmul_7pll輸入時鐘 x 7
rcc_pllmul_8pll輸入時鐘 x 8
rcc_pllmul_9pll輸入時鐘 x 9
rcc_pllmul_10pll輸入時鐘 x 10
rcc_pllmul_11pll輸入時鐘 x 11
rcc_pllmul_12pll輸入時鐘 x 12
rcc_pllmul_13pll輸入時鐘 x 13
rcc_pllmul_14pll輸入時鐘 x 14
rcc_pllmul_15pll輸入時鐘 x 15
rcc_pllmul_16pll輸入時鐘 x 16
void rcc_pllcmd(functionalstate newstate)使能或者失能pll
newstate輸入引數
enable 或者 disable
flagstatus rcc_getflagstatus(u8 rcc_flag)檢查指定的rcc標誌位設定與否
rcc_flag輸入引數
rcc_flag_hsirdyhsi晶振就緒
rcc_flag_hserdyhse晶振就緒
rcc_flag_pllrdypll就緒
rcc_flag_lserdylsi晶振就緒
rcc_flag_lsirdylse晶振就緒
rcc_flag_pinrst管腳復位
rcc_flag_porrstpor/pdr復位
rcc_flag_sftrst軟體復位
rcc_flag_iwdgrstiwdg復位
rcc_flag_wwdgrstwwdg復位
rcc_flag_lpwrrst低功耗復位
返回值set reset
void rcc_sysclkconfig(u32 rcc_sysclksource)設定系統時鐘(sysclk)
rcc_sysclksource輸入引數
rcc_sysclksource_hsi選擇hsi作為系統時鐘
rcc_sysclksource_hse選擇hse作為系統時鐘
rcc_sysclksource_pllclk選擇pll作為系統時鐘
u8 rcc_getsysclksource(void)返回用作系統時鐘的時鐘源
返回值0x00:hsi作為系統時鐘
0x04:hse作為系統時鐘
0x08:pll作為系統時鐘
例程hse作為pll,pll作為sysclk
rcc_deinit();
rcc_hseconfig(rcc_hse_on);
if (rcc_waitforhsestartup() == success)
}
STM32F103 時鐘配置
由於stm32的庫預設是外部晶振8m的情況下實現的,所以配置波特率的時候也是按8m,包括主頻,如果用12m晶振就需要改動幾個地方 在system stm32f10x.c中找到相應型別的檔案,進行如下修改。1 72m主頻 8m時 rcc cfgr uint32 t rcc cfgr pllsrc hs...
STM32F103時鐘樹講解
時序在數位電路中的作用,就像通訊中用到的載波,載波並不起眼,但是很重要。時鐘也一樣,現象上只是某種頻率波峰波谷跳動,一成不變。但是有了它,就像人類的歷史有了時間軸一樣,什麼時候該幹什麼事才有了可能。程式中發生的事件,能夠按照自己的意願發生。時鐘源倍頻器高速時鐘高速外設低速時鐘低速外設yesno st...
STM32F103低功耗喚醒時鐘設定
stm32中有四個時鐘源 stm32f103中預設的時鐘源為8m高速外部時鐘,通過分頻器llxtpre選擇不分頻為8mhz,再通過鎖相環pll經過9倍頻得到時鐘頻率72mhz,並將該頻率作為系統時鐘。stm32中很方便的將以上步驟簡化為乙個初始化函式 systeminit 因此,對於stm32中時鐘...