6.3.4  代码实现

更新于 2026年10月10日 版权声明
6.3.4 代码实现

1.引用命名空间

System.IO.Ports命名空间包含了控制串口重要的SerialPort类,该类提供了同步I/O和事件驱动的I/O、对管脚和中断状态的访问以及对串行驱动程序属性的访问,所以在程序代码起始位置需加入UsingSystem.IO.Ports。

2.串口实例化与通信参数

(1)通信端口号:PortName的属性为获取或设置通信端口,包括但不限于所有可用的COM端口,该属性返回类型为String。通常情况下,PortName正常返回的值为COM1、COM2……。SerialPort类最大支持的端口数突破了CommPort控件中CommPort属性不能超过16的限制,大大方便了用户串口设备的配置。

(2)通信格式:SerialPort类分别用BaudRate、Parity、DataBits、StopBits、ReadTimeout属性设置通信格式中的波特率、数据位、停止位、校验位和延时时长。其中,Parity和StopBits分别是枚举类型Parity、StopBits,Parity类型中枚举了Odd(奇)、Even(偶)、Mark、None、Space,Parity枚举了None、One、OnePointFive、Two。ReadTimeout单位设置为毫秒。

SerialPort类提供了七个重载的构造函数,既可以对已经实例化的SerialPort对象设置上述相关属性的值,也可以使用指定的端口名称、波特率、奇偶校验位中的数据位和停止位直接初始化SerialPort类的新实例。

示例代码:

图示

3.串口的打开和关闭

SerialPort调用类的Open()和Close()方法对端口进行打开关闭操作。

示例代码:(https://www.daowen.com)

图示

图示

4.数据的发送和读取

Serial类调用重载的Write和WriteLine方法发送数据。其中,WriteLine可发送字符串并在字符串末尾加入换行符。读取串口缓冲区的方法有许多,除了ReadExisting和ReadTo,其余的方法都是同步调用,线程被阻塞直到缓冲区有相应的数据或大于ReadTimeOut属性设定的时间值后引发ReadExisting异常。

示例代码:

图示

5.DataReceived事件

DataReceived事件用来接收串口返回的数据。DataReceived事件在接收到了Received BytesThreshold设置的字符个数或接收到文件结束字符并将其放入输入缓冲区时被触发。

示例代码:

图示

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)