在C#中進行串口通信數據讀取的方法是使用SerialPort類。
首先,需要創建一個SerialPort對象,并設置好串口的參數,例如串口號、波特率、數據位、停止位、校驗位等。
然后,可以通過調用SerialPort對象的Read方法來讀取數據,該方法會阻塞程序直到接收到數據。可以指定讀取的字節數量,也可以直接讀取全部可用數據。
下面是一個簡單的示例代碼:
using System;
using System.IO.Ports;
class Program
{
static void Main(string[] args)
{
SerialPort serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
serialPort.DataReceived += SerialPort_DataReceived;
serialPort.Open();
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
serialPort.Close();
}
private static void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort serialPort = (SerialPort)sender;
string data = serialPort.ReadExisting();
Console.WriteLine("Received data: " + data);
}
}
在上述代碼中,首先創建了一個SerialPort對象,設定了串口號為COM1,波特率為9600,其他參數使用默認值。然后通過DataReceived事件來設置接收數據的回調函數。
在回調函數SerialPort_DataReceived中,通過ReadExisting方法讀取接收到的數據,并打印到控制臺。
最后,在Main函數中通過按下任意鍵來退出程序,然后關閉串口。
注意:以上代碼只是簡單示例,實際應用中可能需要根據具體情況進行參數設置、錯誤處理等。