///
/// 读取返回数据
///
///
private string Read()
{
//获得返回数据
string Return = "";
string ShowReturn = ""; //显示的命令
try
{
Thread.Sleep(100);
int len = this.serialPort1.BytesToRead;
if (len > 0)
{
byte[] data = new byte[len];
if (len > 0)
{
for (int i = 0; i < len; i++)
data[i] = (byte)this.serialPort1.ReadByte();
}
for (int i = 0; i < data.Length; i++)
{
if (data[i] == 0)
{
Return += "00";
ShowReturn += "00" + " ";
}
else if (data[i] < 16)
{
Return += "0" + Convert.ToString(data[i], 16);
ShowReturn += "0" + Convert.ToString(data[i], 16) + " ";
}
else
{
Return += Convert.ToString(data[i], 16);
ShowReturn += Convert.ToString(data[i], 16) + " ";
}
}
}
else
{
Return = "未接受到返回数据";
}
}
catch (Exception ex)
{
Return = ex.Message;
}
this.txtMessage.AppendText(ShowReturn + "\r\n");
return Return.ToUpper();
}
这是以前写的一段代码,你改改吧
有读数据啊serialPort1.ReadLine().ToString (); 这不就是从串口中读数据
其实可以添加一个串口接收数据的事件,这样有数据过来,就可以读了
serialport打开后,不要关闭,定义接收数据的委托函数,在委托函数里处理数据