C# 事件读取串口数据代码
时间: 2024-10-11 13:02:21 浏览: 23
在C#中,我们可以使用System.IO.Ports命名空间下的SerialPort类来读取串口数据。下面是一个简单的示例,展示如何创建SerialPort实例、打开串口并处理接收到的数据:
```csharp
using System;
using System.IO.Ports;
public class SerialReader
{
private SerialPort serialPort; // 创建一个SerialPort实例
public SerialReader(string portName, int baudRate)
{
serialPort = new SerialPort(portName); // 指定串口号
serialPort.BaudRate = baudRate; // 设置波特率
serialPort.DataReceived += SerialDataReceived; // 注册数据接收事件
}
private void SerialDataReceived(object sender, SerialDataReceivedEventArgs e)
{
byte[] buffer = new byte[10]; // 定义一个缓冲区,假设最大读取长度为10字节
serialPort.Read(buffer, 0, buffer.Length);
string data = Encoding.ASCII.GetString(buffer); // 转换字节数组为字符串
Console.WriteLine("Received data: " + data); // 打印接收到的数据
}
public void StartReading()
{
serialPort.Open(); // 打开串口
serialPort.Dtr = true; // 发送数据准备好信号(取决于串口设备)
}
public void StopReading()
{
serialPort.Close(); // 关闭串口
}
}
// 使用示例
class Program
{
static void Main(string[] args)
{
SerialReader reader = new SerialReader("COM1", 9600); // 替换成实际串口号和波特率
reader.StartReading();
// ... 在这里添加其他程序逻辑,例如定时检查串口数据
}
}
```
阅读全文