stm32 时钟树详解

HSE时钟

高速外部时钟来源为无源晶振(4-16M),通常为8M。

HSI时钟

高速内部时钟来源为芯片内部,大小为8M,当HSE故障时,系统时钟会自动切换到HSI。

一般配置系统时钟的流程为将HSE时钟8M进行9倍频得到72M。当HSE故障时,切换到HSI为8M,这个时候系统相当于瘫痪。

锁相环时钟

锁相环时钟为PLLCLK,一般来源为HSI/2、HSE、HSE/2经过倍频所得到,一般配置为HSE不分频经过9倍频得到8X9=72M,PLL时钟源头使用HSI/2的时候,PLLMUL最大只能是16,这个时候PLLCLK最大只能为4X16=64M,小于ST官方推荐的最大时钟72M。

系统时钟

系统时钟来源可以是HSI、HSE、PLLCLK这三个时钟,通常的配置是SYSCLK=PLLCLK=72M。

HCLK时钟

AHB高速总线时钟,速度最高为72M,一般由系统时钟分频得到,HCLK=SYSCLK=72M,为AHB总线的外设提供时钟,为Cortex系统定时器提供时钟(SysTick)、为内核提供时钟(FCLK)

PCLK1时钟

APB1低速总线时钟,最高为36M,一般由HCLK分频得到,一般配置为PCLK1=HCLK/2=36M,为APB1总线外设提供时钟,由于定时器使用36M频率有点小,所以除非APB1不分频,否则采用2倍频,这里的PCLK1=HCLK/2=36M,采用了2分频,所以2倍频之后为APB1总线的定时器2-7提供时钟,最大为72M。(APB2同理,只不过APB2为定时器1和8提供时钟且最大频率为72MHZ)。

 ADC时钟

由于ADC时钟最大为14MHZ,而ADC时钟是由APB2所接出来的,所以14X6=84,这超过了APB2的最大频率,所以14X4=54MHZ,也就是说,APB2在给ADC提供时钟时,最大只能为54M,不然ADC时钟就会超过最大频率14M。

RTC时钟

为芯片内部的RTC外设提供时钟,一般由HSE_RTC(HSE分频得到)、LSE(外部32.768KHZ的晶体提供)、LSI(32KHZ)提供

MCO时钟

MCO时钟来源为PLLCLK/2、HSE、HSI、SYSCLK

猜你喜欢

转载自www.cnblogs.com/roscangjie/p/11702757.html