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()方法发送,请有经验的说说,谢谢!
转载
|