STM32 换晶振改主频
时间: 2024-09-19 20:06:39 浏览: 45
STM32F401 16M晶振84M主频.zip
STM32系列微控制器通常采用内部时钟系统,其中包括一个用于调整主频的晶振( crystals 或陶瓷 resonators)。改变主频主要是通过配置片上复位后的时钟源选择寄存器,比如 HSE(高速外部晶体振荡器)、HSI(内部高速 RC 振荡器)或 LSI(低速内部 RC 振荡器)。
1. **更换晶振**:
- 首先确定新晶振的频率。STM32支持多种标准频率如8MHz、16MHz、32MHz等,如果换用了不同频率的晶振,需要相应调整配置。
2. **设置时钟源**:
- 在STM32 HAL库中,通过`RCC_OscInitTypeDef`结构体配置时钟源,选择HSE作为系统时钟源(SysClk),并设置分频系数。例如,如果你的新晶振是32MHz,可能会设置分频为8,即SysClk = HSE / 8 = 4MHz。
3. **配置SYSCLK**:
- 使用`HAL_RCC_SYSCLKConfig()`函数,将配置好的时钟源传递给系统时钟生成器,它会计算出实际的主频。
4. **设置AHB/APBx时钟**:
- 根据应用需求,可能还需要调整AHB总线(控制其他外设的总线)或APBx(如APB1、APB2,分别连接到内核和外设)的时钟。
5. **验证更改**:
- 确认通过`HAL_RCC_GetSystemClockFreq()`获取的实际主频是否符合预期。
阅读全文