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

c# 串口通信问题,不好意思,没有分送了

我使用的是serialport类写的一个串口通信程序,在本机上使用虚拟串口,通信正常,接收都正确。
但是在我用其与下位机(DSP)进行通信的时候,发现接收的总是最后5个字符,不知道为什么,下位机一共向PC机发送1000多个字节,最后以"*****"结束。循环按字节进行发送,一次发送一个字节。但是我在PC机上接收的时候,发现问题了,当datareceiverd事件触发时,我使用messageBox.show(serialport.databyread)操作,发现对话框只出现一次,而且显示的是5,我就很纳闷为什么会这样?
我的接受代码是这样的,不在实验室啊,源码不能copy,只能手写了。
void datareceivered(....)
{
   string rs="";
   byte []data = new byte[1024];
  //messagebox.show(serialport1.bytetoread);
  try{
   data = serialport1.read(data,0,1024);
   rs += Encoding.ASCII.GetString(data);
}
   catch(Exception ex)
{
   messagebox.show(ex.message);
}
   //然后是异步处理显示在textbox中 textbox.text += rs; 
}
为什么呢?我如果加上messagebox.show(serialport1.bytetoread),发现事件就触发一次,而且显示的是5,我郁闷,每次都是只能接受最后的5个字符,也就是“*****”。
希望大家做过这方面东西的,能帮我解释一下,在本机上使用虚拟串口,用串口调试精灵和自己通信,一切正常。 --------------------编程问答-------------------- up --------------------编程问答-------------------- LZ
这个帖子不是你发的么?干嘛发两遍啊?全局变量试了没?
http://topic.csdn.net/u/20090424/20/f133e428-eb83-4a70-ad82-13e648ceb4e5.html
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,