1个很奇怪的问题

[复制链接]
3418|10
 楼主| yaobb1981 发表于 2009-8-17 09:19 | 显示全部楼层 |阅读模式
我用的是2.0的库,配置USART的明明是9600波特率,外部
晶振为4MHz,可通讯时要用4800波特率才行,在仿真内看
波特率也为4800,这是为什么?
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的么?
 楼主| yaobb1981 发表于 2009-8-17 10:23 | 显示全部楼层
看我的图片中,已经将库中的外部晶振频率设置为4MHz了,就是这样我才会感觉奇怪的。
 楼主| yaobb1981 发表于 2009-8-17 10:28 | 显示全部楼层
我要是采用外部晶振为8MHz时,则一切正常。但当外部晶振为8MHz,而HSE_Value设置为4MHz时,对其不会有影响。按照理论上来说,USART的波特率计算是按照HSE_Value的值来计算的,但我的实验现象却是在外部8MHz时,HSE_Value设置为4MHz,和8MHz效果是一样的。不知道为什么?是不是还有哪个地方需要设置外部晶振的频率?
香水城 发表于 2009-8-17 10:33 | 显示全部楼层
修改了HSE_Value之后,要重新编译库文件,否则等于没改。
 楼主| yaobb1981 发表于 2009-8-17 10:57 | 显示全部楼层
我每次编译都是点击图上打圈的那个,难道这个不对库文件进行编译?
未命名.JPG
hkap 发表于 2009-8-17 21:08 | 显示全部楼层
是不是外部晶振没焊好啊,系统自动切换至内部时钟了
aozima 发表于 2009-8-17 22:34 | 显示全部楼层
是不是外部晶振没焊好啊,系统自动切换至内部时钟了
hkap 发表于 2009-8-17 21:08

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

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

建议删除,不然会出让人郁闷的问题!!!!
香水城 发表于 2009-8-17 22:40 | 显示全部楼层
除了10楼的建议外,还可以把要用到的库函数的源文件拷贝到你的项目中,重新编译。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

43

帖子

0

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