在C#中進(jìn)行串口通信數(shù)據(jù)讀取的方法是使用SerialPort類。
首先,需要創(chuàng)建一個SerialPort對象,并設(shè)置好串口的參數(shù),例如串口號、波特率、數(shù)據(jù)位、停止位、校驗位等。
然后,可以通過調(diào)用SerialPort對象的Read方法來讀取數(shù)據(jù),該方法會阻塞程序直到接收到數(shù)據(jù)??梢灾付ㄗx取的字節(jié)數(shù)量,也可以直接讀取全部可用數(shù)據(jù)。
下面是一個簡單的示例代碼:
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);
}
}
在上述代碼中,首先創(chuàng)建了一個SerialPort對象,設(shè)定了串口號為COM1,波特率為9600,其他參數(shù)使用默認(rèn)值。然后通過DataReceived事件來設(shè)置接收數(shù)據(jù)的回調(diào)函數(shù)。
在回調(diào)函數(shù)SerialPort_DataReceived中,通過ReadExisting方法讀取接收到的數(shù)據(jù),并打印到控制臺。
最后,在Main函數(shù)中通過按下任意鍵來退出程序,然后關(guān)閉串口。
注意:以上代碼只是簡單示例,實際應(yīng)用中可能需要根據(jù)具體情況進(jìn)行參數(shù)設(shè)置、錯誤處理等。