1. 程式人生 > >arm時鐘配置

arm時鐘配置

一般大家在使用arm程式時,都是參考已經寫好的程式,這樣下來既方便又省事,但是每當被問及底層的問題時,往往會出現一知半解的情況,當碰到關於出現時鐘發麵的問題時,往往無從下手。比如系統時鐘配置的問題,樓主之前也是挪用成熟的程式碼,雖然功能實現了,但仍然感覺瞭解的不太徹底,趁此機會,就好好的看了下系統時鐘的程式碼。

系統時鐘在配置時,應用程式在system_stm32f4xx.c庫檔案中,在該檔案中有一個void SystemInit(void)函式,該函式如下:



函式的前一部分都是對系統暫存器進行初始化操作,具體參考晶片暫存器,主要配置在SetSysClock()函式中,

SetSysClock()函式如下(該函式包括了挺多晶片,這裡我選擇型的選取的407):


該處程式主要開啟了HSE,以及對HCLK,PCLK2,PCLK1進行初始化,當HSE為8Mhz時,此處的頻率略低,那麼如何提高頻率呢,當然需要PLL了,接下來的程式就是對PLL進行配置,如下


函式中的PLL_M, PLL_N, PLL_P, PLL_Q這些配置引數起到很關鍵的作用,這些引數也是在該檔案中進行定義的,具體如下:

因此,在修改系統時鐘時,修改這些資料的定義即可。到此結束,希望大神能給予更全面的講解。