串口参数设置为:9600,e,7,2从pc上位机发送一命令给下位机,正常应返回65个字符(字母+数字),我在程序中延时了100毫秒才接收,现在的情况是有时能完全接收,有时又不能完全接收,会丢掉几个字符,按理每秒钟应该可以接收1200字符,100毫秒应该可以接收120个字符,延时100毫秒接收65个字符应该完全不成问题的啊,这是为什么?后来我把延时改为110毫秒就没问题了。

解决方案 »

  1.   

    他已经回答你的问题了呀,不就是叫你把“我在程序中延时了100毫秒才接收,”改一下,比如500或1000。还有,虽然这样能解决一些问题,但是你最好考虑换一种思路来做这种事情,接收就在串口控件的事件里处理,然后发送部分做成函数,然后等待接收返回数据后返回。
    你可以参考一下这个帖子我答的内容:
    http://topic.csdn.net/u/20120904/11/19b00fbe-7e27-4297-864a-7132f2b133d7.html
    还有你也可以看看以下帖子我的答复内容:
    http://topic.csdn.net/u/20110404/10/32a8336b-be14-4135-ba3c-9e604a8a2b4e.html