新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 【STM32筆記】RCC配置函數(shù)

【STM32筆記】RCC配置函數(shù)

作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏
voidRCC_Configuration(void)
{
ErrorStatusHSEStartUpStatus;

//使能外部晶振
RCC_HSEConfig(RCC_HSE_ON);
//等待外部晶振穩(wěn)定
HSEStartUpStatus=RCC_WaitForHSEStartUp();
//如果外部晶振啟動(dòng)成功,則進(jìn)行下一步操作
if(HSEStartUpStatus==SUCCESS)
{
//設(shè)置HCLK(AHB時(shí)鐘)=SYSCLK
RCC_HCLKConfig(RCC_SYSCLK_Div1);

//PCLK1(APB1) = HCLK/2
RCC_PCLK1Config(RCC_HCLK_Div2);

//PCLK2(APB2) = HCLK
RCC_PCLK2Config(RCC_HCLK_Div1);

//設(shè)置ADC時(shí)鐘頻率
RCC_ADCCLKConfig(RCC_PCLK2_Div2);

//FLASH時(shí)序控制
//推薦值:SYSCLK = 0~24MHzLatency=0
//SYSCLK = 24~48MHz Latency=1
//SYSCLK = 48~72MHz Latency=2
FLASH_SetLatency(FLASH_Latency_2);
//開(kāi)啟FLASH預(yù)取指功能
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

//PLL設(shè)置 SYSCLK/1 * 9 = 8*1*9 = 72MHz
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);
//啟動(dòng)PLL
RCC_PLLCmd(ENABLE);
//等待PLL穩(wěn)定
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);
//系統(tǒng)時(shí)鐘SYSCLK來(lái)自PLL輸出
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
//切換時(shí)鐘后等待系統(tǒng)時(shí)鐘穩(wěn)定
while(RCC_GetSYSCLKSource()!=0x08);


}


關(guān)鍵詞: STM32RCC配置函

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉