OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5665|回复: 5

HSI初始化开启64M

[复制链接]

7

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2013-11-2
在线时间
13 小时
发表于 2014-8-15 10:10:52 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]//高速内部时钟 void HSI_USERInit(void) { RCC->CFGR = 0x00000000; //启动内部时钟,并复位所有其他时钟 RCC->CR = 0x00000001; while(BV(1) != (RCC->CR&BV(1))); //设置内部总线(AHB)速度为系统时钟HCLK=SYSCLK,已经设置 //设置外部高速(APB2)设备时钟为HCLK,PCLK2=HCLK RCC->CFGR |= BV(13); //设置外部低速(APB1)设备时钟为HCLK/2,PCLK1=HCLK/2 RCC->CFGR |= BV(10); //设置内部Flash延时周期,参考STM32的Flash参考手册,0-24,0个周期,24-48,1个周期,48-72M,2个周期 FLASH->ACR &= 0x00000038; FLASH->ACR |= 0x00000002; //设置内部高速时钟HSI/2为PLL时钟源,16倍PLL时钟输出 RCC->CFGR &= 0<<16;//PLLSRC = 0 HSI/2 作为PLL输入时钟源 RCC->CFGR |= (0x0f<<18); //使能PLL时钟输出 RCC->CR |= BV(24); //等待PLL时钟输出稳定 while(BV(25) != (RCC->CR&BV(25))); //设置PLL输出为系统时钟 RCC->CFGR |= 0x00000002; //等待系统时钟稳定 while(BV(3) != (RCC->CFGR&BV(3))); }[/mw_shl_code]

为什么开不出来,检查了好多遍了0.0

最佳答案

查看完整内容[请看2#楼]

回复【5楼】Admin: --------------------------------- 找到原因了,这是个bug, 参考手册上16倍是111x,  但是x=0时启动成功了,x=1时就不行......
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2013-11-2
在线时间
13 小时
 楼主| 发表于 2014-8-15 10:10:53 | 显示全部楼层
回复【5楼】Admin:
---------------------------------
找到原因了,这是个bug, 参考手册上16倍是111x,  但是x=0时启动成功了,x=1时就不行......
回复

使用道具 举报

7

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2013-11-2
在线时间
13 小时
 楼主| 发表于 2014-8-15 10:18:13 | 显示全部楼层
对了还有这个 #define BV(A) (1<<A)>
回复

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2014-8-15 10:35:44 | 显示全部楼层
时钟为HSI,不支持64M。
于20150522停用该账号:http://www.microstar.club
回复

使用道具 举报

7

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2013-11-2
在线时间
13 小时
 楼主| 发表于 2014-8-15 10:37:17 | 显示全部楼层
回复【3楼】styleno1:
---------------------------------
8/2再16倍频不是64么
回复

使用道具 举报

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2014-8-15 11:32:20 | 显示全部楼层
是的。
思路是:
1)打开HSI,等待稳定
2)设置PLL时钟源为HSI/2,使能PLL
3)设置PLL分频系数为16
4)设置Sysclk时钟源为PLL
看你的步骤是对的,不知道具体的寄存器有没有设置对。。
我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-3 11:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表