41
463
1389
助理工程师
893985da93029221ae.png (51.9 KB )
下载附件
2019-10-18 11:23 上传
041024497369672.jpg (52.42 KB )
使用特权
701475da930e383b7b.png (180.89 KB )
2019-10-18 11:26 上传
282385da930c056be4.png (57.9 KB )
2019-10-18 11:25 上传
583615da930fb8c513.png (220.7 KB )
unsigned char PLL = 4; //PLL为设定放大的倍数 unsigned char temp = 0; //1.HSE时钟使能 //时钟控制寄存器 RCC->CR RCC->CR &= 1<<16; //使能HSE While(!(RCC-CR)>>17)); //判断HSE就绪标志位 //2.配置PLL,APB2,APB1,AHB //时钟配置寄存器RCC->CFGR RCC->CFGR |= 0x00000400; PLL-=2; //AHBCLK = SysTick, APB2CLK = AHBCLK,APB1CLK = AHBCLK/2 RCC->CFGR |= PLL<<18; //参考寄存器功能表,0010~4倍,依次增加,最大9倍 RCC->CFGR |= 3<<16; //HSE/2作为PLL的输入 //3.FLASH预存取即时钟配置 //FLASH预存取寄存器FLASH->ACR //注:具体参见《STM32闪存flash编程》,但有一点要注意,系统时钟大于30MHZ后一定需要配置,默认24MHZ后就需要配置 FLASH->ACR |= 0x32; //开启预存取,2个等待周期 //4.PLL使能 //时钟控制寄存器 RCC->CR RCC->CR |= 1<<24; //PLL使能 while(!(RCC->CR>>25)); //判断PLL使能标志位 //5.PLL作为系统时钟 RCC->CFGR | = 0x00000002; //PLL作为系统时钟 while(temp!=0x02) //PLL成功作为系统时钟,标志位 { temp= RCC->CFGR>>2; temp&= 0x03; }
77
4146
1万
资深工程师
85
4142
发表回复 本版积分规则 回帖后跳转到最后一页
发帖类勋章
1
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注21ic项目外包
扫码关注21ic视频号
扫码关注21ic抖音号
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才 | 论坛帮助
京公网安备 11010802024343号