为什麽下面的程序只能实现 发送数据而不能接收??、请问还有其他方法实现接收数据嘛/?若有好的建议请上传程序并写上注释。。谢谢 private void button1_Click(object sender, EventArgs e) { SerialPort serialPort1 = new SerialPort(); serialPort1.PortName = "COM3"; serialPort1.BaudRate = 9600; serialPort1.Parity = Parity.Odd; serialPort1.StopBits = StopBits.Two; serialPort1.ReadTimeout = 1000; //读超时 if (serialPort1.IsOpen == false) serialPort1.Open(); serialPort1.WriteLine(textBox1.Text); serialPort1.Close();//多次输入 MessageBox.Show("数据发送成功!", "系统提示"); } private void button2_Click(object sender, EventArgs e) { if (serialPort1.IsOpen == false) serialPort1.Open(); textBox2.Text = serialPort1.ReadLine().ToString (); }
/// <summary>
/// 读取返回数据
/// </summary>
/// <returns></returns>
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();
}