SerialPort类的用法与示例
从Microsoft .Net 2.0版本以后,就默认提供了 System.IO.Ports.SerialPort类,用户可以非常简单地编写少量代码就完成串口的信息收发程序。本文将介绍如何在PC端用C# .Net 来开发串口应用程序。
1. 串口硬件信号定义
DB9 Connector 信号定义
| 针脚 | 信号 | 定义 | 作用 |
|---|---|---|---|
| 1 | DCD | 载波检测 | Received Line Signal Detector(Data Carrier Detect) |
| 2 | RXD | 接收数据 | Received Data |
| 3 | TXD | 发送数据 | Transmit Data |
| 4 | DTR | 数据终端准备好 | Data Terminal Ready |
| 5 | SGND | 信号地 | Signal Ground |
| 6 | DSR | 数据准备好 | Data Set Ready |
| 7 | RTS | 请求发送 | Request To Send |
| 8 | CTS | 清除发送 | Clear To Send |
| 9 | RI | 振铃提示 | Ring Indicator |
2. 串口端口号搜索
一个最简单的办法:
string[] portList = System.IO.Ports.SerialPort.GetPortNames(); // 静态方法
还有一种通过调用API的方法来获取实现,可以获取详细的完整串口名称,对于USB-to-COM虚拟串口来说特别适用。它可以获取到与设备管理器中一样的名字,例如“Prolific USB-to-Serial Comm Port(COM34)”, 而上面的方法只能获取到“COM34”。
3. 串口属性参数设置
SerialPort类所包含的属性详见下表:
| 名称 | 说明 | |
|---|---|---|
| BaseStream | 获取 Stream 对象的基础 SerialPort 对象。 | |
| BaudRate | 获取或设置串行波特率。 | |
| BreakState | 获取或设置中断信号状态。 | |
| BytesToRead | 获取接收缓冲区中数据的字节数。 | |
| BytesToWrite | 获取 |

本文详细介绍了C#中System.IO.Ports.SerialPort类的用法,包括串口硬件信号定义、端口号搜索、属性设置、数据收发示例,以及串口工具类和使用注意事项。涵盖了波特率、数据位、停止位等配置,以及如何处理线程同步和串口事件。


7296

被折叠的 条评论
为什么被折叠?



