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
相关推荐
QK_002 小时前
STM32-热敏传感器以及光敏传感器
stm32·单片机·嵌入式硬件
代码游侠3 小时前
复习——ARM Cortex-A 裸机开发深度解析
arm开发·笔记·嵌入式硬件·学习·架构
清风6666663 小时前
基于单片机的燃气热水器智能控制系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
youcans_4 小时前
【动手学STM32G4】(2)STM32G431之外部中断—按键控制
stm32·单片机·嵌入式硬件·外部中断
Smart-佀5 小时前
FPGA入门:CAN总线原理与Verilog代码详解
单片机·嵌入式硬件·物联网·算法·fpga开发
与光同尘 大道至简5 小时前
ESP32 小智 AI 机器人入门教程从原理到实现(自己云端部署)
人工智能·python·单片机·机器人·github·人机交互·visual studio
老李的森林6 小时前
嵌入式开发--无刷电机FOC控制--用定时器事件驱动ADC采样
stm32·单片机·嵌入式硬件·foc·无刷电机
一路往蓝-Anbo6 小时前
【第42期】调试进阶(一):IDE中的Register与Memory窗口
c语言·开发语言·ide·stm32·单片机·嵌入式硬件
boneStudent6 小时前
STM32工业HMI控制系统
stm32·单片机·嵌入式硬件
广药门徒7 小时前
嵌入式存储芯片驱动解析:标准化接口与STM32 FMC配置指南
stm32·单片机·嵌入式硬件