424 字
1 分钟
RCC(复位与时钟控制)
2026-05-19

RCC(复位与时钟控制)#

什么是 RCC?#

RCC 是 STM32 内部负责复位时钟的模块。
任何外设(GPIO、USART、定时器……)在使用前都必须先使能对应总线上的时钟,否则外设不会工作。

TIP

时钟就像芯片的“心跳”,没有心跳的外设就是死的。
RCC 决定了心跳源,并控制心跳分发到各个部件。

RCC 的三大核心功能#

  1. 系统时钟与总线时钟的生成
  2. 外设时钟的使能与关闭
  3. 系统复位与电源管理(部分)

时钟源#

STM32F1 有四种主要时钟源:

时钟源速度来源说明
HSI8 MHz内部 RC 振荡器出厂已校准,不够精准,但起振快
HSE4 ~ 16 MHz外部晶振/陶瓷振荡器精度高,系统常使用,需要配合外部电容
LSI~40 kHz内部低功耗 RC供独立看门狗、自动唤醒使用
LSE32.768 kHz外部低速晶振为 RTC 提供精准时钟

![[时钟源示意图]]


时钟树(STM32F1 简化版)#

![[Pasted image 20260520170501.png]]

  • SYSCLK:系统时钟,72 MHz(典型值)
  • AHB:总线时钟 HCLK,等于 SYSCLK 或分频(多数为 SYSCLK)
  • APB1:低速外设总线,最大 36 MHz(定时器时钟可能是 PCLK1 的 2 倍)
  • APB2:高速外设总线,最大 72 MHz
  • PLL:锁相环,将 HSE/HSI 倍频,常用来生成 72 MHz
IMPORTANT

配置时钟时必须先使能时钟源,再等待就绪,最后切换系统时钟。


常用库函数(标准外设库)#

// 使能外设时钟 (APB2)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1, ENABLE);
// 使能外设时钟 (APB1)
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

RCC(复位与时钟控制)
https://caoyue.xin/posts/stm32/rcc/
作者
Colton/曹越
发布于
2026-05-19
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录