stm32F407时钟配置

系统上电运行LDR R0,=SystemInit 跟踪进去,调用 SetSysClock()函数;

调用 SetSysClock()函数里边有  /*config the main PLL*/这一部分。其中包含以下几个参数:

    1.PLL_M

    2.PLL_N

    3.PLL_P

    4.PLL_Q  以上参数在system_stm32f4xx.c定义

以上参数关系如下:(假如我们使用外部晶振,频率为8MHz)                                                                                                                                              晶振频率在stm32F4xx.h定义   #define HES_VALURE (uint32_t )8000000

PLL_VCO=(HSE_VALUE/PLL_M)*PLLN

SYSCLOK=PLLVCO/PLLP

USB OTG_FS,SD CLOCK =PLLVCO/PLLQ

 

假如 PLLM定义为8,PLLN定义为336,PLL_P定义为2,PLLQ定义为7,

PLL_VCO=(8/8)*336=336

SYSCLOCK=336/2=168MHZ

USBCLOCK=336/7=48MHZ

 

 

假如 PLLM定义为8,PLLN定义为144,PLL_P定义为2,PLLQ定义为3,

PLL_VCO=(8/8)*144=144

SYSCLOCK=144/2=72MHZ

USBCLOCK=144/3=48MHZ

 

 

 

 

 

你可能感兴趣的:(stm32F407时钟配置)