在C#中實現多線程串口通信可以使用System.IO.Ports
命名空間下的SerialPort
類。
首先,創建一個SerialPort
對象并設置串口相關屬性,如波特率、數據位、停止位、校驗位等。
using System.IO.Ports;
SerialPort serialPort = new SerialPort();
serialPort.PortName = "COM1"; // 設置串口名稱
serialPort.BaudRate = 9600; // 設置波特率
serialPort.DataBits = 8; // 設置數據位
serialPort.StopBits = StopBits.One; // 設置停止位
serialPort.Parity = Parity.None; // 設置校驗位
然后,編寫一個線程函數來處理串口數據的讀取和寫入。在該線程函數中,可以使用SerialPort
對象的ReadLine()
和Write()
方法來讀取和寫入數據。
void SerialThreadFunc()
{
while (true)
{
if (serialPort.IsOpen)
{
// 讀取串口數據
string data = serialPort.ReadLine();
Console.WriteLine("Received data: " + data);
// 寫入串口數據
serialPort.Write("Hello, SerialPort!");
}
}
}
最后,創建一個新的線程,并在該線程中啟動串口通信。
Thread serialThread = new Thread(SerialThreadFunc);
serialThread.Start();
通過以上步驟,就可以實現多線程串口通信。在主線程中,你可以使用SerialPort
對象的相關方法來發送數據到串口。在串口線程中,你可以通過ReadLine()
方法來讀取串口數據。