STM32时钟系统详解:HSI、HSE、LSI、LSE与PLL

需积分: 43 2 下载量 159 浏览量 更新于2024-09-09 收藏 418KB DOC 举报
"STM32时钟系统的详细分析与配置" STM32的时钟系统是其核心功能之一,对于微控制器的操作至关重要。系统时钟(SYSCLK)是STM32内部各模块运行的基础,其来源多样,包括高速内部时钟(HSI)、高速外部时钟(HSE)、低速内部时钟(LSI)、低速外部时钟(LSE)以及锁相环(PLL)。这些时钟源各有特点,满足不同场景的需求。 1. HSI 是一种8MHz的高速内部振荡器,适用于快速启动和应急情况。 2. HSE 是外部时钟源,通常为石英晶体,频率范围为4MHz至16MHz,用于提供更精确的时钟信号。 3. LSI 是一个40kHz的低速内部振荡器,主要为独立看门狗IWDG和实时时钟RTC提供时钟源。 4. LSE 是外部低速时钟,通常是一个32.768kHz的石英晶体,适用于RTC和其他低功耗应用。 5. PLL 作为倍频器,可以将HSI/2、HSE或HSE/2作为输入,倍频范围为2到16倍,但最大不超过72MHz。 实时时钟RTC的时钟源选择灵活,可以是LSI、LSE或HSE的128分频。而USB模块需要一个48MHz的时钟源,这个时钟只能来自PLL,且可以设置为1.5分频或1分频。STM32还有一个功能是通过MCO(Microcontroller Clock Output)引脚输出时钟,可以选择PLL的2分频、HSI、HSE或系统时钟。 系统时钟SYSCLK 可以选择PLL、HSI或HSE作为来源,其最大频率限制为72MHz。它经过AHB分频器分频后供给不同的模块: - HCLK 供AHB总线、CPU内核、内存和DMA使用,AHB分频器有多种分频选项。 - STCLK 供给Cortex-M的系统定时器,通过8分频得到。 - FCLK 供给Cortex-M的空闲运行时钟,直接取自SYSCLK。 - PCLK1 供给APB1总线的外设,经过APB1分频器,最大频率36MHz。此外,PCLK1还供给Timer2、3、4的倍频器,根据PCLK1的分频值自动调整1或2倍频。 - PCLK2 供给APB2总线的外设,同样通过分频器进行分频处理。 STM32的时钟系统设计灵活,可以根据应用需求进行精细化配置,以实现高效、低功耗或高精度的运行。理解并掌握STM32的时钟系统对于开发者优化系统性能和功耗至关重要。