STM32 查看系统工作主频

SystemCoreClock全局变量

通过打印 SystemCoreClock全局变量的值,就能观察系统当前主频。

/** @addtogroup STM32L4xx_System_Private_Variables
  * @{
  */
  /* The SystemCoreClock variable is updated in three ways:
      1) by calling CMSIS function SystemCoreClockUpdate()
      2) by calling HAL API function HAL_RCC_GetHCLKFreq()
      3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
         Note: If you use this function to configure the system clock; then there
               is no need to call the 2 first functions listed above, since SystemCoreClock
               variable is updated automatically.
  */
uint32_t SystemCoreClock = 4000000U;
STM32F103系列微控制器的默认系统主频为72 MHz,该频率由内部高速振荡器(HSI)提供,并通过锁相环(PLL)倍频至72 MHz[^1]。在默认情况下,系统时钟源选择的是HSI,但也可以根据需要切换为外部晶振(HSE),并通过配置PLL进一步调整系统主频。 ### 系统主频配置步骤 要修改STM32F103的系统主频,通常涉及以下几个关键步骤: #### 1. 初始化时钟源 可以选择使用HSI或HSE作为基础时钟源。例如,使用HSE时,需先使能HSE并等待其稳定: ```c RCC->CR |= RCC_CR_HSEON; // 开启HSE while(!(RCC->CR & RCC_CR_HSERDY)); // 等待HSE稳定 ``` #### 2. 配置PLL 如果希望将系统主频提升到72 MHz以上(如使用HSE输入时),可以通过配置PLL来实现。例如,将HSE 8 MHz作为输入,并通过倍频因子9得到72 MHz输出: ```c RCC->CFGR &= ~RCC_CFGR_PLLSRC; // 设置PLL输入源为HSE RCC->CFGR |= RCC_CFGR_PLLXTPRE; // HSE不分频 RCC->CFGR |= RCC_CFGR_PLLMULL9; // PLL倍频因子设为9 ``` #### 3. 启用PLL并切换系统时钟源 配置完成后,启用PLL并等待其锁定,然后将系统时钟源切换为PLL输出: ```c RCC->CR |= RCC_CR_PLLON; // 启动PLL while(!(RCC->CR & RCC_CR_PLLRDY)); // 等待PLL锁定 RCC->CFGR &= ~RCC_CFGR_SW; // 设置系统时钟源为PLL RCC->CFGR |= RCC_CFGR_SW_PLL; ``` #### 4. 更新系统核心时钟 最后,更新全局变量`SystemCoreClock`以确保库函数能够正确计算延时和波特率等参数: ```c SystemCoreClockUpdate(); ``` ### 注意事项 - 在更改系统主频之前,应确保所有外设的时钟分频设置与新频率兼容。 - 若使用外部晶振(HSE),需注意晶振的起振时间和稳定性。 - 修改主频后,需重新配置定时器、ADC等依赖系统时钟的模块。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值