c# 串口上位机开发
时间: 2025-01-21 10:03:02 浏览: 37
### C# 串口通信上位机开发教程
#### 使用 `SerialPort` 类进行基本配置
为了建立与下位机的连接,可以利用 .NET Framework 提供的 `System.IO.Ports.SerialPort` 类。此对象允许设置波特率、校验位、停止位等参数,并提供读写操作的方法。
```csharp
using System;
using System.IO.Ports;
public class SerialCommunicationExample {
private static SerialPort _serialPort;
public void Initialize() {
// 创建并初始化串口实例
_serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
try {
// 打开串口
if (!_serialPort.IsOpen) {
_serialPort.Open();
Console.WriteLine("成功打开 COM1");
}
// 设置事件处理器
_serialPort.DataReceived += OnDataReceived;
} catch (UnauthorizedAccessException ex) {
Console.WriteLine($"访问权限不足: {ex.Message}");
} catch (IOException ex) {
Console.WriteLine($"I/O 错误发生: {ex.Message}");
}
}
private void OnDataReceived(object sender, SerialDataReceivedEventArgs e) {
var sp = (SerialPort)sender;
string data = sp.ReadExisting();
Console.WriteLine($"接收到的数据:{data}");
}
}
```
这段代码展示了如何创建一个简单的串口监听器[^1]。
#### 数据发送函数
当需要向外部设备传输命令或信息时,则可以通过调用 `WriteLine()` 或者其他类似的成员函数完成数据发送任务:
```csharp
public void SendCommand(string commandText) {
if (_serialPort != null && _serialPort.IsOpen) {
_serialPort.WriteLine(commandText);
Console.WriteLine($"已发送指令:{commandText}");
} else {
Console.WriteLine("无法发送消息,因为端口未开启!");
}
}
```
以上实现了基本的消息发送机制。
#### 关闭资源释放
确保应用程序结束前关闭所有使用的串行端口是非常重要的安全措施之一;这不仅有助于防止潜在的安全风险,而且还可以避免因长时间占用而造成的系统性能下降等问题。
```csharp
protected override void Dispose(bool disposing) {
base.Dispose(disposing);
if (_serialPort != null && _serialPort.IsOpen) {
_serialPort.Close();
Console.WriteLine("已经断开了与 COM1 的连接.");
}
}
```
这里提供了完整的清理逻辑。
阅读全文
相关推荐















