stm32时钟源

先了解几个概念:
stm32时钟源:
LSE:是低速外部时钟,一般由OSC_32_IN/OSC_32OUT接外部晶振或时钟源,如常用的32.768k晶振。
HSE:是高速外部时钟,一般由OSC_IN/OSC_OUT接外部晶振或外部时钟源,频率范围为4MHz~16MHz,常用8M晶振。
LSI:是低速内部时钟,RC振荡器,频率为40kHz左右。
HSI:是高速内部时钟,RC振荡器,频率为8MHz左右。
PLLCLK:是锁相环倍频输出,可以根据自己的需要倍频。
常用stm32(以f103zetX举例)有如下几个 多路时钟复用器(用于选择采用哪一路时钟)

RTC多路时钟复用器
stm32时钟源_第1张图片
可以看到该路时钟可以选择使用LSI\LSE\HSE分频输出,为RTC提供基准时钟。
IWDG(独立看门狗)只能使用LSI提供时钟频率。

系统多路时钟复用器
stm32时钟源_第2张图片
通常在外接晶振的条件下工作,我们常在PLL时钟复用器中选择HSE输入,倍频后提供给系统时钟。
若想配置为内部时钟工作或改变工作频率,只需要在相应PLL时钟复用器、系统时钟复用器中选择相关的时钟源,改变分频、倍频的倍数即可。

系统时钟选择后如图送至余下总线,用来控制不同外设,其定义如下:
AHB:高速总线 用来控制内存、DMA等
APB:低速总线 用来控制IO、定时器、IIC、SPI、UART等
HCLK:高速总线AHB时钟
FCLK:CPU工作时钟
PCLK:低速总线APB时钟

输出时钟复用器
stm32时钟源_第3张图片
该复用器一般用于选择stm32的输出时钟,启用后可以在RCC_MCO管脚观察输出时钟。

在stm32cubemx中,我们如果想配置时钟源一般只需在RCC中选择外部时钟的时钟源(如果有的话),并在时钟树内配置复用器选择相关的时钟源和频率即可。

你可能感兴趣的:(stm32,hal)