谁知道STM32怎么设置寄存器来用PLL做系统时钟

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谁知道STM32怎么设置寄存器来用PLL做系统时钟相关的知识,希望对你有一定的参考价值。

RCC->CR=0x10000;//使能外部高速时钟 8Mhz
RCC->CFGR=0x1;//使用HSE做系统时钟
RCC->CFGR=0x1D0000;//设置PLL9倍频HSE分频1输入
RCC->CR=0x1000000;//使能PLL
RCC->CFGR=0x2;//设置PLL做系统时钟
参考技术A 如果你使用固件库的话可以直接调用函数完成。

STM32内部时钟设置-寄存器版

STM32寄存器版本——内部时钟设置

同时要记得把延时初始化函数设置好

 1 //系统时钟初始化函数
 2 //pll:选择的倍频数,从2开始,最大值为16    
 3 //pll:选择的倍频数,这里使用内部时钟,PLL为4就是4分频     
 4 void Stm32_Clock_Init(u8 PLL)
 5 {
 6     unsigned char temp=0;   
 7     MYRCC_DeInit();            //复位并配置向量表
 8 //     RCC->CR|=0x00010000;    //外部高速时钟使能HSEON
 9     RCC->CR|=0x00000001;    //内部高速时钟使能HSEON
10 
11 //    while(!(RCC->CR>>17));  //等待外部时钟就绪
12     while(!(RCC->CR>>1));   //等待内部时钟就绪
13     
14     RCC->CFGR=0X00000000; //APB1=DIV1;APB2=DIV1;AHB=DIV1;
15     
16     PLL-=2;//抵消2个单位
17 //    RCC->CFGR|=PLL<<18;   //设置PLL值 2~16
18     RCC->CFGR|=PLL<<18;   //设置PLL值 2~16   4倍频
19     RCC->CFGR|=0<<16;      //PLLSRC ON ,内部时钟经过两分频后输入给下一个寄存器
20     FLASH->ACR|=0x32;      //FLASH 2个延时周期
21 
22     RCC->CR|=0x01000000;  //PLLON
23     while(!(RCC->CR>>25));//等待PLL锁定
24     RCC->CFGR|=0x00000002;//PLL作为系统时钟     
25     while(temp!=0x02)     //等待PLL作为系统时钟设置成功
26     {   
27         temp=RCC->CFGR>>2;
28         temp&=0x03;
29     }    
30 }            

 

 

以上是关于谁知道STM32怎么设置寄存器来用PLL做系统时钟的主要内容,如果未能解决你的问题,请参考以下文章

STM32学习——RCC时钟配置

STM32学习——RCC时钟配置

STM32学习——RCC时钟配置

STM32 时钟系统

为啥我的stm32 的tim3 1ms中断时间不准

144个stm32开发相关的问题,看你了解几个