打印

分享和探讨-------232串口故障的解决和再提问

[复制链接]
2838|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
2d732|  楼主 | 2009-5-18 10:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    在新做好圈圈的USB学习板后用SSCOM3.2调试过程中发现显示的是乱码。其他的光标键控制是正常的。把232电平内侧环路用SSCOM3.2收发显示正常。
    后来仔细看接收到的Hex码,发现字节个数正确的,且每次重复不一致,估计为实际波特率有误差。
   用示波器检查MCU晶振频率未发现问题。又试着改动波特率时间常数,无果。正在为难时偶见STC_ISP_V480在下载过程中有对目标板晶振检测,其值为22.184652MHz,而非22.118400 MHz,顿悟,立刻改之,显示正常!大喜。
   我愿意将此小获与朋友分享。在通讯不起时须确认晶振的实际频率!
   另也有问题想在此探讨:我十分怀疑,0.3%频率误差竟会使232通讯完全失败?有这么严格吗?是不是我那PC机的晶振也有不小的偏差,使测试报告误差变小?
   另若STC_ISP_V480不能检测目标板频率,我这问题不知何时才能发现。还有其他的工具软件能检测吗?

相关帖子

沙发
chunyang| | 2009-5-18 10:31 | 只看该作者

波特率较高时影响明显

    STC的本振频率检测其实也是不准的,其原理是测量引导码的信号周期,受系统平台的影响较大,如果和下位系统的误差方向恰好相反,在高波特率时就会出问题了。
    当怀疑本振频率的精度时,可大幅降低波特率后进行测试,还要注意一点,本振频率的精度除与晶体的制造精度相关外,匹配电容的容量也有明显影响,高频时甚至PCB的布局走线都有讲究,否则均会带来额外的误差。

使用特权

评论回复
板凳
computer00| | 2009-5-18 10:35 | 只看该作者

这个波特率才9600,就算是3%的误差,也应该能够正常通信

估计是楼主第一次连接时,收到的数据错位了,导致后面全部乱码。关掉串口调试助手再打开可能就好了。

使用特权

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

本版积分规则

6

主题

34

帖子

1

粉丝