C# 上位机串口发出一个字节,同时接收已发送的数据 简单示例代码
时间: 2024-11-30 17:21:46 浏览: 24
在C#中,通过SerialPort类可以实现上位机(通常是指控制设备的PC端)通过串口发送和接收数据。这里是一个简单的示例代码片段,展示如何创建一个SerialPort对象并进行串口操作:
```csharp
using System.IO.Ports;
public class SerialCommunicationExample
{
private SerialPort serialPort;
public SerialCommunicationExample(string portName, int baudRate)
{
// 创建SerialPort实例
serialPort = new SerialPort(portName, baudRate, Parity.None, 8, StopBits.One);
serialPort.DataReceived += SerialPort_DataReceived; // 注册接收到数据的事件处理
}
private void SendByte(byte data)
{
try
{
// 发送一个字节
serialPort.Write(data.ToString("X2")); // 将字节转换为两位十六进制字符串然后发送
}
catch (Exception ex)
{
Console.WriteLine($"Error sending byte: {ex.Message}");
}
}
private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
// 当有数据可用时,从串口读取
try
{
string receivedData = serialPort.ReadExisting();
Console.WriteLine($"Received: {receivedData}");
}
catch (Exception ex)
{
Console.WriteLine($"Error receiving data: {ex.Message}");
}
}
// 主程序入口
static void Main(string[] args)
{
SerialCommunicationExample communicator = new SerialCommunicationExample("COM1", 9600); // 替换为实际串口号和波特率
communicator.SendByte(0x42); // 发送一个字节,例如ASCII 'B'
Console.ReadLine(); // 挂起直到按下回车键,这会使得发送过程暂停
}
}
```
这个示例中,首先创建了一个SerialPort对象,然后定义了发送字节和接收数据的方法。在主函数里,创建了一个`SerialCommunicationExample`实例,并发送了一个字节。当串口有新数据接收时,`DataReceived`事件会被触发,我们从串口读取数据。
阅读全文