STM32F40_41xxx 的時鐘控制主要是由RCC控制器操作。
HSE: 外部高速晶振
HSI: 內部高速晶振
LSE: 外部低速晶振
LSI: 內部低速晶振
芯片內部是由SYSCLK控制,SYSCLK可由HIS, HSE, PLLCLK.
一般時鐘源選用PLLCLK.
PLLCLK計算:
程序中,SystemInit來控制芯片時鐘。SetSysClock來最終選定時鐘。
M:8
N:336
P:2
Q:7
通過以上參數設置芯片主頻再168MHz. 系統代碼默認設置主頻168MHz。
在此函數之前,也有相關的設置,而沒有直接SetSysClock設置。猜測,系統啓動是由HSI啓動,再由HSE來倍頻分頻。
RCC_ClocksTypeDef RCC_ClocksStatus;
RCC_GetClocksFreq(&RCC_ClocksStatus);
以上函數可以獲取系統主頻等。
APB1 RCC_CFGR_PPRE1_DIV1 96MHz
APB2 RCC_CFGR_PPRE2_DIV2 48MHz