stm32f103内部时钟64M配置
//配置内部时钟64MHZ
void SysclkInit64()
{
RCC_DeInit(); //将外设RCC寄存器重设为缺省值
RCC_HSICmd(ENABLE); //使能内部时钟 HSI
while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)== RESET); //等待HSI就绪
RCC_HCLKConfig(RCC_SYSCLK_Div1); //设置AHB时钟MAX72MHz(HCLK) RCC_SYSCLK_Div1——AHB时钟 = 系统时钟
RCC_PCLK2Config(RCC_HCLK_Div1); //设置高速AHB时钟MAX72MHz(PCLK2)RCC_HCLK_Div1——APB2时钟 = HCLK
RCC_PCLK1Config(RCC_HCLK_Div2); //设置低速AHB时钟MAX36Mhz(PCLK1)RCC_HCLK_Div2——APB1时钟 = HCLK / 2
FLASH_SetLatency(FLASH_ACR_LATENCY_2); //设置等待周期
//1. 这些选项应与闪存存储器的访问时间一起使用。等待周期体现了系统时钟(SYSCLK)频率与闪存访问时间的关系:
//0等待周期,当 0 < SYSCLK < 24MHz
//1等待周期,当 24MHz < SYSCLK ≤ 48MHz
//2等待周期,当 48MHz < SYSCLK ≤ 72MHz
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //设置Flash预读取
RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_16); //设置PLL时钟源及倍频系数,频率为8/2*16=64Mhz
RCC_PLLCmd(ENABLE); //使能PLL *///这里使用的内部时钟所以不能被 失能
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) ; //检查指定的RCC标志位(PLL准备好标志)设置与否等待是否配置成功
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //设置系统时钟(SYSCLK)
//选择哪一个做为时钟
//0x00:HSI作为系统时钟 RCC_SYSCLKSource_HSI
//0x04:HSE作为系统时钟 RCC_SYSCLKSource_HSE
//0x08:PLL作为系统时钟 RCC_SYSCLKSource_PLLCLK
while(RCC_GetSYSCLKSource() != 0x08); //需与被选择的系统时钟对应起来,RCC_SYSCLKSource_PLL
}