0%

STM32时钟系统简记

STM32的时钟系统如下图所示:

时钟源

STM32的时钟系统有4个独立的时钟源——LSELSIHSIHSE

  • 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、HSEHSE/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、HSIHSESYSCLK

  • STM32提供了一个时钟监视系统CSS,用于监视HSE的工作状态;若HSE失效,会自动切换到HSI作为系统时钟的输入


参考资料

【STM32】系统时钟RCC详解(超详细,超全面)