帮我配置STM32芯片系统时钟为168MHZ代码,先使能HSI
时间: 2024-05-27 20:10:45 浏览: 159
RCC->CR |= RCC_CR_HSION; // 使能HSI
while((RCC->CR & RCC_CR_HSIRDY) == 0); // 等待HSI稳定
RCC->CR &= ~RCC_CR_PLLON; // 关闭PLL
while((RCC->CR & RCC_CR_PLLRDY) != 0); // 等待PLL关闭
RCC->PLLCFGR = (RCC->PLLCFGR & ~RCC_PLLCFGR_PLLM) | (8 << RCC_PLLCFGR_PLLM_Pos); // 设置PLL输入分频为8
RCC->PLLCFGR = (RCC->PLLCFGR & ~RCC_PLLCFGR_PLLN) | (168 << RCC_PLLCFGR_PLLN_Pos); // 设置PLL倍频为168
RCC->PLLCFGR &= ~RCC_PLLCFGR_PLLP; // 设置PLL输出分频为2
RCC->PLLCFGR &= ~RCC_PLLCFGR_PLLSRC; // 设置PLL输入时钟源为HSI
RCC->CR |= RCC_CR_PLLON; // 使能PLL
while((RCC->CR & RCC_CR_PLLRDY) == 0); // 等待PLL稳定
RCC->CFGR |= RCC_CFGR_HPRE_DIV1; // 设置AHB时钟分频为1
RCC->CFGR |= RCC_CFGR_PPRE2_DIV2; // 设置APB2时钟分频为2
RCC->CFGR |= RCC_CFGR_PPRE1_DIV4; // 设置APB1时钟分频为4
RCC->CFGR |= RCC_CFGR_SW_PLL; // 选择PLL作为系统时钟源
while((RCC->CFGR & RCC_CFGR_SWS_PLL) != RCC_CFGR_SWS_PLL); // 等待PLL作为系统时钟源稳定
SystemCoreClock = 168000000; // 更新系统时钟频率
阅读全文