在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函数中通过按下任意键来退出程序,然后关闭串口。
注意:以上代码只是简单示例,实际应用中可能需要根据具体情况进行参数设置、错误处理等。