关于串口编程的小问题

dreamting1 2011-05-04 12:05:13
比如我发送了一条数据,需要等待下位机返回了响应再发送下一条指令

这个该如何实现呢?
我的想法是用ONDATARECEIVED事件对一个BOOL变量置位,如果响应正确就置位,然后不停得去读这个BOOL变量看,如果发现被置位了,就发送指令

但该如何写代码呢?我用无限循环不停读这个指令好像不行啊~~~求高人指点!最好能给个简单的代码
...全文
56 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
足球中国 2011-05-04
  • 打赏
  • 举报
回复
写过之后等待消息读。读过再写。
livdan 2011-05-04
  • 打赏
  • 举报
回复
如果在多长时间以内能返回响应,就做个定时器,固定的时间重发命令
c2716266 2011-05-04
  • 打赏
  • 举报
回复
这个得用线程去捕获吧
dai78 2011-05-04
  • 打赏
  • 举报
回复
发送数据-》接收到数据-》触发发送事件(写个事件)—》接收事件信息发送数据
wuzhenwz 2011-05-04
  • 打赏
  • 举报
回复
如果你是对实时性比较高需要一直等待到下位机返回的话,我建议你开一个线程来查询,用Thread类。如果查询到就对你那个变量置位。如果实时性不高就可以用定时器,Timer类。定时查询,这样你的界面就不会卡死了。上诉类得具体用法可以在网上查到。
livdan 2011-05-04
  • 打赏
  • 举报
回复
如果上位机返回的字节每次都是固定的,就判断是否收到多少个字节,收到固定字节数后才发下一次命令
  • 打赏
  • 举报
回复
不知道你的下位机是如何给你响应的。有两种情况:
1)需要你主动取下位机的响应。
我以前做USB的时候是这种情况,在上位机向下位机发指令之后,上位机仍然去下位机某个地址读数据,如果读数据符合,则表示成功。这种情况下,我在发完指令之后,会等待一段时间(依下位机的响应时间为准,如50ms)。之后再去读下位机数据。
2)下位机主动发数据
我没遇到这种情况。但猜测你可以写一个循环去读。
dreamting1 2011-05-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zanfeng 的回复:]
写过之后等待消息读。读过再写。
[/Quote]
能说具体点吗?我有点不明白,新手~~。。。。有代码这类的么?
dreamting1 2011-05-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zanfeng 的回复:]
写过之后等待消息读。读过再写。
[/Quote]
这个怎么实现喃?我是新手能说详细点吗?
双木宝宝 2011-05-04
  • 打赏
  • 举报
回复
使用Timer控件,每隔200ms就查看一次。

110,539

社区成员

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

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

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