打印
[STM32F1]

问个跟晶振相关的问题

[复制链接]
1712|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qx19921014|  楼主 | 2016-9-27 21:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   这边遇到一个很奇怪的问题,板子之前是同事在做,他说之前加电容的时候晶振不起振,所以把电容去了,我使用他之前的程序烧进去,通过示波器检测晶振起振了,频率是8MHZ,通过硬件调试检测到STM32工作的频率是72MHZ,都正常。后来我又写了一个程序,自己新建的工程,用自己工程的时候软件仿真STM32工作的频率是72MHZ,但是硬件调试的时候频率是8MHZ,通过示波器检测了,晶振确实起振了,而且频率是8MHZ。目前很费解,不知道问题出在哪里,如果是我晶振频率配置有问题的话软件仿真也不会是72MHZ了。
沙发
qx19921014|  楼主 | 2016-9-28 15:59 | 只看该作者
没人回啊

使用特权

评论回复
板凳
稳稳の幸福| | 2016-9-28 17:00 | 只看该作者
是不是倍频PLL没有设置好?

使用特权

评论回复
地板
gszou| | 2016-9-28 17:52 | 只看该作者
软件仿真 != 硬件调试 ?
楼主不防考虑一下楼上说的。

使用特权

评论回复
5
qx19921014|  楼主 | 2016-9-28 19:14 | 只看该作者
稳稳の幸福 发表于 2016-9-28 17:00
是不是倍频PLL没有设置好?

在开发板上可以正常工作,频率能达到72M,但是在自己的硬件上不可以

使用特权

评论回复
6
qx19921014|  楼主 | 2016-9-28 19:16 | 只看该作者
gszou 发表于 2016-9-28 17:52
软件仿真 != 硬件调试 ?
楼主不防考虑一下楼上说的。

我又用野火的开发板试了一下,频率可以达到72M,同样的程序,在我自己的板子上就不行,如果是因为晶振没起振导致的也说不过去啊,我用示波器检测了,晶振起振了啊

使用特权

评论回复
7
野火_firege| | 2016-9-28 19:27 | 只看该作者
1-你软件仿真,那么跟外部的晶振没有关系,是软件默认配置一个晶振,就是在魔术棒选项卡里面的target里面设置的那个晶振。
2-你用示波器测的是外部晶振8M,那硬件是多少M就是多少M啊,除非你的晶振坏掉了啊

3-你硬件调试的时候频率是72M,这个72M你从哪里看到的?

使用特权

评论回复
8
野火_firege| | 2016-9-28 19:28 | 只看该作者
稳稳の幸福 发表于 2016-9-28 17:00
是不是倍频PLL没有设置好?

固件库编程的话,PLL是不需要我们自己配置的,在汇编的启动文件的时候已经配置好系统时钟了。

使用特权

评论回复
9
野火_firege| | 2016-9-28 19:28 | 只看该作者
qx19921014 发表于 2016-9-28 19:16
我又用野火的开发板试了一下,频率可以达到72M,同样的程序,在我自己的板子上就不行,如果是因为晶振没 ...

加个起振电容啊 亲                                       

使用特权

评论回复
10
稳稳の幸福| | 2016-9-28 19:51 | 只看该作者
没有电路不知道是怎么做的。不需要使用对应的库函数吗

使用特权

评论回复
11
ecoren| | 2016-9-28 19:54 | 只看该作者
你的每块板子都这样吗,换个板子试试,换个芯片试试,

使用特权

评论回复
12
yizi0000| | 2016-9-28 22:18 | 只看该作者
注意“后来我又写了一个程序,自己新建的工程”,新建工程的时候一些选项设置的是否跟原来不一样了?最好对比一下。

使用特权

评论回复
13
qx19921014|  楼主 | 2016-9-29 08:52 | 只看该作者
野火_firege 发表于 2016-9-28 19:27
1-你软件仿真,那么跟外部的晶振没有关系,是软件默认配置一个晶振,就是在魔术棒选项卡里面的target里面设 ...

我是通过         RCC_ClocksTypeDef  RCC_Clocks;  
   RCC_GetClocksFreq(&RCC_Clocks);这两个指令然后在硬件仿真里面查看RCC_Clocks里面的值

使用特权

评论回复
14
qx19921014|  楼主 | 2016-9-29 08:53 | 只看该作者
yizi0000 发表于 2016-9-28 22:18
注意“后来我又写了一个程序,自己新建的工程”,新建工程的时候一些选项设置的是否跟原来不一样了?最好对 ...

我是按照野火的工程设置的,一对一比对的

使用特权

评论回复
15
qx19921014|  楼主 | 2016-9-29 08:54 | 只看该作者
野火_firege 发表于 2016-9-28 19:28
加个起振电容啊 亲

我奇怪的是为什么同事的程序频率能达到72M

使用特权

评论回复
16
qx19921014|  楼主 | 2016-9-29 08:54 | 只看该作者
野火_firege 发表于 2016-9-28 19:28
加个起振电容啊 亲

同事说他的程序加了电容硬件就不起振了

使用特权

评论回复
17
xmar| | 2016-9-29 09:16 | 只看该作者
楼主你费解,你的问题也费解呀。到底啥意思。

1。 “起振了,频率是8MHZ,通过硬件调试检测到STM32工作的频率是72MHZ,都正常。” 还正常?
2.  “软件仿真STM32工作的频率是72MHZ,但是硬件调试的时候频率是8MHZ,”———— 不知所云。到底是8M或者72M。

使用特权

评论回复
18
qx19921014|  楼主 | 2016-9-29 09:18 | 只看该作者
xmar 发表于 2016-9-29 09:16
楼主你费解,你的问题也费解呀。到底啥意思。

1。 “起振了,频率是8MHZ,通过硬件调试检测到STM32工作的 ...

我表达有点问题,首先拿硬件来说,晶振两端没有加电容,但是通过示波器检测起振了,频率是8M,问过同事他说加了电容不起振,就没加

使用特权

评论回复
评论
xmar 2016-9-29 09:35 回复TA
懂了。 
19
qx19921014|  楼主 | 2016-9-29 09:21 | 只看该作者
xmar 发表于 2016-9-29 09:16
楼主你费解,你的问题也费解呀。到底啥意思。

1。 “起振了,频率是8MHZ,通过硬件调试检测到STM32工作的 ...

第二,软件有两个版本,版本一,程序可以正常运行,这是同事写的,硬件仿真频率也能达到72M,版本二我写的程序,频率不能达到72M,但是换一个硬件就可以达到72M,排除我程序的问题。我说的8M是指通过示波器检测到晶振频率,72M是STM32F103的时钟频率

使用特权

评论回复
评论
xmar 2016-9-29 09:41 回复TA
也懂了。就是仍然不知道你的费解的问题到底是什么? 
20
qx19921014|  楼主 | 2016-9-29 09:44 | 只看该作者
qx19921014 发表于 2016-9-29 09:21
第二,软件有两个版本,版本一,程序可以正常运行,这是同事写的,硬件仿真频率也能达到72M,版本二我写 ...

为什么我的程序在这个硬件上无法运行,而同事的程序可以,我要怎么修改,难道是硬件的问题

使用特权

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

本版积分规则

14

主题

354

帖子

1

粉丝