標籤:style 使用 os io for ar art div
void RCC_Configuration(void)
{
ErrorStatus HSEStartUpStatus;
RCC_DeInit(); //時鐘管理重設 /* RCC system reset(for debug purpose) */
RCC_HSEConfig(RCC_HSE_ON); //開啟外部晶振 //Enable HSE
HSEStartUpStatus = RCC_WaitForHSEStartUp(); //等待外部晶振就緒 //Wait till HSE is ready
if(HSEStartUpStatus == SUCCESS)
{
RCC_HCLKConfig(RCC_SYSCLK_Div1); //AHB使用系統時鐘 //HCLK = SYSCLK
RCC_PCLK2Config(RCC_HCLK_Div1); //APB2為HCLK/1 //PCLK2 = HCLK/1
RCC_PCLK1Config(RCC_HCLK_Div2); //APB1為HCLK/2 //PCLK1 = HCLK/2
RCC_ADCCLKConfig(RCC_PCLK2_Div4); //設定ADC時鐘頻率
//註:AHB主要負責外部儲存空間時鐘。PB2負責AD,I/O,進階TIM,串口1。APB1負責DA,USB,SPI,I2C,CAN,串口2345,普通TIM。
FLASH_SetLatency(FLASH_Latency_2); //flash操作的延時 //Flash 2 wait state
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //flash讀取緩衝,加速 //Enable Prefetch Buffer
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); //PLLCLK = 8MHz * 9 = 72MHz
RCC_PLLCmd(ENABLE); //啟動PLL //Enable PLL
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) //等待PLL啟動 /* Wait till PLL is ready */
{
}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //將PLL設定為系統時鐘源 /* Select PLL as system clock source */
while(RCC_GetSYSCLKSource() != 0x08) //等待系統時鐘源的啟動 /* Wait till PLL is used as system clock source */
{
}
}
}