OpenEdv-开源电子网

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

设置60MHz时钟

[复制链接]

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2017-7-20
在线时间
26 小时
发表于 2017-7-20 23:20:35 | 显示全部楼层 |阅读模式
我主要是通过修改system_stm32f10x.c中的代码来实现的。
首先原来的时钟是72Mhz他是由外部接的8M晶振的HSE时钟不分频{是通过设置时钟控制寄存器(RCC_CR)的第16位来使能HSE时钟,然后判断它的第17位是否为1来判断HSE时钟是否就绪,就绪后设置HCLK = SYSCLK}然后通过设置时钟配置寄存器RCC_CFGR的18到21位(PLLMULLLL时钟倍频系数)为9倍频作为系统的72Mhz时钟

我通过修改时钟配置寄存器RCC_CFGR的第17位为1是HSE由原来的8Mhz 2分频后变为4Mhz然后再设置时钟配置寄存器RCC_CFGR的18到21位(PLLMULLLL时钟倍频系数)为15倍频作为系统的60Mhz时钟
修改的代码如下:
    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL15);
把static void SetSysClockTo70(void)改为static void SetSysClockTo60(void)
把#elif defined SYSCLK_FREQ_70MHz改为#elif defined SYSCLK_FREQ_60MHz
在static void SetSysClock(void)中把#elif defined SYSCLK_FREQ_72MHz      SetSysClockTo72();改为#elif defined SYSCLK_FREQ_60MHz    SetSysClockTo60();

然后在开头的条件编译中把#define SYSCLK_FREQ_72MHz  72000000注释掉然后加入#define SYSCLK_FREQ_60MHz  60000000就完成了。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165359
金钱
165359
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-7-21 00:54:09 | 显示全部楼层
多多总结一下学习经验,积累一些方法,后续自己做项目就得心应手了
回复 支持 反对

使用道具 举报

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2017-7-20
在线时间
26 小时
 楼主| 发表于 2017-7-21 22:25:20 | 显示全部楼层
正点原子 发表于 2017-7-21 00:54
多多总结一下学习经验,积累一些方法,后续自己做项目就得心应手了

恩恩
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-12-23 02:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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