OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 14350|回复: 13

stm32内部时钟配置求助,倍频至64MHZ

[复制链接]

  离线 

83

主题

349

帖子

1

精华

高级会员

Rank: 4

积分
908
金钱
908
注册时间
2012-8-10
在线时间
13 小时
发表于 2014-6-6 19:31:45 | 显示全部楼层 |阅读模式
5金钱
求一个使用库函数配置时钟的程序,库函数V3.5版本,板子没有外接晶振,所以只能配置内部时钟8M,然后PLL倍频到64MHZ
在线求教啊。。。

最佳答案

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

回复【5楼】limin: ---------------------------------    RCC_DeInit(); /*将外设RCC寄存器重设为缺省值 */    RCC_HSICmd(ENABLE);    while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)== RESET);//等待HSI就绪    RCC_HCLKConfig(RCC_SYSCLK_Div1);   /*设置AHB时钟(HCLK) RCC_SYSCLK_Div1——AHB时钟 = 系统时*/  ...
回复

使用道具 举报

  离线 

17

主题

341

帖子

0

精华

高级会员

Rank: 4

积分
524
金钱
524
注册时间
2014-4-24
在线时间
14 小时
发表于 2014-6-6 19:31:46 | 显示全部楼层
回复【5楼】limin:
---------------------------------
   RCC_DeInit(); /*将外设RCC寄存器重设为缺省值 */
   RCC_HSICmd(ENABLE);
   while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)== RESET);//等待HSI就绪
   RCC_HCLKConfig(RCC_SYSCLK_Div1);   /*设置AHB时钟(HCLK) RCC_SYSCLK_Div1——AHB时钟 = 系统时*/ 
   RCC_PCLK2Config(RCC_HCLK_Div1);   /* 设置高速AHB时钟(PCLK2)RCC_HCLK_Div1——APB2时钟 = HCLK*/    
   RCC_PCLK1Config(RCC_HCLK_Div2); /*设置低速AHB时钟(PCLK1)RCC_HCLK_Div2——APB1时钟 = HCLK / 2*/     
   FLASH_SetLatency(FLASH_Latency_2);   /*设置FLASH存储器延时时钟周期数FLASH_Latency_2  2延时周期*/  
   FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);  /*选择FLASH预取指缓存的模,预取指缓存使能*/
   RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_16);/*设置PLL时钟源及倍频系数,频率为8/2*16=64Mhz*/   
   RCC_PLLCmd(ENABLE);   /*使能PLL */
   while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) ; /*检查指定的RCC标志位(PLL准备好标志)设置与否*/   
   RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);  /*设置系统时钟(SYSCLK) */ 
   while(RCC_GetSYSCLKSource() != 0x08);     /*0x08:PLL作为系统时钟 */    
 }
回复

使用道具 举报

  离线 

508

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
132710
金钱
132710
注册时间
2010-12-1
在线时间
1240 小时
发表于 2014-6-6 22:52:19 | 显示全部楼层
用寄存器好简单的说...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

  离线 

83

主题

349

帖子

1

精华

高级会员

Rank: 4

积分
908
金钱
908
注册时间
2012-8-10
在线时间
13 小时
 楼主| 发表于 2014-6-7 17:29:45 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,我有这么个问题,我单步调试程序,先执行汇编启动代码,进入了SystemInit函数,貌似是官方提供的函数,我发现时钟被默认的配置成72MHZ,
也就是说只要有外部晶振,它就默认按照HSE时钟来工作。如果我使用内部时钟,那么我要重新写时钟函数,原来的默认配置怎么办?
回复

使用道具 举报

  离线 

508

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
132710
金钱
132710
注册时间
2010-12-1
在线时间
1240 小时
发表于 2014-6-7 23:20:47 | 显示全部楼层
回复【3楼】电子狼:
---------------------------------
去修改:SystemInit函数.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

  离线 

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2014-7-19
在线时间
0 小时
发表于 2014-8-10 12:38:22 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
最近被这个内部时钟搞得不行了,麻烦说清楚点怎么配置内部时钟的好吗?谢谢
回复

使用道具 举报

  离线 

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2014-7-19
在线时间
0 小时
发表于 2014-8-10 14:18:05 | 显示全部楼层
回复【6楼】STM32VBT6:
---------------------------------
在配置这个内部时钟之前,还有那些需要做修改吗?比如启动文件里的一些预定义??
回复

使用道具 举报

  离线 

17

主题

341

帖子

0

精华

高级会员

Rank: 4

积分
524
金钱
524
注册时间
2014-4-24
在线时间
14 小时
发表于 2014-8-10 14:57:27 | 显示全部楼层
回复【7楼】limin:
---------------------------------
自定义时钟时不要用SystemInit函数,把启动代码的SystemInit函数注释掉,你的main函数加这个RCC配置函数。你去查下固件库手册。
回复

使用道具 举报

  离线 

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2014-7-19
在线时间
0 小时
发表于 2014-8-10 23:40:50 | 显示全部楼层
回复【8楼】STM32VBT6:
---------------------------------
Reset_Handler   ROC
                EXPORT  Reset_Handler             [WEAK]
                IMPORT  __main
                IMPORT  SystemInit         ////
                LDR     R0, =SystemInit   ////注释掉这两行么??
                BLX     R0               
                LDR     R0, =__main
                BX      R0
                ENDP
回复

使用道具 举报

  离线 

17

主题

341

帖子

0

精华

高级会员

Rank: 4

积分
524
金钱
524
注册时间
2014-4-24
在线时间
14 小时
发表于 2014-8-11 00:23:33 | 显示全部楼层
回复【9楼】limin:
---------------------------------
3行,还有下面一行
回复

使用道具 举报

  离线 

2

主题

12

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-3-20
在线时间
0 小时
发表于 2015-3-23 18:22:43 | 显示全部楼层
注释掉为什么报硬件错误,呵呵
回复

使用道具 举报

  离线 

30

主题

707

帖子

1

精华

新手入门

积分
15
金钱
15
注册时间
2013-3-14
在线时间
52 小时
发表于 2015-9-14 11:26:40 | 显示全部楼层
回复【11楼】lucjn:
---------------------------------
注释掉没有报错啊。不要用“//”来注释掉,要用“;”注释掉。这个是.s文件,是汇编,是汇编!
原子哥是不是又要出黑科技了呀。^_^...
回复

使用道具 举报

  离线 

10

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2016-7-27
在线时间
35 小时
发表于 2016-9-21 17:33:06 | 显示全部楼层
电子狼 发表于 2014-6-7 17:29
回复【2楼】正点原子:
---------------------------------
原子哥,我有这么个问题,我单步调试程序,先执 ...

两个办法,一是修改SystemInit,二是在main函数最开始加RCC_DeInit(); 然后调用自己写的配置时钟的函数
陪我回忆,把过往走一遍。
回复

使用道具 举报

  离线 

2

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
428
金钱
428
注册时间
2017-11-15
在线时间
43 小时
发表于 2018-3-13 15:51:00 | 显示全部楼层
STM32VBT6 发表于 2014-8-10 12:53
回复【5楼】limin:
---------------------------------
   RCC_DeInit(); /*将外设RCC ...

谢谢,直接可以使用
回复

使用道具 举报

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

本版积分规则




关闭

必看,必学:"原子哥”力荐上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-9-19 07:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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