请教关于c#如何实现向串口循环发送及接收命令。妹妹我初学c#不久。

sara_cao 2011-05-07 03:50:57
在用c#写一个串口通讯程序,大致是这样的,用户点击“自动发送”按钮,程序先向串口发送一条数据,然后读取串口接收到的数据,并判断该数据是否达到要求,能达到要求的话,就继续再向串口发送第二条数据,然后继续读取串口接收到的数据,并处理判断该数据是否OK,OK的话,结束。

注:向串口发送和读取操作分别放在两个不同的线程中,其中,读取是通过serialPort_DataReceived事件来实现,该事件是通过serialPort.ReceivedBytesThreshold=1来触发。

现在问题是:我在发送完第一条数据,接收并处理完数据后,如何回到主程序来继续让它接着发送第二条命令?因为我的接收及处理数据是在serialPort_DataReceived事件中的。
大家能看明白吗?不明白的话,可以再问我哦。
...全文
1122 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sara_cao 2011-05-08
  • 打赏
  • 举报
回复
没有人能给我一下提示吗?
sara_cao 2011-05-07
  • 打赏
  • 举报
回复
接上面
现在的问题是,我在用一个线程thdSendToSerial处理了10命令的发送后,接收事件serialPort_DataReceived也收到了回复的11命令,然后处理11数据,正确的话,再接着要发12命令,可是我11命令的处理是在DataReceived事件中的,我如何让程序在处理完数据后,再回到主程序来继续12命令的发送。
sara_cao 2011-05-07
  • 打赏
  • 举报
回复
我的是不需要发送请求信息的,也不是连续发,我是只有在上一次接收到的数据,判断为正确的时候,才会要第二次发送数据。
具体来说:我第一次发的数据中的命令字为10,回复的数据命令字必须为11,然后我判断11数据是否正确,正确的话,再发送一次12数据,然后回复的必须为13,我再接着判断13数据是否正确,正确的话,结束。

bdmh 2011-05-07
  • 打赏
  • 举报
回复
这取决 与你的通信协议,有的是应答方式的,接收后,需要发送请求信息,然后才会再次发送数据,有的是连续发,这样你就接就行了,接到后,放到列表,后台一个线程对其进行处理

111,087

社区成员

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

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

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