为什么serialPort接收数据的时候会触发2次
private void serialPort2_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
label1.Text = label1.Text + serialPort2.ReadExisting();
if (label1.Text == "NR\r\n")
{
byte[] err = new byte[1];
err[0] = 0x02;
serialPort1.Write(err, 0, 1);
}
}
这是代码,本人用串口调试助手给serialPort2发送了一个”NR”+“\r\n”,为什么 serialPort1会发送2个02?
这相当于发一次数据触发了2次?这是为什么?
解决方案
40
temp = serialPort2.ReadExisting();
if (temp != "")
{
label1.Text =temp;
}
你读了2次ReadExisting,第二次肯定为空啊,把第一次的要保存起来temp