溫馨提示×

c#串口通信數(shù)據(jù)讀取的方法是什么

c#
小億
350
2023-10-28 02:46:43
欄目: 編程語言

在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è)置、錯誤處理等。

0