小弟刚刚接触C#,弱弱地问一下, 想只读串口数据,并且收到"123"后关闭串口。
  SerialPort port = new SerialPort();              port.Open();
            string recv = port.ReadLine();
            Regex rx = new Regex("123");
            if (rx.IsMatch(recv))
            {
                port.Close();     
            }
            else
            {
               ...         
            }请问哪里有错误, 十分感谢!

解决方案 »

  1.   

    this.serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.serialPort1_DataReceived);
    private void buttonOpen_Click(object sender, EventArgs e)
            {     
                   try
                    {                    serialPort1.Open();
                     }
                    catch
                    {
                        MessageBox.Show(" 打开串口出错!");
                    }
                }
      
     private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                byte[] buffer = new byte[24];
                try
                {
                    int _iLength= serialPort1.Read(buffer, 0, 24);
                    
                    
                   // WriteLog("R: " + BitConverter.ToString(buffer, 0, _iLength));
                }
                catch (Exception ex)
                {
                   // WriteLog("R: " + ex.Message);
                }
            }      }
      

  2.   

      SerialPort   port   =   new   SerialPort();                            port.Open();
                            string   recv   =   port.ReadLine();
                            Regex   rx   =   new   Regex("123");
                            while   (!rx.IsMatch(recv))
                            {
                                    recv   =   port.ReadLine();         
                            }
    port.Close();
      

  3.   

     谢谢lye2000000_super, 怎么把分给你?同样感谢lljfl,但我只需要console的代码,不能给你分。