凡亿教育-迪丽热巴
凡事用心,一起进步
打开APP
公司名片
凡亿专栏 | 简述:STM32F103时钟配置方法
简述:STM32F103时钟配置方法

STM32F103的时钟系统采用多源架构,主要包括HSI(8MHz内部RC振荡器)、HSE(4-16MHz外部晶振,常接8MHz) 以及PLL(锁相环倍频器)。其配置遵循一个清晰的流程:启动HSE/HSI → 配置Flash预取指与等待周期 → 设置AHB/APB分频 → 配置并使能PLL → 切换系统时钟至PLL → 开启外设时钟。

3.png

1、关键配置要点

时钟源选择与使能

HSE使能:通过RCC_HSEConfig(RCC_HSE_ON)使能外部高速晶振,并用RCC_WaitForHSEStartUp()等待其稳定。

HSI作为备选:若使用内部RC振荡器,通过RCC_CR寄存器的HSION位使能并等待HSIRDY标志位稳定。

PLL配置与倍频

PLL时钟源:可选择HSE、HSE/2或HSI/2作为PLL输入。

倍频设置:通过RCC_PLLConfig()函数设置倍频系数(2~16倍),使PLL输出达到期望的系统时钟(最高72MHz)。例如,8MHz HSE 9倍频得72MHz。

总线分频系数设定

AHB总线 (HCLK):通过RCC_HCLKConfig()配置,常设为1分频(RCC_SYSCLK_Div1),使其与系统时钟同频。

APB1总线 (PCLK1):通过RCC_PCLK1Config()配置,最高36MHz,通常2分频(RCC_HCLK_Div2)。

APB2总线 (PCLK2):通过RCC_PCLK2Config()配置,最高72MHz,常设为1分频(RCC_HCLK_Div1)。

Flash延迟配置

当时钟频率超过特定值(如≥48MHz),必须通过FLASH_SetLatency(FLASH_Latency_2)设置Flash等待周期,并使能预取指缓冲区,确保CPU稳定读取指令和数据。

系统时钟切换与验证

通过RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK)将PLL输出作为系统时钟。

通过检查RCC_GetSYSCLKSource()的返回值(PLL作为时钟源时返回0x08)或等待RCC_CFGR的SWS位,确认时钟源已成功切换。

外设时钟使能

系统时钟配置完毕后,通过RCC_APB2PeriphClockCmd()或RCC_APB1PeriphClockCmd()使能相应外设(如GPIO、USART等)的时钟。

2、实用配置技巧

固件库简化配置:使用STM32固件库时,在system_stm32f10x.c中定义目标频率宏(如SYSCLK_FREQ_72MHz),并在初始化阶段调用SystemInit()函数,可自动完成时钟树配置。

时钟安全机制:考虑使能时钟安全系统(CSS),一旦HSE发生故障,可自动切换回HSI,增强系统鲁棒性。


本文凡亿教育原创文章,转载请注明来源!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论