232-485 --------------- 485-232
做了一个串口通讯程序,根据串口接收的报文发送数据报文,本机用虚拟串口测试正确,本机用串口线环路接收发送也正确。 但是通过串口连远端的通讯,数据接收丢失严重。 但是用串口工具发送数据,远端又接收正常! 问题出在哪? 

解决方案 »

  1.   

    很可能和代码逻辑或者你的远端设备有关,换个远端设备,换几个中间连接的数据线或者232转485设备。如果用了USB转串口,也有可能是这个设备的问题。
      

  2.   

    还有更新奇的问题出现了, a 端口 parity = odd , b 端口 parity = none 可以正确收到报文,但是 b 设置成 parity = odd , b 读 a 发送过来的报文出错! 反馈给 a 的, a 读报文出错!!
      

  3.   

    1,不能乱设,一般9600,N,8,1,或者 9600,O,7,1,因为设置校验位那就少了一位有效的数据,你传输数据就要注意了。
    2,经过232-485--485-232的转换,延时加长,速率就要相应的降低,9600-1200-600等,根传输的距离基本成反比,否则传输出错。
    3,用串口测试软件正查,那就说明你的代码还有点问题,仔细review吧。