STM32F7xx外设驱动3-rcc(寄存器)

//源文件
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);
/**********************************************************************/

  

热门相关:无量真仙   大神你人设崩了   网游之逆天飞扬   仗剑高歌   刺客之王