2 qllyong qllyong 于 2014.08.22 17:58 提问

c#中serialPort 连续发送3次,如果直接发送3次的话 会出现问题接收不完全或其他错误。

c#中serialPort 每发送一次接收一个返回值,要连续发送3次,如果直接发送3次的话 会出现和接收的冲突,如何解决这种冲突 让他能顺利的收发完成,分成3步操作的话是可以的已经测试了。
发送方式
第一次发送A1 下位机返回 B1
第二次发送A2 下位机返回 6个数据
第三次发A3 下位机返回25个数据
如何让这三次发送不冲突,能顺利完成 ,求大神解答。

2个回答

qq_26359813
qq_26359813   2015.04.13 14:00

我也在找这个问题的答案

c1234g
c1234g   2015.07.19 10:18

可以在 writechar 函数那里设置一个标示变量, 如果每次writetoport 后访问了writechar函数,则进行下次writetoport,否则 while(1){}等待。

这样就可以解决问题了。
在serialport类中加入 函数 setflag(), 当访问writechar后 设置flag为0,for,否则flag为1. 每次writetoport之前要把flag设置成1,只有访问了writechar后才设置成0.

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!