查看: 912|回复: 0
打印 上一主题 下一主题

C#写上位机,有什么样的方法发送串口数据比较快?

[复制链接]
跳转到指定楼层
沙发
发表于 2015-10-8 07:47:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

C#写的上位机,要求大概这样:主机不断的发轮询码,然后上位机一直在接收,当接收到的轮询码与自身的ID相同时,就马上发送一串码给主机。如:主机循环发送01 02 03 04 05 ,上位机模块ID为02,那么上位机在接收到02时马上发给主机一串码,是一个数组,十位,且是要跟在02的后面,如:01 02 。。。。。 03 04 05,主机发01 与02 的时间间隔为10MS,别的码之间也一样。
那么问题来了:当上位机发给主机的数比10位少时,一切正常,有10位长时,上位机发出的码会随机插在别的码后面,不一定是02后面,(主机接收到上位机的发吗时会暂停发轮询码,过一会才继续发),测试发现,应该是串口发送的数据长时,用的时间也比较长,导致出问题,那么有什么方法让串口发送的比较快呢,现在用的是DataReceived事件接收数据,串口.write()方法发送,请有经验的说说,谢谢!

C#写的上位机,要求大概这样:主机不断的发轮询码,然后上位机一直在接收,当接收到的轮询码与自身的ID相同时,就马上发送一串码给主机。如:主机循环发送01 02 03 04 05 ,上位机模块ID为02,那么上位机在接收到02时马上发给主机一串码,是一个数组,十位,且是要跟在02的后面,如:01 02 。。。。。 03 04 05,主机发01 与02 的时间间隔为10MS,别的码之间也一样。
那么问题来了:当上位机发给主机的数比10位少时,一切正常,有10位长时,上位机发出的码会随机插在别的码后面,不一定是02后面,(主机接收到上位机的发吗时会暂停发轮询码,过一会才继续发),测试发现,应该是串口发送的数据长时,用的时间也比较长,导致出问题,那么有什么方法让串口发送的比较快呢,现在用的是DataReceived事件接收数据,串口.write()方法发送,请有经验的说说,谢谢!

转载

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表