STM32时钟树
STM32时钟树
简要结构

HSI(高速内部时钟)
- 由内部RC振荡器产生,频率为8MHz,但不稳定。
通常用于启动MCU,但不建议作为计时器
HSE(高速外部时钟)
- 以外部晶振作时钟源,晶振频率可取范围为4~16MHz,我们一般采用8MHz的晶振
这个相对准确,可以用作计时器
LSE(低速外部时钟)
- 以外部晶振作时钟源,主要提供给实时时钟模块,所以一般采用32.768KHz
通常作低功耗任务,比如唤醒MCU前的检测按键
LSI(低速内部时钟)
- 由内部RC振荡器产生,也主要提供给实时时钟模块,频率大约为40KHz。
也是唤醒MCU用的,不稳定
PLL(锁相环)
OSC_OUT和OSC_IN开始,这两个引脚分别接到外部晶振8MHz,第一个分频器PLLXTPRE,遇到开关PLLSRC(PLL entry clock source),我们可以选择其输出,输出为外部高速时钟(HSE)或是内部高速时钟(HSI)。这里选择输出为HSE,接着遇到锁相环PLL,具有倍频作用,在这里我们可以输入倍频因子PLLMUL,要是想超频,就得在这个寄存器上做手脚。
PLLCLK
- 经过PLL的时钟称为PLLCLK。
PLLM
- 主PLL的分频系数
PLLN
- 主PLL的倍频系数
PLLP
- 主PLL到SYSCLK前的最后一个分频系数
- PLLCLK时钟频率的计算公式为:
![img]()
即此时PLL时钟频率为
SYSCLK(系统时钟)
- 系统时钟,STM32大部分器件的时钟来源。主要由AHB预分频器分配到各个部件。
时钟源
- 该时钟可有多个时钟源,分别为:
HSE
- 直接来自
HSE
HSI
- 直接来自
HSI
PLLCLK
- 经过锁相环(
PLL)倍频
PLLR
- 经
PLLR倍频
HCLK
- 由
AHB预分频器直接输出得到,它是高速总线AHB的时钟信号,提供给存储器,DMA及cortex内核,是cortex内核运行的时钟,CPU主频就是这个信号,它的大小与STM32运算速度,数据存取速度密切相关。
FCLK(自由时钟)
- 同样由AHB预分频器输出得到,是内核的“自由运行时钟”。“自由”表现在它不来自时钟
HCLK,因此在HCLK时钟停止时FCLK也继续运行。它的存在,可以保证在处理器休眠时,也能够采样和到中断和跟踪休眠事件 ,它与HCLK互相同步。
PCLK
- 外设时钟,分为
PCLK1和PCLK2
PCLK1
- 由APB1预分频器输出得到,最大频率为36MHz,提供给挂载在
APB1总线上的外设
APB1外设
- RCC_APB1Periph_tiM2 TIM2时钟
- RCC_APB1Periph_TIM3 TIM3时钟
- RCC_APB1Periph_TIM4 TIM4时钟
- RCC_APB1Periph_WWDG WWDG时钟
- RCC_APB1Periph_SPI2 SPI2时钟
- RCC_APB1Periph_USART2 USART2时钟
- RCC_APB1Periph_USART3 USART3时钟
- RCC_APB1Periph_I2C1 I2C1时钟
- RCC_APB1Periph_I2C2 I2C2时钟
- RCC_APB1Periph_USB USB时钟
- RCC_APB1Periph_CAN CAN时钟
- RCC_APB1Periph_BKP BKP时钟
- RCC_APB1Periph_PWR PWR时钟
- RCC_APB1Periph_ALL 全部APB1外设时钟
PCLK2
- 由APB2预分频器输出得到,最大频率可为72MHz,提供给挂载在APB2总线上的外设
APB2外设
- RCC_APB2Periph_AFIO 功能复用IO时钟
- RCC_APB2Periph_GPIOA GPIOA时钟
- RCC_APB2Periph_GPIOB GPIOB时钟
- RCC_APB2Periph_GPIOC GPIOC时钟
- RCC_APB2Periph_GPIOD GPIOD时钟
- RCC_APB2Periph_GPIOE GPIOE时钟
- RCC_APB2Periph_ADC1 ADC1时钟
- RCC_APB2Periph_ADC2 ADC2时钟
- RCC_APB2Periph_TIM1 TIM1时钟
- RCC_APB2Periph_SPI1 SPI1时钟
- RCC_APB2Periph_USART1 USART1时钟
- RCC_APB2Periph_ALL 全部APB2外设时钟















浙公网安备 33010602011771号