串口问题,高手请

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

问题出在哪?
...全文
139 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
walkghost 2010-10-11
  • 打赏
  • 举报
回复
很可能和代码逻辑或者你的远端设备有关,换个远端设备,换几个中间连接的数据线或者232转485设备。如果用了USB转串口,也有可能是这个设备的问题。
trentliu 2010-10-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 snowdust 的回复:]

串口工具发送正确,说明你的代码有问题。仔细检查串口设置(比如波特率、检验等)设置有问题?与远端设备是否一致?还有就是你的代码是不是正确?
[/Quote]

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

问题出在哪?
Snowdust 2010-10-11
  • 打赏
  • 举报
回复
串口工具发送正确,说明你的代码有问题。仔细检查串口设置(比如波特率、检验等)设置有问题?与远端设备是否一致?还有就是你的代码是不是正确?
trentliu 2010-10-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jimh 的回复:]

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

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


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

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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