STM32的时钟系统如下图所示:
时钟源
STM32的时钟系统有4个独立的时钟源——LSE
、LSI
、HSI
、HSE
。
LSE
:低速外部时钟,接32.768KHz的石英晶振;LSI
:低速内部时钟,40KHz的RC振荡器,低功耗时钟;HSI
:高速内部时钟,8MHz的RC振荡器,精度不高;HSE
:高速外部时钟,可接石英/陶瓷谐振器,或接外部时钟源,频率范围4MHz~16MHz。
LSI
独立使用,是作为独立看门狗(IWDG)时钟源和RTC时钟源。
高速内部时钟HSI
、高速外部时钟HSE
、锁相环源PLL Source Mux
经过分频/倍频而作为系统时钟System Clock Mux
来使用。
PLL Source Mux
的时钟输入源可选择HSI
/2、HSE
或HSE
/2,倍频可选择2~16倍。
USB时钟
STM32有一个全速的USB模块,需要一个48MHz的时钟源,该时钟源只能从PLL Source Mux
获取,可选择1分频或1.5分频。
外设时钟
系统时钟SYSCLK
通过AHB Prescaler
分频后输送到——
AHB
总线、内核、内存和DMA使用的时钟HCLK
Cortex
的系统定时器时钟- 空闲运行时钟
FCLK
- APB1分频器
APB1 Prescaler
,该分频器可选择1、2、4、8、16分频,其输出一路供APB1外设使用,最大频率36MHz;另一路供通用定时器使用 - APB2分频器
APB2 Prescaler
,该分频器可选择1、2、4、8、16分频,其输出一路供APB2外设使用,最大频率72MHz;另一路供高级定时器使用;还有一路输出供ADC分频器ADC Prescaler
使用,该分频器可选择2、4、6、8分频
补充
STM32可以选择一个时钟信号输出到MCO引脚(
PA8
)供外部使用,可选择为PLLCLK
/2、HSI
、HSE
、SYSCLK
STM32提供了一个时钟监视系统
CSS
,用于监视HSE
的工作状态;若HSE
失效,会自动切换到HSI
作为系统时钟的输入
参考资料: