打印

求解STM32F405RG的主频问题

[复制链接]
5161|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sz_longyue|  楼主 | 2013-6-24 00:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,我看官网介绍405的CPU主频可以到168M,我外挂8M晶振,用官网上的EXCEL表(STM32F4xx_Clock_Configuration_V1.1.0)修改了system_stm32f4xx.c文件,但是运行程序时感觉速度好像不够快,进入调试模式,调用函数RCC_GetClocksFreq(&RCC_Clocks);发现读回的频率只有16M(SYSCLK, HCLK, PCLK都是16M),之后我到ST官网重新下了lib,直接运行里面的DEMO CODE,读回的结果也是16M, 哪位前辈能告诉我,是不是我漏了啥步骤。。。。
开发环境: KEIL 4.54, ST-LINK V2和JLINK V8都试过,结果相同
沙发
mmuuss586| | 2013-6-24 08:16 | 只看该作者
肯定程序问题,和MDK,JLINK没关系。
设置锁相环。

使用特权

评论回复
板凳
sz_longyue|  楼主 | 2013-6-24 08:57 | 只看该作者
mmuuss586 发表于 2013-6-24 08:16
肯定程序问题,和MDK,JLINK没关系。
设置锁相环。

谢谢您的回复,MDK和LINK我只是介绍我使用的开发环境,以便各位前辈帮忙分析问题时有个参考环境。
我试过ST的库直接跑,也是同样的现象,也替换过sys文件,有可能是程序问题,但库文件,而且也用ST的工具改过,我想不出还有哪里会有遗漏,可否指教得再详细点呢

使用特权

评论回复
地板
jiaxun| | 2013-6-24 09:21 | 只看该作者
修改 system_stm32f4xx.c 中的几个定义
具体请参考 STM32F4xx_Clock_Configuration_V1.0.1 官网可下

使用特权

评论回复
5
sz_longyue|  楼主 | 2013-6-24 10:11 | 只看该作者
jiaxun 发表于 2013-6-24 09:21
修改 system_stm32f4xx.c 中的几个定义
具体请参考 STM32F4xx_Clock_Configuration_V1.0.1 官网可下 ...

谢谢您的回复,clock_configuration我已经下载,并生成了新的system_stm32f4xx.c文件,也直接覆盖了原文件。为了确定覆盖的位置正确,我还特意先删了原文件,编译报错后,再贴上新的文件的。

使用特权

评论回复
6
jiaxun| | 2013-6-24 11:03 | 只看该作者
不用生成,我是拿来了解分频、倍频结构的,简单的修改就成了的。
system_stm32f4xx.c 的参数是
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
#define PLL_M      8
#define PLL_N      336

/* SYSCLK = PLL_VCO / PLL_P */
#define PLL_P      2

/* USB OTG FS, SDIO and RNG Clock =  PLL_VCO / PLLQ */
#define PLL_Q      7
我也用的是 8M 晶振,168M运行。

使用特权

评论回复
评论
sz_longyue 2013-6-25 09:52 回复TA
谢谢 
7
香水城| | 2013-6-24 11:25 | 只看该作者
RCC_GetClocksFreq()返回还是定义在<stm32f4xx.h>中的HSE_VALUE的值。更改板上HSE晶振时,该值也要相应修改。

另外,测量板子的实际频率,不是通过调用以上函数,而是应该通过PA.8的MCO功能输出关心的频率,用示波器看是否符合预期。

使用特权

评论回复
8
sz_longyue|  楼主 | 2013-6-24 13:02 | 只看该作者
香水城 发表于 2013-6-24 11:25
RCC_GetClocksFreq()返回还是定义在中的HSE_VALUE的值。更改板上HSE晶振时,该值也要相应修改。

另外,测 ...

谢谢版主的解答,我晚上试试PA8的输出效果

使用特权

评论回复
9
sz_longyue|  楼主 | 2013-6-24 13:03 | 只看该作者
jiaxun 发表于 2013-6-24 11:03
不用生成,我是拿来了解分频、倍频结构的,简单的修改就成了的。
system_stm32f4xx.c 的参数是
/* PLL_VCO  ...

我对比过生产代码和原代码的差异,也就是这几个分频值不一样,所以直接覆盖起的作用应该和修改这四个值起的作用一样

使用特权

评论回复
10
香水城| | 2013-6-24 14:37 | 只看该作者
sz_longyue 发表于 2013-6-24 13:02
谢谢版主的解答,我晚上试试PA8的输出效果

重点是“更改板上HSE晶振时,该值也要相应修改。”

使用特权

评论回复
11
sz_longyue|  楼主 | 2013-6-24 21:56 | 只看该作者
香水城 发表于 2013-6-24 14:37
重点是“更改板上HSE晶振时,该值也要相应修改。”

实测结果,是我外部的8M没有跑起来,换用内部16M后,用ST工具修改了system文件,覆盖,一切正常,HSE的值是不需要修改的

使用特权

评论回复
12
sz_longyue|  楼主 | 2013-6-24 21:58 | 只看该作者
顺便。。。。谁能告诉我怎么结帖啊。。。。

使用特权

评论回复
13
平淡无奇| | 2016-12-22 11:26 | 只看该作者
这个405 怎么写can的内容啊。。。。 刚刚学  不知道。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

261

帖子

1

粉丝