C#串口的CatchReceivedEvents
时间: 2024-08-14 18:02:47 浏览: 44
C# 串口调试助手源码程序
5星 · 资源好评率100%
在C#中,串口通信通常通过`SerialPort`类来进行,这个类提供了一个事件`DataReceivedEvent`,允许我们在接收到数据时进行处理。当你需要捕获串口接收的数据时,可以按照以下步骤操作:
1. 创建`SerialPort`实例,并打开串口:
```csharp
SerialPort serialPort = new SerialPort("COM1", baudRate, parity, dataBits, stopBits);
serialPort.Open();
```
这里,`"COM1"`替换为实际的串口号,其他参数如baudRate、parity、dataBits和stopBits根据具体的硬件设置。
2. 绑定`DataReceived`事件到一个处理程序方法:
```csharp
serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
```
`DataReceivedHandler`是你自定义的方法,会在数据可用时被调用。
3. 实现`DataReceivedHandler`方法:
```csharp
private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
byte[] buffer = new byte[serialPort.BytesToRead];
serialPort.Read(buffer, 0, buffer.Length);
// 对接收到的数据进行处理
string receivedData = Encoding.ASCII.GetString(buffer);
Console.WriteLine($"Received: {receivedData}");
}
```
在这个方法里,我们读取了所有可用的数据并转换成字符串。
4. 如果你想取消监听,记得关闭或移除事件绑定:
```csharp
serialPort.DataReceived -= DataReceivedHandler;
```
阅读全文