c# 串口编程 轮询

xuhaotian036 2011-09-15 09:06:38
三个设备 并在一起,给每个设备发个指令,设备给我回复一段字符,如何轮询?请教各位高手
...全文
653 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
LL223851 2011-11-02
  • 打赏
  • 举报
回复
http://bbs.21ic.com/icview-49372-1-1.html
LL223851 2011-11-02
  • 打赏
  • 举报
回复
楼主好好看看这篇文章吧,每个从设备都用地址码,主设备通过地址码来确认从设备
http://www.hkwx.com/productor/hk6485.htm
an_ba 2011-10-21
  • 打赏
  • 举报
回复
可不可以这样:
再发送事件里!
senddata() as byte
senddata(0)=xx
senddata(2)=xx
.
.
senddata(max)=xx
recdata(17) as byte
bytelen as integer
for i=1 to addmax
senddata(1)=i
com.write(senddata,0,senddata.lengh)
do until i=10(判断超时用)or bytelen = 定字长
读字节,判断字长
sleep 50
i+=1
loop
if i >=10 then
超时
else
处理数据
end if
sleep 100,;轮询间隔

next

不用接受事件、。
不知道怎么样!QQ:86071723,讨论讨论。
an_ba 2011-10-21
  • 打赏
  • 举报
回复
do loop 是判断接受字节数!
an_ba 2011-10-21
  • 打赏
  • 举报
回复
这哥们是脑残,我也遇到这个问题,不知道怎么轮询,是用do loop 还是用时间+接受事件掐断,还是怎么着!~唉,我是定义类,因为我要方便扩展,指不准用那个串口!再类里面接受,在主线程里,开线程读写!我要用10个串口,每个串口拖10个485,!插,就差最后这个怎么轮询得方法了!正在研究!没经验!
trentliu 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xuhaotian036 的回复:]

引用 8 楼 builderc 的回复:

看来你也不知道是什么协议,你把你单设备的发送接收报文贴出来, 我确定下用的什么协议。


都给你说了 单个我都测试成功了 三个怎么轮询,就一发一收。脑残啊,老是问协议,关协议个鸟事
[/Quote]

我无语了,你说我拿什么来拯救你
LL223851 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xuhaotian036 的回复:]
引用 8 楼 builderc 的回复:

看来你也不知道是什么协议,你把你单设备的发送接收报文贴出来, 我确定下用的什么协议。


都给你说了 单个我都测试成功了 三个怎么轮询,就一发一收。脑残啊,老是问协议,关协议个鸟事
[/Quote]
你总得有个地址信息或者有个规则来确定发送给哪个设备,返回的信息是哪个设备的吧?还说人家脑残
xuhaotian036 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 builderc 的回复:]

看来你也不知道是什么协议,你把你单设备的发送接收报文贴出来, 我确定下用的什么协议。
[/Quote]

都给你说了 单个我都测试成功了 三个怎么轮询,就一发一收。脑残啊,老是问协议,关协议个鸟事
trentliu 2011-09-15
  • 打赏
  • 举报
回复
看来你也不知道是什么协议,你把你单设备的发送接收报文贴出来, 我确定下用的什么协议。
wangren02 2011-09-15
  • 打赏
  • 举报
回复
关注ing
xuhaotian036 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 builderc 的回复:]

你先搞明白你这三个设备用什么方式并在一起,支持什么协议
[/Quote]

单个设备我已经测试成功了,就是不会写轮询方式
trentliu 2011-09-15
  • 打赏
  • 举报
回复
你先搞明白你这三个设备用什么方式并在一起,支持什么协议
xuhaotian036 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sudianbo 的回复:]

是232转485吧。你就轮流发“数据请求指令”给3各设备(每个设备都有地址的,对应请求指令也不同),在串口事件里接收数据,根据设备地址区分是那个设备回复的数据。485一定要轮询,设备不能主动发给计算机,否则会总线冲突。
[/Quote]

我可以定义一个方法,在这个方法里面我发送指令然后接收,方法返回一串字符,我在通过循环此方法解析字符串的到我想要的值,这样做Ok不。
能给个轮询方式的案例吗
_三皮_ 2011-09-15
  • 打赏
  • 举报
回复
是232转485吧。你就轮流发“数据请求指令”给3各设备(每个设备都有地址的,对应请求指令也不同),在串口事件里接收数据,根据设备地址区分是那个设备回复的数据。485一定要轮询,设备不能主动发给计算机,否则会总线冲突。
xuhaotian036 2011-09-15
  • 打赏
  • 举报
回复
其他的我已经能好了 如果说是一个设备的话 我直接通过COM就可以实现,现在是3个 就需要轮询了
这个轮询该如何做?能给段代码吗?
trentliu 2011-09-15
  • 打赏
  • 举报
回复
并在一起? 怎么个并法? 用的什么协议?

一般是协议报文询问某一个设备,什么命令, 你再解析协议返回的数据,知道是哪一个设备反馈的信息。
LL223851 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 builderc 的回复:]
引用 9 楼 xuhaotian036 的回复:

引用 8 楼 builderc 的回复:

看来你也不知道是什么协议,你把你单设备的发送接收报文贴出来, 我确定下用的什么协议。


都给你说了 单个我都测试成功了 三个怎么轮询,就一发一收。脑残啊,老是问协议,关协议个鸟事


我无语了,你说我拿什么来拯救你
[/Quote]
后悔啊,真是后悔啊,后悔回这个帖子,哥们,淡定
xuhaotian036 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ll223851 的回复:]

引用 9 楼 xuhaotian036 的回复:
引用 8 楼 builderc 的回复:

看来你也不知道是什么协议,你把你单设备的发送接收报文贴出来, 我确定下用的什么协议。


都给你说了 单个我都测试成功了 三个怎么轮询,就一发一收。脑残啊,老是问协议,关协议个鸟事

你总得有个地址信息或者有个规则来确定发送给哪个设备,返回的信息是哪个设备的吧?还说人家脑残
[/Quote]

傻B 你管我用什么规则 我能收能发就行了 只是问你如何轮询 标题看清楚

110,502

社区成员

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

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

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