打印
[STM32F4]

stm32 外部晶振不起作用

[复制链接]
4820|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xmu_stm|  楼主 | 2014-10-22 22:49 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
才解决了一个问题,又来麻烦各位技术达人了。
还是自己的做的板子,使用的是25M的外部晶振,程序运行时PWM的输出频率不对,是准确值的五分之一左右。当时想可能是外部晶振有问题,然后系统自动使用内部晶振,但是这个值也不对啊,而且我更改了system_stm32f4xx.c里面的 PLL_M  值,
PLL_M的值不管怎么更改都对输出频率没有影响,就好像是我的外部晶振和内部晶振都没有起作用。25M的晶振我也换了好几个,都没有起振,因为程序都是卡在while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));里面,现在觉得好无奈啊,麻烦大家帮忙分析一下原因,谢谢大家了
沙发
saviourxx| | 2014-10-23 12:04 | 只看该作者
楼主要自己手动改寄存器,改成HSE模式,
系统开始是跑内部晶振的,如果用户配置HSE不成功,系统会自动跑HSI。最后才PLL上去。
我的做法是自己做一个函数,仿照他原来的函数把所有寄存器都写一遍,替换他原来的调用。
可以加个灯上去,如果灯亮晶振不起来,就是跑HSI模式;如果灯亮晶振起来,就是HSE模式。

使用特权

评论回复
板凳
想做大牛的小马| | 2014-10-23 13:34 | 只看该作者
是的,十有**是配置问题,在确定外部晶振起振而且准确的情况下,可以参照ST cube里给的代码示例啊,
照着改一下,应该很容易哈~

使用特权

评论回复
地板
lei129210| | 2014-10-23 18:34 | 只看该作者
二楼正解。

使用特权

评论回复
5
mmuuss586| | 2014-10-23 18:41 | 只看该作者
即使你切换到了内部晶振,误差也不应该是5分之一啊;
有获取系统时钟的函数,读出来看看是多少M;

输出频率不对,可能你PWM配置不正确;

使用特权

评论回复
6
xmu_stm|  楼主 | 2014-10-25 10:00 | 只看该作者
mmuuss586 发表于 2014-10-23 18:41
即使你切换到了内部晶振,误差也不应该是5分之一啊;
有获取系统时钟的函数,读出来看看是多少M;

PWM的配置是正确的,我在开发板上试过。出问题的是自己做的板子,后来发现是芯片一个脚线路不正确,多接了一个电阻,现在已经解决了,谢谢各位帮忙哈

使用特权

评论回复
7
mmuuss586| | 2014-10-25 10:01 | 只看该作者
xmu_stm 发表于 2014-10-25 10:00
PWM的配置是正确的,我在开发板上试过。出问题的是自己做的板子,后来发现是芯片一个脚线路不正确,多接 ...

恩,找到问题就好;

使用特权

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

本版积分规则

11

主题

32

帖子

0

粉丝