为什么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