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

  

posted @   ai在西元前  阅读(99)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示