从时钟树中可以看出外接晶振可以接4-16Mhz,经过PLL倍频,最高可以达到16倍晶振的频率。笔者自己是外接的8Mhz晶振,所以说理论上可以达到8*16=128Mhz的频率。
以下为子函数
void HSE_Init(uint32_t RCC_PLLMul_x)//范围2-16
{
ErrorStatus HSEStatus;
//重置RCC
RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON);
HSEStatus=RCC_WaitForHSEStartUp();
//判断HSE的状态
if(HSEStatus==SUCCESS)
{
//针对flash
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
FLASH_SetLatency(FLASH_Latency_2);
//对AHB APB1APB2分频
RCC_HCLKConfig( RCC_SYSCLK_Div1 );
RCC_PCLK1Config( RCC_HCLK_Div2 );
RCC_PCLK2Config( RCC_HCLK_Div1 );
//设置PLL,官方库中声明要先设置后打开PLL
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_x);
//使能PLL
RCC_PLLCmd(ENABLE);
while( RCC_GetFlagStatu