当前位置:编程学习 > C#/ASP.NET >>

关于串口编程的小问题

比如我发送了一条数据,需要等待下位机返回了响应再发送下一条指令

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

但该如何写代码呢?我用无限循环不停读这个指令好像不行啊~~~求高人指点!最好能给个简单的代码 --------------------编程问答-------------------- 写过之后等待消息读。读过再写。 --------------------编程问答-------------------- 使用Timer控件,每隔200ms就查看一次。 --------------------编程问答--------------------
引用 1 楼 zanfeng 的回复:
写过之后等待消息读。读过再写。

这个怎么实现喃?我是新手能说详细点吗? --------------------编程问答--------------------
引用 1 楼 zanfeng 的回复:
写过之后等待消息读。读过再写。

能说具体点吗?我有点不明白,新手~~。。。。有代码这类的么? --------------------编程问答-------------------- 不知道你的下位机是如何给你响应的。有两种情况:
1)需要你主动取下位机的响应。
  我以前做USB的时候是这种情况,在上位机向下位机发指令之后,上位机仍然去下位机某个地址读数据,如果读数据符合,则表示成功。这种情况下,我在发完指令之后,会等待一段时间(依下位机的响应时间为准,如50ms)。之后再去读下位机数据。
2)下位机主动发数据
   我没遇到这种情况。但猜测你可以写一个循环去读。 --------------------编程问答-------------------- 如果上位机返回的字节每次都是固定的,就判断是否收到多少个字节,收到固定字节数后才发下一次命令
--------------------编程问答--------------------  如果你是对实时性比较高需要一直等待到下位机返回的话,我建议你开一个线程来查询,用Thread类。如果查询到就对你那个变量置位。如果实时性不高就可以用定时器,Timer类。定时查询,这样你的界面就不会卡死了。上诉类得具体用法可以在网上查到。 --------------------编程问答-------------------- 发送数据-》接收到数据-》触发发送事件(写个事件)—》接收事件信息发送数据 --------------------编程问答-------------------- 这个得用线程去捕获吧 --------------------编程问答-------------------- 如果在多长时间以内能返回响应,就做个定时器,固定的时间重发命令
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,