c
#include "cw32f030.h"
void SystemClock_Config(void) {
// 1. 启用外部高速晶振(HSE)
RCC->CR |= RCC_CR_HSEON;
while (!(RCC->CR & RCC_CR_HSERDY)); // 等待HSE稳定
// 2. 配置PLL(假设HSE=8MHz,PLL倍频至48MHz)
RCC->CFGR &= ~RCC_CFGR_PLLSRC; // 选择HSE作为PLL源
RCC->CFGR |= RCC_CFGR_PLLMUL6; // PLL倍频系数=6(8MHz*6=48MHz)
RCC->CR |= RCC_CR_PLLON; // 启用PLL
while (!(RCC->CR & RCC_CR_PLLRDY)); // 等待PLL稳定
// 3. 切换系统时钟至PLL输出(SYSCLK=48MHz)
RCC->CFGR &= ~RCC_CFGR_SW;
RCC->CFGR |= RCC_CFGR_SW_PLL;
while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL); // 等待切换完成
// 4. 配置HCLK分频系数(SYSCLK不分频,HCLK=48MHz)
RCC->CFGR &= ~RCC_CFGR_HPRE; // HPRE=1(不分频)
// 5. 配置Flash等待周期(HCLK=48MHz时插入1个等待周期)
FLASH->CR2 |= FLASH_CR2_WAIT_1;
} |