从C#中的串口读取数据,可以使用.NET框架中的System.IO.Ports命名空间中的SerialPort类。以下是一个简单的示例代码,用于从串口读取数据:
using System;
using System.IO.Ports;
class SerialPortExample
{
static void Main()
{
SerialPort serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
try
{
serialPort.Open();
serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
}
catch (Exception ex)
{
Console.WriteLine("Error opening serial port: " + ex.Message);
}
Console.ReadLine();
}
private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
Console.WriteLine("Data Received: " + indata);
}
}
在这个示例中,我们创建了一个SerialPort对象,并指定了串口名称(COM1)和波特率(9600)。然后,我们打开串口并添加一个DataReceived事件处理程序。当串口接收到数据时,DataReceived事件将被触发,并调用DataReceivedHandler方法。在这个方法中,我们使用ReadExisting方法读取串口中的所有可用数据,并将其输出到控制台。
需要注意的是,在使用串口时,应该先检查计算机上是否存在可用的串口,可以使用System.IO.Ports.SerialPort.GetPortNames()方法来获取所有可用的串口名称。此外,在打开串口时,应该捕获异常,以防止打开失败。
领取专属 10元无门槛券
手把手带您无忧上云