STM32F7xx外设驱动3-rcc(寄存器)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | //源文件 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 ); /**********************************************************************/ |
分类:
STM32F7xx 外设
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码