本人曾做过与串口的通信工程,对串口也算有一定的了解,可是这次遇到的问题比较特殊。
现象如下:
1、与测量仪器通信时,我的程序能传数据到仪器,但仪器返回的数据就是收不到;
2、奇怪的地方是:当发送指令后没接收到数据,在本程序中关闭串口后,用串口调试精灵打开该串口时,数据接收到了。
3、用ser232Mon监视串口,发现本程序把数据送到缓冲区后,接收缓冲区无字符;
4、用串口调试精灵发送相同指令,ser232Mon立即接收到返回数据;思考和试解决过程:
1、既然通信仪器接发数据正常,排除线路、协议、本程序发送指令的问题;检查MSComm控件设置无问题;
2、我开始以为是本程序发送指令后,仪器有硬件握手协议,致使仪器想要传送给PC,却认为PC未准备好,从而未传送,可是再想也不对:为什么串口精灵可以收到呢?
3、除了串口调试精灵外,我下载了一些其它的串口调试工具,有的可以收到数据,有的也和我的程序一样收不到数据;不知道哪位仁兄有好的思路或有过类似的经历,希望得到您的指导,谢谢!