//源檔案
void RccPhyConfig()
{
uint16_t retry = 0;
RCC->APB1ENR|=1<<28; //電源介面時鐘使能
PWR->CR1|=3<<14; //高性能模式,時鐘可到 180Mhz
PWR->CR1|=1<<16; //使能過驅動,頻率可到 216Mhz
PWR->CR1|=1<<17; //使能過驅動切換
RCC->CR |= (1<<16); //開啟HSE
while( ((RCC->CR&(1<<17))==0)&&(retry<0X1FFF)) //等待HSE 就緒
{
retry++;
}
if(retry == 0X1FFF)
{
ZlError();
}
RCC->CR &= ~(1<<24); //關閉主PLL
RCC->CFGR|=(0<<4)|(5<<10)|(4<<13);//HCLK 不分頻;APB1 4 分頻;APB2 2 分頻
RCC->PLLCFGR = PLL_M|(PLL_N<<6)|(((PLL_P>>1)-1)<<16)|(PLL_Q<<24)|(1<<22);
RCC->CR |= (1<<24); //打開主PLL
while((RCC->CR&(1<<25))==0);//等待 PLL 準備好
FLASH->ACR|=1<<8; //指令預取使能.
FLASH->ACR|=1<<9; //使能 ART Accelerator
FLASH->ACR|=7<<0; //8 個 CPU 等待周期.
RCC->CFGR&=~(3<<0); //清零
RCC->CFGR|=2<<0; //選擇主 PLL 作為系統時鐘
while((RCC->CFGR&(3<<2))!=(2<<2));//等待主 PLL 作為系統時鐘成功.
}
void ZlError()
{
while(1);
}
//頭檔案
/***************************** RCC*************************************/
#define PLL_M 8
#define PLL_N 432
#define PLL_P 2
#define PLL_Q 9
void RccPhyConfig(void);
void ZlError(void);
/**********************************************************************/
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/534048.html
標籤:其他
