打印

1个很奇怪的问题

[复制链接]
2167|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我用的是2.0的库,配置USART的明明是9600波特率,外部
晶振为4MHz,可通讯时要用4800波特率才行,在仿真内看
波特率也为4800,这是为什么?

4MHz.JPG (278.29 KB )

4MHz.JPG
沙发
Neoo| | 2009-8-17 09:33 | 只看该作者
晶振的频率需要在stm32f10x_conf.h文件中进行设置

使用特权

评论回复
板凳
香水城| | 2009-8-17 09:34 | 只看该作者
库里面的参数是按照8MHz主频设置的,改变了外部晶振,软件参数也要改。

使用特权

评论回复
地板
lut1lut| | 2009-8-17 09:35 | 只看该作者
<stm32f10x_conf.h>中的HSE_Value你设置为4MHz的么?

使用特权

评论回复
5
yaobb1981|  楼主 | 2009-8-17 10:23 | 只看该作者
看我的图片中,已经将库中的外部晶振频率设置为4MHz了,就是这样我才会感觉奇怪的。

使用特权

评论回复
6
yaobb1981|  楼主 | 2009-8-17 10:28 | 只看该作者
我要是采用外部晶振为8MHz时,则一切正常。但当外部晶振为8MHz,而HSE_Value设置为4MHz时,对其不会有影响。按照理论上来说,USART的波特率计算是按照HSE_Value的值来计算的,但我的实验现象却是在外部8MHz时,HSE_Value设置为4MHz,和8MHz效果是一样的。不知道为什么?是不是还有哪个地方需要设置外部晶振的频率?

使用特权

评论回复
7
香水城| | 2009-8-17 10:33 | 只看该作者
修改了HSE_Value之后,要重新编译库文件,否则等于没改。

使用特权

评论回复
8
yaobb1981|  楼主 | 2009-8-17 10:57 | 只看该作者
我每次编译都是点击图上打圈的那个,难道这个不对库文件进行编译?

未命名.JPG (23.95 KB )

未命名.JPG

使用特权

评论回复
9
hkap| | 2009-8-17 21:08 | 只看该作者
是不是外部晶振没焊好啊,系统自动切换至内部时钟了

使用特权

评论回复
10
aozima| | 2009-8-17 22:34 | 只看该作者
是不是外部晶振没焊好啊,系统自动切换至内部时钟了
hkap 发表于 2009-8-17 21:08

实际,并不需要点你圈的那个,因为头文件变了,所有引用这个头文件的都会重新编译
可能的原因,
编译器调用了自带的库

建议把RVMDK自带的库全部删除,或自己编译更新库

建议删除,不然会出让人郁闷的问题!!!!

使用特权

评论回复
11
香水城| | 2009-8-17 22:40 | 只看该作者
除了10楼的建议外,还可以把要用到的库函数的源文件拷贝到你的项目中,重新编译。

使用特权

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

本版积分规则

9

主题

43

帖子

0

粉丝