stm32 配置 HSI作为系统时钟,意义不大,一般不这样做!
/*******************************************************************************
* Function Name : HSESysClk_Config* Description :
* Input :
* Output : HSEÅäÖÃϵͳʱÖÓ
* Return :
*******************************************************************************/
void HSISysClk_Config(uint32_t RCC_PLLMul_x)
{
__IO uint32_t HSIstatus=0;
RCC_DeInit(); //¸´Î»ºóºóÐøµÄÅäÖòſÉдµ½¼Ä´æÆ÷
RCC_HSICmd(ENABLE); //
HSIstatus= RCC_WaitForHSEStartUp();
if(HSIstatus== SUCCESS)
{
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //Ԥȡֵ
FLASH_SetLatency(FLASH_Latency_2);
RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
RCC_PCLK2Config(RCC_SYSCLK_Div1);
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_x);
RCC_PLLCmd(ENABLE); //ʹÄÜ PLL
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
while(RCC_GetSYSCLKSource() != 0x08); //¼ì²âʱÖÓÔ´ 0x08 PLL clock
}
else
{
//Èç¹ûHSEÆô¶¯Ê§°Ü£¬¿É¼Ó´íÎó´¦Àí
}
}
最大64M.
时钟树一定要熟悉!!