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