STM32最高主频取决于具体型号(如F103为72MHz,F407为168MHz,H7可达480MHz)。核心步骤:1)选择外部高速晶振(HSE),通常8MHz;2)配置PLL倍频,通过RCC->PLLCFGR设置PLLM、PLLN、PLLP等参数,确保VCO在2-4MHz输入、100-432MHz输出范围;3)设置Flash等待周期(FLASH->ACR),主频越高等待周期越多(如72MHz需2WS);4)使能PLL并切换系统时钟源为PLL,同时调整AHB/APB预分频器。建议使用STM32CubeMX图形化配置,自动生成初始化代码,避免手动计算错误。实操时务必核对参考手册的时钟树和寄存器描述,并实测运行频率(如用SysTick或定时器验证)。代码示例(F103):
```c
RCC->CR |= RCC_CR_HSEON; // 使能HSE
while(!(RCC->CR & RCC_CR_HSERDY));
RCC->CFGR |= RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9; // 8MHz*9=72MHz
FLASH->ACR |= FLASH_ACR_LATENCY_2; // 2等待周期
RCC->CR |= RCC_CR_PLLON;
while(!(RCC->CR & RCC_CR_PLLRDY));
RCC->CFGR |= RCC_CFGR_SW_PLL; // 切换时钟源
while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL);
```
注意:超频可能不稳定,需评估供电和散热。
mcuku 阿沐 · 2026-08-17