经过一路学习过来你会发现越往后面时钟的知识就会越来越重要
配置系统时钟时一般为以下步骤
1、开启 HSE/HSI ,并等待 HSE/HSI 稳定
2、设置 AHB、 APB2、 APB1 的预分频因子
3、设置 PLL 的时钟来源,和 PLL 的倍频因子,设置各种频率主要就是在这里设置
4、开启 PLL,并等待 PLL 稳定
5、把 PLLCK 切换为系统时钟 SYSCLK
HSE 时钟 一般为8M 不分频作为PLL的时钟源经过PLL锁相环9倍频后作为系统时钟72M
HSI 时钟 也称备用时钟当外部晶振HSE出现问题时他作为主要的时钟来源来维持。它经过2分频作为PLL的时钟源,经过锁相环倍频后作为系统时钟最高只能是64M.
LSE时钟 常用于给RTC提供时钟一般为32.768K
LSI时钟 常用于给看门狗提供时钟
锁相环时钟: PLLCLK
来源: (HSI/2、 HSE)经过倍频所得 。
控制: CFGR: PLLXTPRE、 PLLMUL(寄存器)
注意: PLL时钟源头使用HIS/2的时候, PLLMUL最大只能
是16,这个时候PLLCLK最大只能是64M,小于ST官方推
荐的最大时钟72M。
系统时钟: SYSCLK,最高为72M( ST官方推荐的)
来源: HSI、 HSE、 PLLCLK。
控制: CFGR: SW(寄存器)
注意:通常的配置是SYSCLK=PLLCLK=72M。
HCLK: AHB高速总线时钟,速度最高为72M。为AHB总线
的外设提供时钟、为Cortex系统定时器提供时钟
( SysTick)、为内核提供时钟( FCLK)。
AHB: advanced high-performance bus。
来源:系统时钟分频得到,一般设置HCLK=SYSCLK=72M
控制: CFGR: HPRE
PCLK1: APB1低速总线时钟,最高为36M。为APB1总线
的外设提供时钟。 2倍频之后则为APB1总线的定时器2-7提
供时钟,最大为72M。
来源: HCLK分频得到,一般配置PCLK1=HCLK/2=36M
控制: RCC_CFGR 时钟配置寄存器的PPRE1位
PCLK2:APB2高速总线时钟,最高为72M。为APB2总线的外设提供时钟。为APB2总线的定时器1和8提供时钟,最大为72M。
来源:HCLK分频得到,一般配置PCLK1=HCLK=72M
控制: RCC_CFGR 时钟配置寄存器的PPRE2位
MCO:microcontroller clock output,微控制器时钟输出引脚,由PA8复用所得。
来源:PLLCLK/2,HSE、HSI、SYSCLK
控制:CRGR:MCO