利用C#串口类实现设备间通信协议

avatar
作者
猴君
阅读量:0

要使用C#实现一个串口通信协议,首先需要创建一个串口类,该类将包含打开、关闭、读取和写入串口的方法

using System; using System.IO.Ports; using System.Threading;  public class SerialPortCommunication {     private SerialPort _serialPort;     private string _dataReceived;      public SerialPortCommunication(string portName, int baudRate, Parity parity, int dataBits, StopBits stopBits)     {         _serialPort = new SerialPort(portName, baudRate, parity, dataBits, stopBits);         _serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);     }      public void Open()     {         if (!_serialPort.IsOpen)         {             _serialPort.Open();         }     }      public void Close()     {         if (_serialPort.IsOpen)         {             _serialPort.Close();         }     }      public void Write(string data)     {         if (_serialPort.IsOpen)         {             _serialPort.Write(data);         }     }      private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)     {         _dataReceived = _serialPort.ReadExisting();         Console.WriteLine("Data received: " + _dataReceived);     } } 

接下来,你可以在主程序中使用这个串口类来实现设备间的通信。以下是一个简单的示例:

using System; using System.Threading;  class Program {     static void Main(string[] args)     {         // 创建一个串口通信对象,设置串口名称、波特率等参数         SerialPortCommunication serialPortCommunication = new SerialPortCommunication("COM3", 9600, Parity.None, 8, StopBits.One);          // 打开串口         serialPortCommunication.Open();          // 循环发送数据         while (true)         {             Console.WriteLine("Enter data to send:");             string dataToSend = Console.ReadLine();              if (dataToSend.ToLower() == "exit")             {                 break;             }              serialPortCommunication.Write(dataToSend);             Thread.Sleep(1000);         }          // 关闭串口         serialPortCommunication.Close();     } } 

这个示例中,我们创建了一个SerialPortCommunication对象,并设置了串口名称、波特率等参数。然后,我们打开串口并循环发送用户输入的数据。当用户输入"exit"时,程序将关闭串口并退出。

请注意,这个示例仅用于演示目的。在实际应用中,你可能需要根据设备的具体要求来调整串口参数和通信协议。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!