配置RCC
1.时钟树的主要部分
25M的外部时钟(HSE)经过分频因子M
变为1M(此处M为25,M必须与外部晶振的时钟频率相同,即经过M分频之后,时钟频率须为1M),再经过倍频因子N
变为336M(如果想超频使用,就修改N),成为VCO时钟,再经过分频因子p
(一般配置成2),出来的到168M的PLLCLK,即锁相环时钟,PLLCLK经过开关SW会被选为SYSCLK,即系统时钟。
HSE是高速的外部时钟信号,可以由有源晶振或者无源晶振提供,频率从 4-26MHZ 不等。
所有的外设被挂载到AHB,APB2,APB1这三条总线上,这三条总线的时钟在系统启动时会先初始化好,AHB为是高速总线,由SYSCLK经过分频因子得到,一般为1分频,即AHB时钟为168M。APB2和APB1是低速时钟,它们由AHB分频而来,APB2为2分频,(APB2最高为84M),APB1为4分频(APB1最高为42M)。
以上这些都是在system_stm32f4xx.c文件中的**SetSysClock()**函数中配置的。
配置HSE使用RCC_CR寄存器,
配置PLL使用RCC_PLLCFGR寄存器,
配置SYSCLK使用RCC_CFGR
参考文献:
1.[野火EmbedFire]《STM32库开发实战指南——基于野火霸天虎开发板》
2.《1-STM32F4xx中文参考手册》