新闻中心

EEPW首页>嵌入式系统>设计应用> STM32F107外部晶振25MHz配置到72MHz运行

STM32F107外部晶振25MHz配置到72MHz运行

作者: 时间:2016-12-03 来源:网络 收藏
启动文件选用:STM32F10X_CL

/*******************************************************************************
* 函数名称: RCC_Configuration
* 函数功能: 25MHZ 设置系统各部分时钟
* 参数变量: NONE
*全局变量: NONE
* 调用函数:
* 作 者:
* 编写时间:

本文引用地址://m.amcfsurvey.com/article/201612/325092.htm

* 修改时间:
* 版 本: V1.0
* 状 态:调试完成
*******************************************************************************/
void RCC_Configuration(void)
{
RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON);// Enable HSE
HSEStartUpStatus = RCC_WaitForHSEStartUp();//Wait till HSE is ready
if(HSEStartUpStatus==SUCCESS)
{
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//Enable Prefetch Buffer
FLASH_SetLatency(FLASH_Latency_2); // Flash 2 wait state
RCC_HCLKConfig(RCC_SYSCLK_Div1);//HCLK = SYSCLK
RCC_PCLK2Config(RCC_HCLK_Div1);//PCLK2 = HCLK
RCC_PCLK1Config(RCC_HCLK_Div2);//PCLK1 = HCLK/2
RCC_ADCCLKConfig(RCC_PCLK2_Div4);//ADCCLK = PCLK2/4
#ifndef STM32F10X_CL
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//PLLCLK = 8MHz * 9 = 72 MHz
#else
// Configure PLLs *********************************************************
//PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz
RCC_PREDIV2Config(RCC_PREDIV2_Div5);
RCC_PLL2Config(RCC_PLL2Mul_8);
RCC_PLL2Cmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLL2RDY)== RESET)
{}
RCC_PREDIV1Config(RCC_PREDIV1_Source_PLL2,RCC_PREDIV1_Div5);
RCC_PLLConfig(RCC_PLLSource_PREDIV1,RCC_PLLMul_9);//PLLCLK = 8MHz * 9 = 72 MHz
RCC_PLL3Config(RCC_PLL3Mul_11);
RCC_PLL3Cmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLL3RDY)== RESET)
{}
RCC_I2S3CLKConfig(RCC_I2S3CLKSource_PLL3_VCO);
RCC_I2S2CLKConfig(RCC_I2S2CLKSource_PLL3_VCO);
#endif
RCC_PLLCmd(ENABLE);// Enable PLL
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)// Wait till PLL is ready
{
}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);// Select PLL as system clock source
while(RCC_GetSYSCLKSource() != 0x08)// Wait till PLL is used as system clock source
{
}
}
}



关键词:STM32F107外部晶

评论


技术专区

关闭