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
相关推荐
Javenwww3 小时前
STM32中DMA的使用——串口数据的DMA传输
单片机
qq_401700413 小时前
经典的电压基准源电路
单片机·嵌入式硬件
茯苓gao4 小时前
嵌入式开发笔记:电机参数辨识与自学习完全指南——从电气参数到机械特性的深度解析
笔记·嵌入式硬件·学习
西安景驰电子4 小时前
PCIe 授时卡原理及应用
运维·服务器·windows·单片机·嵌入式硬件·fpga开发
派勤电子5 小时前
5G物联网网关工控主板选型指南(超小尺寸工业级嵌入式硬件解决方案)
嵌入式硬件·工业网关·工控主板·工控主板选型·嵌入式工控主板·5g物联网网关·超小尺寸工控主板
&Hello Code6 小时前
2.一套可落地的 STM32 六层架构:基础工程框架搭建
stm32·嵌入式硬件·架构
sramdram6 小时前
高速低功耗stt-mram工业级存储方案
嵌入式硬件·mram·stt-mram·低功耗stt-mram
躺不平的理查德7 小时前
STM32 上拉和下拉
stm32·单片机·嵌入式硬件
嘶哈哈哈8 小时前
雷迅 CAN Babel 新品测评:一个小巧的 CAN/UART 双功能 USB 调试适配器
单片机·嵌入式硬件