奇怪的现象:串口读不到数据

nandi_1 2008-11-26 11:08:47
本人曾做过VB与串口的通信工程,对串口也算有一定的了解,可是这次遇到的问题比较特殊。
现象如下:
1、与测量仪器通信时,我的程序能传数据到仪器,但仪器返回的数据就是收不到;
2、奇怪的地方是:当发送指令后没接收到数据,在本程序中关闭串口后,用串口调试精灵打开该串口时,数据接收到了。
3、用ser232Mon监视串口,发现本程序把数据送到缓冲区后,接收缓冲区无字符;
4、用串口调试精灵发送相同指令,ser232Mon立即接收到返回数据;

思考和试解决过程:
1、既然通信仪器接发数据正常,排除线路、协议、本程序发送指令的问题;检查MSComm控件设置无问题;
2、我开始以为是本程序发送指令后,仪器有硬件握手协议,致使仪器想要传送给PC,却认为PC未准备好,从而未传送,可是再想也不对:为什么串口精灵可以收到呢?
3、除了串口调试精灵外,我下载了一些其它的串口调试工具,有的可以收到数据,有的也和我的程序一样收不到数据;

不知道哪位仁兄有好的思路或有过类似的经历,希望得到您的指导,谢谢!
...全文
258 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
nandi_1 2008-11-29
  • 打赏
  • 举报
回复
问题基本定位:应该是硬件流控制的问题
谢谢各位!
android2008 2008-11-28
  • 打赏
  • 举报
回复
mark
zdingyun 2008-11-28
  • 打赏
  • 举报
回复
LZ:
1)你应该将你的收发代码贴出,不然是猜谜,无法分析。
2)你的通信协议
duyin2004 2008-11-28
  • 打赏
  • 举报
回复
接受格式是否正确,二进制,文本的
主要问题接受的是字节数据,还是文本数据
aohan 2008-11-27
  • 打赏
  • 举报
回复
波特率的设置是否正确?
nandi_1 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bcbbcb 的回复:]
要及时查询缓冲区的
[/Quote]
使RTHshold=1,连接收事件都没有
应该不是时间问题,因为用串口调试助手能立即收到回复

[size=16px]另外,我几乎试验了所有网上的VB做的串口调试软件,都和我的现象一致![/size]
nandi_1 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 of123 的回复:]

你的接收程序是怎样写的?
[/Quote]
我的接收程序就是简单的txtRe=mscomm1.input
你的意思可能是说我应该延时等待,我用轮询的方法和中断的方法都试过了,都没反应
nandi_1 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 aohan 的回复:]
波特率的设置是否正确?
[/Quote]
设置是正确的
jxsqs 2008-11-27
  • 打赏
  • 举报
回复
ding
android2008 2008-11-27
  • 打赏
  • 举报
回复
ding
郭大侠2 2008-11-27
  • 打赏
  • 举报
回复
要及时查询缓冲区的
of123 2008-11-27
  • 打赏
  • 举报
回复

你的接收程序是怎样写的?

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧