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 小时前
MCU中的晶振
单片机·嵌入式硬件
up向上up2 小时前
基于STM32的多参数水温水质检测报警Proteus仿真设计
stm32·嵌入式硬件·proteus
ACP广源盛139246256732 小时前
GSV2125D@ACP#2125产品规格参数详解及产品应用分享
嵌入式硬件·计算机外设·音视频
旧梦吟2 小时前
脚本网页 嵌入式-笔记模板
stm32·嵌入式硬件·html5
余生皆假期-2 小时前
SVPWM 扇区判断法和七段式实现
单片机·嵌入式硬件
v先v关v住v获v取2 小时前
番茄打浆机结构设计cad13+三维图+设计说明说
科技·单片机·51单片机
CQ_YM3 小时前
网络编程之UDP
linux·c语言·网络·单片机·udp
小刘爱玩单片机3 小时前
【stm32简单外设篇】- ESP8266 Wi-Fi 模块(ESP-01系列)
c语言·stm32·单片机·嵌入式硬件
点灯master3 小时前
miniOTA:32位mcu平台OTA升级
单片机·嵌入式硬件