文章目录
- [下述将以stm32f407 为例](#下述将以stm32f407 为例)
- [1. 时钟系统及频率分析](#1. 时钟系统及频率分析)
- [2. 时钟配置](#2. 时钟配置)
下述将以stm32f407 为例
1. 时钟系统及频率分析

上述STM32F4时钟系统图解析入下:
-
STM32F407 系列微控制器(基于 Cortex-M4 内核,带 FPU)的工作频率配置如下,其核心及外设时钟均由时钟树(通过 PLL 倍频、分频器等从外部 / 内部振荡器衍生)生成:
-
- 核心时钟(FCLK Cortex clock,即 HCLK)
- 最高频率:168 MHz(这是 STM32F407 的标称最高主频)。
- 作用:作为 Cortex-M4 内核的工作时钟,直接决定 CPU 执行指令的速度(运算、数据处理等),是整个系统的 "核心频率"。
-
- 系统时钟(SYSCLK)
- 最高频率:168 MHz(与核心时钟同源,通常通过 PLL 从外部晶振(HSE)或内部高速振荡器(HSI)倍频得到)。
- 例如:外部 8 MHz 晶振(HSE)经 PLL 倍频(8 MHz × 21 = 168 MHz)后作为系统时钟。
-
- 总线时钟
- AHB 总线时钟(HCLK):最高 168 MHz(直接来自系统时钟,或经 AHB 预分频器分频,通常配置为与系统时钟同频),为内核、内存(SRAM、Flash)及 AHB 外设(如 DMA、ETH 等)提供时钟。
- APB1 总线时钟(PCLK1):最高 42 MHz(低速外设总线)。
- 挂载外设:USART25、SPI23、I2C13、CAN、TIM27 等。
- APB1 定时器时钟:当 APB1 预分频器 > 1 时,定时器时钟 = 2 × PCLK1(最高 84 MHz)。
- APB2 总线时钟(PCLK2):最高 84 MHz(高速外设总线)。
- 挂载外设:USART1、SPI1、ADC1~3、TIM1、TIM8、GPIO 等。
- APB2 定时器时钟:当 APB2 预分频器 > 1 时,定时器时钟 = 2 × PCLK2(最高 168 MHz)。
-
- 其他关键时钟
- USB OTG FS 时钟:固定 48 MHz(由 PLL 分频得到,用于 USB 通信)。
- 以太网(ETH)时钟:通常为 50 MHz(通过外部 PHY 或内部 PLL 生成,用于以太网通信)。
- 内部振荡器:
- HSI(高速内部振荡器):16 MHz(默认启动时钟,可作为 PLL 输入)。
- LSI(低速内部振荡器):40 kHz(用于 RTC、独立看门狗等)。
- 外部振荡器(HSE):通常为 8 MHz 或 25 MHz(硬件设计决定,精度高于内部振荡器,常用作 PLL 输入以获得稳定高频时钟)。
总结
STM32F407 的最高核心频率为 168 MHz,外设时钟根据总线类型(APB1/APB2)和功能需求(如 USB、ETH)有不同的最高限制。实际应用中可通过 STM32CubeMX 配置时钟树,在功耗与性能之间平衡(例如降低主频以减少功耗)。
2. 时钟配置
以正点原子的开发板, 开发板的外部高速晶振和外部低速晶振分别是:8MHz和32.768KHz, 通过stm32cubemx 通过分频倍频后配置如下: