SerialPort com = new SerialPort("COM1", 9600, Parity.Even, 7, StopBits.One);我很奇怪,在用这个类的时候
如果
com.Write();写数据,写完以后必须要关闭
if (com.IsOpen)
{ com.Close(); }
com.Open();
然后我再用com.Write()或者com.Read()才有效果
如果连续
com.Write();
com.Read();
就无效,请问怎么解决这个问题因为我需要一直监听某个端口,所以放在一个for(;;)里面不断的监听,直到取到我需要的值才关闭
如果总是这样开一下就必须关闭一次再开才能取得数据,那样结果就不对了请教了

解决方案 »

  1.   

    使用事件
    serialPort.DataReceived += new SerialDataReceivedEventHandler(ReceiveInfo)public void ReceiveInfo(object sender, SerialDataReceivedEventArgs e)ReceiveInfo 为接收数据的函数 这样不用你去关或者开 只要你第一次打开串口就行了他会自动读取串口数据的
      

  2.   

    ReceiveInfo 为接收数据的函数 这样不用你去关或者开 只要你第一次打开串口就行了他会自动读取串口数据的不太明白,我怎么样把我的报文字符串传给ReceiveInfo();