在嵌入式系统中,时钟是一个关键的组成部分,用于控制和同步芯片内的各个模块。STM32 微控制器系列提供了灵活且可配置的时钟树结构,以满足各种应用需求。本文将详细分析 STM32 系统时钟树的结构和配置,同时提供相应的源代码示例。
STM32 系统时钟树结构
STM32 微控制器系列的系统时钟树结构通常由以下几个主要组件组成:
-
外部晶体振荡器(HSE):外部晶体振荡器是连接到微控制器的主时钟源。它提供高稳定性的时钟信号,通常在 4-26 MHz 的频率范围内。
-
内部时钟源(HSI):内部时钟源是微控制器内部集成的时钟源。它提供较低频率的时钟信号(通常为 16 MHz)。
-
PLL(锁相环):PLL 是一个用于生成高频时钟的模块。它以输入时钟源(可以是 HSE 或 HSI)为参考,并通过倍频因子将时钟频率提高到更高的频率。PLL 非常有用,特别是在需要高速外设操作或者高精度时钟时。
-
系统时钟(SYSCLK):系统时钟是微控制器内部使用的主时钟信号。它可以来自 HSI、HSE 或 PLL。
-
AHB 总线时钟(HCLK):AHB 总线时钟用于驱动主要的系统总线和内核模块。它的频率通常与 SYSCLK 频率相同