你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【原创】STM32F105系统时钟

[复制链接]
freeelectron 发布时间:2015-12-14 17:18
1.STM32F105库函数默认使用的是25MHZ晶振:
   通过下面配置,最终得到系统时钟72MHZ:
    /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */
    /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 5 = 8 MHz */                                                  
   
    RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 |
                           RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV5);
  
2. 如果使用的是8MHZ晶振,那怎么配置呢?
    通过下面配置既可,最终得到系统时钟72MHZ:
    /* PLL2 configuration: PLL2CLK = (HSE / 8) * 8= 8 MHz */
    /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 1 = 8 MHz */
                                                               
    RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV8| RCC_CFGR2_PLL2MUL8 |
                             RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV1);

3.那么,问题来了,为什么要使用25MHZ晶振呢?
看图一
然而,105并没有带有以太网。107相对105就多个以太网,以太网正好用到了25MHZ,而105,107都带有USB OTG功能,所以,就把这两个划分为一类,库函数,也就通用了!

4.当然,如果不修改,也可以使用8MHZ晶振,那么系统时钟就是:((64)/(25))*9=23.04MHZ
   结果可想而知。




图一

图一
收藏 评论14 发布时间:2015-12-14 17:18

举报

14个回答
埃斯提爱慕 回答时间:2015-12-14 19:34:07
提示: 作者被禁止或删除 内容自动屏蔽
chifen 回答时间:2015-12-14 21:49:25
22.png

党国特派员 回答时间:2015-12-15 09:12:37
路过。看看。。。。。 blank.png blank1.png blank2.png blank3.png blank4.png
anger0925 回答时间:2015-12-15 10:33:58
顶               
moyanming2013 回答时间:2015-12-15 11:13:01
然后呢           
钊钊 回答时间:2015-12-16 11:54:39
没怎么看懂
freeelectron 回答时间:2015-12-17 16:51:03

105芯片,固件库默认使用的是25MHZ,如果,使用8MHZ晶振的话,可以按照第二个修改固件,就可以使用!
魔鬼龙 回答时间:2015-12-17 23:12:12
正在使用stm32f105rc单片机开发一款智能嵌入式设备,用的是stm32CubeMX软件图形化配置管脚生成代码工程,也可以图形化配置时钟、串口等外围接口,挺方便的。楼主不妨试下看。欢迎加入stm32cubeMX学习交流群 518374971
freeelectron 回答时间:2015-12-18 09:02:21
魔鬼龙 发表于 2015-12-17 23:12
正在使用stm32f105rc单片机开发一款智能嵌入式设备,用的是stm32CubeMX软件图形化配置管脚生成代码工程,也 ...

这个还真没有用过!
Dylan疾风闪电 回答时间:2015-12-18 09:44:09
一路走来,最早的时候(10年对我来说是早的),时钟树基本靠自己计算/配置;后来出了一份excel表,可以一目了然,配置还是要自己来;最后cube出来了,终于不用去管时钟树了!
level up!
freeelectron 回答时间:2015-12-18 09:52:25
Dylan疾风闪电 发表于 2015-12-18 09:44
一路走来,最早的时候(10年对我来说是早的),时钟树基本靠自己计算/配置;后来出了一份excel表,可以一目 ...

没用过CUBE,今天也尝试着用用!
Dylan疾风闪电 回答时间:2015-12-18 10:09:02
freeelectron 发表于 2015-12-18 09:52
没用过CUBE,今天也尝试着用用!

刚开始用会很不习惯,与之前的概念比较容易混淆。
不过对刚接触ST的朋友比较适用。

基于HAL库,它的数据结构体比较庞大,而且大多要挂全局变量!生成的代码一下子大了很多!
还是喜欢以前的小巧。
个人感觉的优点是:做测试比较方便,代码自动化程度高,节省了大量写驱动的时间。
个人感觉的缺点是:做应用的话,最好还是把调好的代码再转成寄存器操作,减少全局变量的开销。那样选型的空间比较大!
(个人愚见,仅供参考!)
freeelectron 回答时间:2015-12-18 10:21:20
Dylan疾风闪电 发表于 2015-12-18 10:09
刚开始用会很不习惯,与之前的概念比较容易混淆。
不过对刚接触ST的朋友比较适用。

看你的积分,就知道你是老用户了,意见还是比较中肯的!谢谢!
Dylan疾风闪电 回答时间:2015-12-18 10:40:29
本帖最后由 Dylan疾风闪电 于 2015-12-18 10:42 编辑
freeelectron 发表于 2015-12-18 10:21
看你的积分,就知道你是老用户了,意见还是比较中肯的!谢谢!

论坛,我算半个新人(蝴蝶粉),互相学习。

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版