用C语言写个Stm32F103C8t6晶振初始化代码
时间: 2023-03-13 11:30:34 浏览: 47
在STM32F103C8t6上,晶振初始化代码如下:
/*时钟初始化函数*/
void RCC_Configuration(void)
{
ErrorStatus HSEStartUpStatus;
RCC_DeInit(); // 复位并重新配置系统时钟,系统时钟由内部振荡器提供
RCC_HSEConfig(RCC_HSE_ON); // 开启外部高速晶振
HSEStartUpStatus = RCC_WaitForHSEStartUp(); // 等待外部晶振就绪
if(HSEStartUpStatus == SUCCESS)
{
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);// 启用预取指缓存
FLASH_SetLatency(FLASH_Latency_2); // 设置FLASH两级缓存
RCC_HCLKConfig(RCC_SYSCLK_Div1); // 设置AHB时钟=SYSCLK
RCC_PCLK2Config(RCC_HCLK_Div1); // 设置APB2时钟=HCLK
RCC_PCLK1Config(RCC_HCLK_Div2); // 设置APB1时钟=HCLK/2
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); // 设置PLL值,系统时钟=8MHz*9=72MHz
RCC_PLLCmd(ENABLE); // 使能PLL
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); // 等待PLL就绪
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); // 设置系统时钟
while(RCC_GetSYSCLKSource() != 0x08); // 等待PLL设置完成
}
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); // 外设时钟使能
}
相关推荐

















