C# 上位机串口发出一个字节,同时接收已发送的数据 示例代码
时间: 2024-11-30 13:19:51 浏览: 5
C#上位机开发-串口通信,读取并处理数据
在C#中,如果你想要通过串口通信发送和接收数据,你可以使用`System.IO.Ports.SerialPort`类。这里是一个简单的示例代码片段,展示如何上位机(通常是指发送端)发送一个字节并监听接收到的数据:
```csharp
using System.IO.Ports;
// 创建串口实例
SerialPort serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
try
{
// 打开串口
serialPort.Open();
// 发送一个字节
byte dataToSend = 0x42; // 例如发送字符'B'
serialPort.Write(BitConverter.GetBytes(dataToSend), 0, 1); // 使用BitConverter将字节转换为网络字节序
// 接收数据
serialPort.DataReceived += (sender, e) =>
{
if (serialPort.BytesToRead > 0)
{
byte[] receivedData = new byte[serialPort.BytesToRead];
serialPort.Read(receivedData, 0, receivedData.Length);
string receivedString = BitConverter.ToString(receivedData).Replace("-", "");
Console.WriteLine($"Received: {receivedString}");
}
};
// 等待接收
while (true)
{
Thread.Sleep(100); // 每隔一段时间检查是否有新数据
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
finally
{
// 关闭串口
serialPort.Close();
}
```
在这个例子中,我们首先打开串口,然后发送一个字节。当有数据被接收时,我们会捕获`DataReceived`事件,并读取接收到的数据。请注意,实际应用中可能需要添加错误处理和循环条件以便更好地控制通信。
阅读全文