STM32时钟树(Clock Tree)

目录

[1. 为什么单片机需要时钟?](#1. 为什么单片机需要时钟?)

[2. 时钟从哪里来?](#2. 时钟从哪里来?)

(1)HSI:高速内部时钟

(2)HSE:高速外部时钟

[(3)LSE / LSI](#(3)LSE / LSI)

[3. PLL 是干什么的?](#3. PLL 是干什么的?)

[4. STM32 时钟树的大结构](#4. STM32 时钟树的大结构)

SYSCLK系统时钟

[HCLK AHB 总线时钟。](#HCLK AHB 总线时钟。)

[PCLK APB 外设时钟。](#PCLK APB 外设时钟。)

APB1

APB2


在 STM32 裸机开发里,时钟树(Clock Tree)是非常核心的一部分。很多初学者刚看到 STM32 的时钟树图会觉得像"电路迷宫",但你只要抓住几个核心概念,就会发现它其实是在解决一个问题:

给 CPU 和各种外设分配合适频率的时钟。

STM32 的时钟系统由 RCC(Reset and Clock Control,复位和时钟控制器)管理,不同系列的 STM32 时钟树细节不同,但整体思想类似。

1. 为什么单片机需要时钟?

你可以把时钟理解成 MCU 的"心跳"。

CPU 执行:

复制代码
a = b + c;

实际上需要很多个晶振脉冲:

复制代码
时钟 ↑
CPU 执行一步
时钟 ↑
CPU 执行下一步

没有时钟:

  • CPU 不运行
  • 定时器不计数
  • UART 不发送
  • SPI/I2C 不通信

所以 STM32 上电第一件重要的事情之一就是配置时钟。

2. 时钟从哪里来?

STM32 一般有几个时钟源:

(1)HSI:高速内部时钟

High Speed Internal

例如:

复制代码
HSI = 8MHz / 16MHz

来自芯片内部 RC 振荡器。

优点:

  • 不需要外部晶振
  • 上电即可使用

缺点:

  • 精度较差

(2)HSE:高速外部时钟

High Speed External

就是开发板上的晶振:

比如:

复制代码
8MHz 晶振

外部:

复制代码
晶振
 |
HSE
 |
STM32

优点:

  • 精度高

常用于:

  • 串口精确波特率
  • USB
  • 高精度应用

(3)LSE / LSI

低速时钟:

复制代码
LSE = 32.768kHz
LSI ≈ 40kHz

主要给:

  • RTC 实时时钟
  • 看门狗

3. PLL 是干什么的?

PLL:

Phase Locked Loop(锁相环)

简单理解:

一个"倍频器"。

比如,外部晶振:

复制代码
HSE = 8MHz

经过 PLL:

复制代码
8MHz × 9 = 72MHz

得到:

复制代码
SYSCLK = 72MHz

STM32F1 很经典:

复制代码
8MHz晶振
      |
      ↓
     PLL ×9
      |
      ↓
 72MHz系统时钟

所以你看到:

复制代码
SystemCoreClock = 72000000;

意思就是:

CPU 主频 72MHz。

4. STM32 时钟树的大结构

简化成这样:

复制代码
              HSI
               |
              |
HSE --------> PLL
               |
               ↓
            SYSCLK
               |
               |
          ---------------
          |             |
          ↓             ↓

        HCLK          PCLK
          |             |
          |             |
        CPU           外设

SYSCLK系统时钟

来源:

复制代码
HSI
HSE
PLL

选择一个作为:

复制代码
SYSCLK

例如:

复制代码
SYSCLK = 72MHz

HCLK AHB 总线时钟。

通常:

复制代码
HCLK = SYSCLK

例如:

复制代码
SYSCLK 72MHz

     ↓

HCLK 72MHz

提供给:

  • CPU
  • DMA
  • SRAM
  • Flash接口

PCLK APB 外设时钟。

分两组:

APB1

低速外设:

例如:

  • USART2
  • I2C
  • TIM2

通常:

复制代码
PCLK1 <= 36MHz

APB2

高速外设:

例如:

  • GPIO
  • USART1
  • ADC
  • TIM1

通常:

复制代码
PCLK2 <= 72MHz

例如 STM32F103:

复制代码
SYSCLK
  |
  |
 72MHz
  |
  +------ HCLK
  |          |
  |          CPU
  |
  +------ APB2
  |          |
  |          GPIO
  |          USART1
  |
  +------ APB1
             |
             USART2
             I2C
相关推荐
shijuejianceliu1 小时前
传统规则视觉与嵌入式AI智能相机的技术差异
人工智能·嵌入式硬件·视觉检测·相机
Zw-awa4 小时前
OLED为什么能显示字:软件I2C换成硬件I2C
stm32
不脱发的程序猿5 小时前
GD32串口数据收进内存之后DMA如何处理?
单片机·嵌入式硬件·dma·嵌入式·串口通信·gd32
FPGA小迷弟9 小时前
FPGA 与千兆以太网校验和:从原理到 Verilog 实现
嵌入式硬件·fpga开发·无人机·ai编程·fpga
Zw-awa19 小时前
协议是人为约定:同一个字节能有三种意思
stm32
国科安芯1 天前
83 倍:ASC0108S 在推挽和开漏之间,差的不是速度,是回程
单片机·嵌入式硬件·架构·电平转换·抗辐射
国科安芯1 天前
从遥控到自治:ASP4644S2B支撑星载电源健康管理与容错配电
网络·单片机·嵌入式硬件·安全·dcdc·低轨卫星·商业航天
rhythm-ring1 天前
《汽车热管理系统:电子水泵单线PWM双向诊断机制》
单片机·嵌入式硬件·汽车
Dev_XH1 天前
【成品设计】基于物联网的车间安全生产监控系统设计
stm32·单片机·嵌入式硬件·物联网
xiebs_1 天前
【无标题】111
单片机