1个很奇怪的问题

muxuchen   2009-8-17 09:19 楼主
我用的是2.0的库,配置USART的明明是9600波特率,外部
晶振为4MHz,可通讯时要用4800波特率才行,在仿真内看
波特率也为4800,这是为什么?

回复评论 (10)

                                 晶振的频率需要在stm32f10x_conf.h文件中进行设置
点赞  2009-8-17 09:33
                                 库里面的参数是按照8MHz主频设置的,改变了外部晶振,软件参数也要改。
点赞  2009-8-17 09:34
                                 <stm32f10x_conf.h>中的HSE_Value你设置为4MHz的么?
点赞  2009-8-17 09:35
                                 看我的图片中,已经将库中的外部晶振频率设置为4MHz了,就是这样我才会感觉奇怪的。
点赞  2009-8-17 10:23
                                 我要是采用外部晶振为8MHz时,则一切正常。但当外部晶振为8MHz,而HSE_Value设置为4MHz时,对其不会有影响。按照理论上来说,USART的波特率计算是按照HSE_Value的值来计算的,但我的实验现象却是在外部8MHz时,HSE_Value设置为4MHz,和8MHz效果是一样的。不知道为什么?是不是还有哪个地方需要设置外部晶振的频率?
点赞  2009-8-17 10:28
                                 修改了HSE_Value之后,要重新编译库文件,否则等于没改。
点赞  2009-8-17 10:33
                                 我每次编译都是点击图上打圈的那个,难道这个不对库文件进行编译?
点赞  2009-8-17 10:57
                                 是不是外部晶振没焊好啊,系统自动切换至内部时钟了
点赞  2009-8-17 21:08
是不是外部晶振没焊好啊,系统自动切换至内部时钟了
实际,并不需要点你圈的那个,因为头文件变了,所有引用这个头文件的都会重新编译
可能的原因,
编译器调用了自带的库

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

建议删除,不然会出让人郁闷的问题!!!!
点赞  2009-8-17 22:34
                                 除了10楼的建议外,还可以把要用到的库函数的源文件拷贝到你的项目中,重新编译。
点赞  2009-8-17 22:40
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复