基于STM32单片机建立系统时钟的设计方案
2025-08-05 来源:elecfans
这里必须阐明系统时钟的简历对于系统运行的重要性。系统所有的运行都是建立在时钟的正常运行上的,没有稳健的系统时钟,就不可能有稳定的系统。
在系统中,复位后首要的任务是建立系统时钟,以下是建立系统时钟的基本步骤:

1. 将所有的RCC外设寄存器重设为默认值;
2.启用外部高速晶振;
3.等待,知道外部高速晶振稳定;
4.设置欲取指缓存使能和代码延时值;
5.设置AHB(HCLK)等于系统时钟;
6.设置高速APB2(PCLK2)为系统时钟;
7.设置低速APB1(PCLK1)为系统时钟的1/2,APB2最高是38MHz;
8.设置PLL时钟源及倍频系数,使能PLL,经过PLL被频后最高时钟只能72MHz;
9.等待PLL初始化;
10.设置PLL为系统时钟;
11.等待PLL成功作为系统时钟源。
以下通过实例代码表征上述的使用方法。主要就是根据以上的系统时钟配置的顺序来做代码处理:
ErrorStatus HSEStatusUpStatus;
//将外设RCC寄存器重设为默认值
RCC_DeInit();
//设置外部高速晶振
RCC_HSEConfig(RCC_HSE_ON);
//等待HSE起振
HSEStatusUpStatus = RCC_WaitForHSEStatusUp();
if(HSEStatusUpStatus == SUCESS)
{
//预取指缓存使能
FLASH_PrefetchBufferCmd(FLASH_PertchBuffer_Enable);
//设置代码延时值,FLASH_Latency_2,2 延时周期
FLASH_SetLatency(FLASH_Latency_2);
//设置AHB时钟(HCLK)
//RCC_SYSCLK_Div1 AHB 时钟 = 系统时钟
RCC_HCLKConfig(RCC_SYSCLK_Div1);
//设置高速AHB2为系统时钟
RCC_PCLK2Config(RCC_HCLK_Div1);
//设置低速AHB时钟
RCC_PCLK2Config(RCC_HCLK_Div2);
//设置PLL时钟
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);
//使能PLL
RCC_PLLCmd(enable);
// 等待指定RCC标志位设置成功,等待PLL初始化成功
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}
//设置PLL为系统时钟
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK)
//0x00 HSI,0X04 HSE,0X08 PLL
while(RCC_GetSYSCLKSource() != 0x08)
{
}
}
- 意法半导体中国本地造STM32微控制器启动规模量产
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 基于机智云与STM32的智能拐杖安全监测系统在养老物联网中的应用
- 内置全栈安全,一站式满足CRA法案与IEC 62443标准——米尔STM32MP257核心板
- 如何用 STM32 FLASH 实现等效 100 万次擦写的 EEPROM 功能?
- 实战解析:通过一个小项目掌握STM32所有外设
- STM32学了两年半,却还是不会做项目
- 意法半导体推出最新STM32MP21微处理器,兼具高性价比、低功耗、高灵活性
- 基于STM32的矿井作业环境监测系统设计与实现
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- 蓝牙信道探测技术原理与开发套件实践
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析




