哪位大虾给我解释下串口的这个问题

gfgf   2010-5-17 13:30 楼主
接收发送这些都可以了,但是我遇到了新的问题:
就是在调用我的发送函数前添加个延时几百毫秒则发送正常,可是不加延时函数的话在某些情况会出现乱码。例如我的程序一直在跑,我用串口调试助手的接收的时候正确,可是当我只是把助手断开连接再连接上的时候可能就会出现乱码,助手的提示为RichEdit line insertion error,虽然出现乱码,可是有时候当我多次断开助手再连接的时候有时候又能正确的发送到助手(没乱码),对了,还有时候在我断开助手再连接的时候有时候助手接收不到数据。注:波特率的误差就 0.1%。
请哪位大虾给我解释解释,谢谢!

回复评论 (6)

可能是两个问题,一个是发送方太快,接收方出现异常;另一个是接收方其实是已经接收到数据了,但是它没来得及响应而已,不一定是程序的问题,这个在串口助手中常常可以遇到,把发送数据的时间间隔改长一点就没问题的
点赞  2010-5-18 14:51
发送速度要与波特率匹配,接收基本应该没有什么问题
点赞  2010-5-18 15:05
串口助手的波特率应与发送一致,在关闭助手过程中应该已经收到了,但是助手没有缓存区,所以就会出现短暂的乱码
点赞  2010-5-18 16:42
这种“热”插拔是很容易伤害串口的,它不是USB。
点赞  2010-5-18 19:36
应该是串口接收缓冲区中有内容没有清除掉。
试一试这个串口调试器,有VB的代码,你可以单步调试看看:
[url=http://download.eeworld.net/source/1262066][/url]
点赞  2010-5-18 22:32
引用: 引用 2 楼 fpcc 的回复:
发送速度要与波特率匹配,接收基本应该没有什么问题

接贴求助一下,小弟弟我最近也在搞这个串口通讯的东西,由于刚接触还处于学习阶段,很白痴的问一下速度要与波特率匹配的规则是什么,希望高手们赐教。
点赞  2010-5-18 22:48
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复