怎么在c#应用程序中读取串口传送过来的数据

2024-10-31 22:00:21
推荐回答(1个)
回答1:

//创建一个串口通讯
SerialPort CurrentPort = null;
CurrentPort = new SerialPort();
                CurrentPort.ReadBufferSize = 128;
                CurrentPort.PortName = comName;  //端口号 
                CurrentPort.BaudRate = bandRate; //比特率 
                CurrentPort.Parity =parity;//奇偶校验 
                CurrentPort.StopBits = stop;//停止位 
                CurrentPort.DataBits = databit;//数据位
                CurrentPort.ReadTimeout = 1000; //读超时,即在1000内未读到数据就引起超时异常 
                //绑定数据接收事件,因为发送是被动的,所以你无法主动去获取别人发送的代码,只能通过这个事件来处理
                CurrentPort.DataReceived += Sp_DataReceived;
                CurrentPort.Open();
                
                
                
           定义一个变量 byte[] receiveStr;          
                
         //绑定的事件处理函数
         private static void Sp_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            SerialPort sp = sender as SerialPort;
            if (sp == null)
                return;
            byte[] readBuffer = new byte[sp.ReadBufferSize];
            sp.Read(readBuffer, 0, readBuffer.Length);
            
            //赋值
            receiveStr=readBuffer;//当然你可以通过转换将byte[]转换为字符串。
        }
        
        
        //你要求的按钮事件可以这么写
         private void button1_Click(object sender, EventArgs e)
         {
                 if(receiveStr!=null)
                 {
                     变量  xxx=receiveStr;
                 }
         }