STM32F334系統(tǒng)時(shí)鐘的配置RCC_Config()
掃描二維碼
隨時(shí)隨地手機(jī)看文章
MCU:STM32F334C8T6
Frameware:STM32F3348-Discovery_FW_V1.0.0
RCC時(shí)鐘配置步驟:
重置RCC為默認(rèn)值:RCC_DeInit(); 庫(kù)函數(shù)中可以查到這個(gè)函數(shù)選擇HSI為系統(tǒng)時(shí)鐘(見(jiàn)圖)
打開(kāi)外部高速時(shí)鐘晶振HSE
等待HSE工作
設(shè)置AHB時(shí)鐘
設(shè)置高速APB(2)時(shí)鐘
設(shè)置低速APB(1)時(shí)鐘
設(shè)置PLL
打開(kāi)PLL
等待PLL工作
設(shè)置系統(tǒng)時(shí)鐘
等待系統(tǒng)時(shí)鐘設(shè)置成功
打開(kāi)所需時(shí)鐘
代碼:
voidRCC_Config(void)
{
//1.默認(rèn)設(shè)置,HSI為系統(tǒng)時(shí)鐘:8M
RCC_DeInit();
//2.打開(kāi)HSE:8M
RCC_HSEConfig(RCC_HSE_ON);
//3.等待
RCC_WaitForHSEStartUp();
//4.設(shè)置AHB=SYSCLK
RCC_HCLKConfig(RCC_SYSCLK_Div1);
//5.設(shè)置APB2=AHB
RCC_PCLK2Config(RCC_HCLK_Div1);
//6.設(shè)置APB1=AHB/2
RCC_PCLK1Config(RCC_HCLK_Div2);
//7.設(shè)置PLL,Source=8M,PLLMul=9
RCC_PLLConfig(RCC_PLLSource_PREDIV1,RCC_PLLMul_9);
//8.打開(kāi)PLL
RCC_PLLCmd(ENABLE);
//9.等等PLL就緒
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);
//10.設(shè)置系統(tǒng)時(shí)鐘SYSCLK=PLLCLK=8*9=72M
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
//11.等待設(shè)置成功
while(RCC_GetSYSCLKSource()!=0x08);
//12.打開(kāi)使用的時(shí)鐘
//..............
}
設(shè)置完成,系統(tǒng)時(shí)鐘 :SYSCLK=72M,AHB: HCLK=72M,APB2:PCLK2=72M,PAB1:PCLK1=36M
附圖:
STM32F334xx時(shí)鐘樹(shù):