51uwb.cn

 找回密码
 立即注册
查看: 6347|回复: 4
打印 上一主题 下一主题

stm32外部时钟源8M换成12M后库函数相应修改总结【转】

[复制链接]

73

主题

249

帖子

7065

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7065
跳转到指定楼层
楼主
发表于 2018-11-10 23:36:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 tuzhuke 于 2018-11-10 23:40 编辑

前言
  在做“自制继电器上位机控制软件”项目的时候,下位机用到USB虚拟串口,将以前写好的USB虚拟串口程序移植到下位机,发现程序计算机无法识别到虚拟串口STMicroelectronics Virtual COM Port,后来分析发现是晶振的问题,之前MCU外部晶振是8M,而项目中用的是12M晶振,这个时候MCU程序需要做相应修改。
修改分为三步:
(1)在 stm32f10x.h 中,将 #define  HSE_VALUE  ((uint32_t)8000000)  修改为:#define  HSE_VALUE  ((uint32_t)12000000)
(2)在 system_stm32f10x.c 中,将 RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);  修改为:RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);
(3)在 Target 选项卡中将外接的晶振参数修改为12MHz。
PS:反过来,外部时钟源12M换成8M后,程序修改反过来即可。
原文链接:3w.cnblogs.com/Pual623548198/p/6928748.html
回复

使用道具 举报

5

主题

24

帖子

72

积分

注册会员

Rank: 2

积分
72
5#
发表于 2019-5-6 08:59:16 | 只看该作者
tuzhuke 发表于 2019-5-5 21:50
这个部分你查看stm32 数据手册吧

上面就是答案,这个我知道了!
回复

使用道具 举报

73

主题

249

帖子

7065

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7065
地板
 楼主| 发表于 2019-5-5 21:50:07 | 只看该作者
淮工王大师 发表于 2019-5-4 11:12
16MHZ的呢 RCC_CFGR_PLLMULL9 改成多少?

这个部分你查看stm32 数据手册吧
回复

使用道具 举报

5

主题

24

帖子

72

积分

注册会员

Rank: 2

积分
72
板凳
发表于 2019-5-4 11:16:46 | 只看该作者
        RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
                                           RCC_CFGR_PLLXTPRE_HSE_Div2|RCC_CFGR_PLLMULL));
        RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_HSE_Div2 |RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);
回复

使用道具 举报

5

主题

24

帖子

72

积分

注册会员

Rank: 2

积分
72
沙发
发表于 2019-5-4 11:12:21 | 只看该作者
16MHZ的呢 RCC_CFGR_PLLMULL9 改成多少?
回复

使用道具 举报

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

本版积分规则

bphero Inc.  

GMT+8, 2024-11-23 01:38 , Processed in 0.011688 second(s), 5 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

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