当前位置:首页 > 单片机 > 单片机
[导读]同时要记得把延时初始化函数设置好1 //系统时钟初始化函数2 //pll:选择的倍频数,从2开始,最大值为16 3 //pll:选择的倍频数,这里使用内部时钟,PLL为4就是4分频 4 void Stm32_Clock_Init(u8 PLL)5 {6 unsigned

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

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 }



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭