对于有特殊需求的项目,也可以直接通过寄存器手动配置时钟。以下是基本步骤:
启用时钟源(如HSE或HSI):
c
复制代码
RCC->CR |= RCC_CR_HSEON; // 启用HSE
while (!(RCC->CR & RCC_CR_HSERDY)); // 等待HSE稳定
配置PLL并启用:
c
复制代码
RCC->PLLCFGR = RCC_PLLCFGR_PLLSRC_HSE | (9 << RCC_PLLCFGR_PLLMUL_Pos); // 倍频9倍
RCC->CR |= RCC_CR_PLLON; // 启用PLL
while (!(RCC->CR & RCC_CR_PLLRDY)); // 等待PLL稳定
切换系统时钟到PLL:
c
复制代码
RCC->CFGR |= RCC_CFGR_SW_PLL; // 选择PLL为系统时钟
while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL); // 等待切换完成
配置分频器:
c
复制代码
RCC->CFGR |= RCC_CFGR_HPRE_DIV1 | RCC_CFGR_PPRE1_DIV2 | RCC_CFGR_PPRE2_DIV1; // AHB和APB分频
|