正確設(shè)置:
void RCC_Configuration(void);
void RCC_Configuration(void) {
//éèÖÃPLLê±ÖóÔ′¼°±¶ÆμÏμêy RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_12);///*!< PLL input clock*12 */ //ê1ÄüPLL RCC_PLLCmd(ENABLE); //μè′yPLL3õê¼»ˉ3é1| while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) { }
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); while(RCC_GetSYSCLKSource() != 0x08) //μè′yÏμí3ê±Öó3õê¼»ˉ3é1| { } } 去掉外部晶振后,單片機(jī)時(shí)鐘源會(huì)默認(rèn)的使用內(nèi)部高速RC振蕩器HSI,HSI頻率大約為8M,所以要想使系統(tǒng)獲得48M的頻率需要用PLL倍頻后做為系統(tǒng)的時(shí)鐘,PLL是一個(gè)鎖相環(huán),專門用來倍頻或者分頻的。(倍頻后所得的頻率一般叫PLL時(shí)鐘) RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_12); 這句話的意思是將HSI 時(shí)鐘12倍頻,為什么是12倍頻而不是6倍頻呢?如下圖STM32F051系列的時(shí)鐘樹所示:
0.png (125.51 KB, 下載次數(shù): 49)
下載附件
2016-8-31 23:10 上傳
根據(jù)時(shí)鐘樹可以看出用PLL對(duì)HSI進(jìn)行倍頻時(shí),硬件將首先對(duì)HSI 二分頻,也就是為4M,所以必須再對(duì)其進(jìn)行12倍頻才能變成48M,最后通過RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);語句將PLL時(shí)鐘作為系統(tǒng)時(shí)鐘,至此系統(tǒng)的時(shí)鐘變?yōu)?/font>48M
|