溫馨提示×

C#串口通訊收發(fā)數(shù)據(jù)怎么實(shí)現(xiàn)

c#
小億
200
2024-02-29 14:55:15
欄目: 編程語言

在C#中實(shí)現(xiàn)串口通信收發(fā)數(shù)據(jù),可以使用System.IO.Ports命名空間下的SerialPort類。以下是一個(gè)簡單的示例代碼:

using System;
using System.IO.Ports;

class Program
{
    static SerialPort _serialPort;
    
    static void Main()
    {
        _serialPort = new SerialPort("COM1", 9600); // 設(shè)置串口號和波特率
        _serialPort.Open(); // 打開串口
        
        _serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler); // 設(shè)置數(shù)據(jù)接收事件處理函數(shù)
        
        string message = "Hello, World!";
        _serialPort.WriteLine(message); // 發(fā)送數(shù)據(jù)
        
        Console.ReadLine(); // 等待用戶輸入
    }
    
    static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
    {
        SerialPort sp = (SerialPort)sender;
        string data = sp.ReadLine(); // 讀取接收到的數(shù)據(jù)
        Console.WriteLine("Received data: " + data);
    }
}

以上代碼中,首先創(chuàng)建一個(gè)SerialPort對象,并指定串口號和波特率。然后打開串口,并設(shè)置數(shù)據(jù)接收事件處理函數(shù)。在Main函數(shù)中,發(fā)送數(shù)據(jù)使用WriteLine方法,接收數(shù)據(jù)則在DataReceivedHandler函數(shù)中通過ReadLine方法讀取數(shù)據(jù)。最后通過Console.WriteLine打印接收到的數(shù)據(jù)。

需要注意的是,在使用完SerialPort對象后,需要及時(shí)關(guān)閉串口,可以在程序結(jié)束時(shí)調(diào)用_serialPort.Close()來關(guān)閉串口連接。

0