3、stm32的复位和时钟控制RCC

1、stm32的RCC基础知识讲解

bash 复制代码
1. 什么是 RCC?
	RCC = Reset and Clock Control(复位和时钟控制)
	它是 STM32 芯片内部的一个"管家",负责:
	复位:让芯片或外设回到初始状态
	时钟管理:给 CPU 和各种外设提供"心跳"(时钟信号),没有时钟,它们就不能工作
2. 为什么需要时钟?
	STM32 所有操作都靠时钟驱动(就像人的心跳)
	不同模块(如 CPU、USART、ADC)可能需要不同频率的时钟
	RCC 就是用来配置这些时钟源和频率的
3. 时钟源有哪些?
	STM32 有多个时钟来源,主要三类:
	HSI:内部高速时钟(8MHz,精度一般,上电就能用)
	HSE:外部高速时钟(接晶振,比如 8MHz,更稳定精准)
	PLL:锁相环,可以把 HSI 或 HSE 倍频成更高频率(比如 72MHz)
4. 系统时钟(SYSCLK)从哪来?
	SYSCLK 是 CPU 的主时钟
	可以选择来自 HSI、HSE 或 PLL
	最终通过 AHB 分频器送给 CPU(叫 HCLK)
5. 时钟树是什么?
	一张图,展示时钟怎么从源头(HSI/HSE/PLL)分配到各个模块
	包括:
	AHB 总线 → 高速外设(如内存、DMA)
	APB1/APB2 总线 → 低速外设(如 TIM、USART、ADC)
	每个总线可以独立分频(比如 SYSCLK=72MHz,APB1 可设为 36MHz)
6. 复位有哪几种?
	系统复位:重启整个芯片(如按下 RESET 键)
	电源复位:上电或掉电恢复时触发,影响除了备份域之外的区域
	备份域复位:只复位 RTC 和后备寄存器
	外设复位:单独复位某个外设(通过 RCC 寄存器控制)
7. HAL 库怎么配置时钟?
	通常用 STM32CubeMX 图形化工具生成初始化代码
	核心函数:SystemClock_Config()
	→ 里面调用 HAL_RCC_xxx 函数设置时钟源、PLL、分频等
	配置后,HAL 库会自动更新 SystemCoreClock 变量(代表当前 CPU 频率)

2、时钟树

bash 复制代码
在时钟树中,通过HSE->PLL->AHB总线->APB1/APB2这样进行时钟分配,当不需要某个总线时钟时关闭即可达到低功耗
在F103产品手册中,HCLK最大72MHZ,APB1最大36MHZ,APB2最大72MHZ
相关推荐
悠哉悠哉愿意2 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
Lester_11012 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元2 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-187366133972 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315202 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
古译汉书2 天前
【IoT死磕系列】Day 7:只传8字节怎么控机械臂?学习工业控制 CANopen 的“对象字典”(附企业级源码)
数据结构·stm32·物联网·http
Alaso_shuang2 天前
STM32 核心输入、输出模式
stm32·单片机·嵌入式硬件
脚后跟2 天前
AI助力嵌入式物联网项目全栈开发
嵌入式硬件·物联网·ai编程
2501_918126912 天前
stm32死锁是怎么实现的
stm32·单片机·嵌入式硬件·学习·个人开发
z20348315202 天前
STM32F103系列单片机定时器介绍(一)
stm32·单片机