[STM32F1] 问个跟晶振相关的问题

[复制链接]
 楼主| 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 | 显示全部楼层
软件仿真 != 硬件调试 ?
楼主不防考虑一下楼上说的。
 楼主| qx19921014 发表于 2016-9-28 19:14 | 显示全部楼层
稳稳の幸福 发表于 2016-9-28 17:00
是不是倍频PLL没有设置好?

在开发板上可以正常工作,频率能达到72M,但是在自己的硬件上不可以
 楼主| qx19921014 发表于 2016-9-28 19:16 | 显示全部楼层
gszou 发表于 2016-9-28 17:52
软件仿真 != 硬件调试 ?
楼主不防考虑一下楼上说的。

我又用野火的开发板试了一下,频率可以达到72M,同样的程序,在我自己的板子上就不行,如果是因为晶振没起振导致的也说不过去啊,我用示波器检测了,晶振起振了啊
野火_firege 发表于 2016-9-28 19:27 | 显示全部楼层
1-你软件仿真,那么跟外部的晶振没有关系,是软件默认配置一个晶振,就是在魔术棒选项卡里面的target里面设置的那个晶振。
2-你用示波器测的是外部晶振8M,那硬件是多少M就是多少M啊,除非你的晶振坏掉了啊

3-你硬件调试的时候频率是72M,这个72M你从哪里看到的?
野火_firege 发表于 2016-9-28 19:28 | 显示全部楼层
稳稳の幸福 发表于 2016-9-28 17:00
是不是倍频PLL没有设置好?

固件库编程的话,PLL是不需要我们自己配置的,在汇编的启动文件的时候已经配置好系统时钟了。
野火_firege 发表于 2016-9-28 19:28 | 显示全部楼层
qx19921014 发表于 2016-9-28 19:16
我又用野火的开发板试了一下,频率可以达到72M,同样的程序,在我自己的板子上就不行,如果是因为晶振没 ...

加个起振电容啊 亲                                       
稳稳の幸福 发表于 2016-9-28 19:51 | 显示全部楼层
没有电路不知道是怎么做的。不需要使用对应的库函数吗
ecoren 发表于 2016-9-28 19:54 | 显示全部楼层
你的每块板子都这样吗,换个板子试试,换个芯片试试,
yizi0000 发表于 2016-9-28 22:18 | 显示全部楼层
注意“后来我又写了一个程序,自己新建的工程”,新建工程的时候一些选项设置的是否跟原来不一样了?最好对比一下。
 楼主| qx19921014 发表于 2016-9-29 08:52 | 显示全部楼层
野火_firege 发表于 2016-9-28 19:27
1-你软件仿真,那么跟外部的晶振没有关系,是软件默认配置一个晶振,就是在魔术棒选项卡里面的target里面设 ...

我是通过         RCC_ClocksTypeDef  RCC_Clocks;  
   RCC_GetClocksFreq(&RCC_Clocks);这两个指令然后在硬件仿真里面查看RCC_Clocks里面的值
 楼主| qx19921014 发表于 2016-9-29 08:53 | 显示全部楼层
yizi0000 发表于 2016-9-28 22:18
注意“后来我又写了一个程序,自己新建的工程”,新建工程的时候一些选项设置的是否跟原来不一样了?最好对 ...

我是按照野火的工程设置的,一对一比对的
 楼主| qx19921014 发表于 2016-9-29 08:54 | 显示全部楼层
野火_firege 发表于 2016-9-28 19:28
加个起振电容啊 亲

我奇怪的是为什么同事的程序频率能达到72M
 楼主| qx19921014 发表于 2016-9-29 08:54 | 显示全部楼层
野火_firege 发表于 2016-9-28 19:28
加个起振电容啊 亲

同事说他的程序加了电容硬件就不起振了
xmar 发表于 2016-9-29 09:16 | 显示全部楼层
楼主你费解,你的问题也费解呀。到底啥意思。

1。 “起振了,频率是8MHZ,通过硬件调试检测到STM32工作的频率是72MHZ,都正常。” 还正常?
2.  “软件仿真STM32工作的频率是72MHZ,但是硬件调试的时候频率是8MHZ,”———— 不知所云。到底是8M或者72M。
 楼主| qx19921014 发表于 2016-9-29 09:18 | 显示全部楼层
xmar 发表于 2016-9-29 09:16
楼主你费解,你的问题也费解呀。到底啥意思。

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

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

评论

懂了。  发表于 2016-9-29 09:35
 楼主| qx19921014 发表于 2016-9-29 09:21 | 显示全部楼层
xmar 发表于 2016-9-29 09:16
楼主你费解,你的问题也费解呀。到底啥意思。

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

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

评论

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

为什么我的程序在这个硬件上无法运行,而同事的程序可以,我要怎么修改,难道是硬件的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

354

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部