有3种时钟,
HSI,High Speed Internal,默认是这个
HSE,High Speed External,用外置晶振,官方开发板默认晶振为25MHz,stm32f4xx.h中有定义HSE_VALUE为25MHz,启明为8MHz
PLL,内部锁相环,可以有输出,输入可以为HSI或HSE。
一般都用HSE作为外部输入,然后HSE输入给PLL进行倍频,PLL输出给系统时钟。
system_stm32f4xx.c文件中有SystemCoreClockUpdate,该函数可以更新系统时钟全局变量SystemCoreClock。
/* Redefine HSE_VALUE to 8MHz
QiMing board osc = 8 MHz,
Official board osc = 24 MHz
*/
#undef HSE_VALUE
#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */ /************************* PLL Parameters *************************************/
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
//#define PLL_M 25
//#define PLL_N 336
/* The following para N/M = 42,
The above para N/M = 13.44
25 MHz / 8 MHz = 3.125
13.44*3.125 = 42
So, make sure N/M = 42 can make 168 MHz
*/
#define PLL_M 5
#define PLL_N 210