因为在视觉应用中会使用到串口和网口两种方式通讯方式,调试过程中会经常使用到串口调试工具(ComAssistant 1.3),特别是他的自动发送功能,于是便萌生了自己写一个的想法。
首先来看看最后的效果图。
接着说实现串口通讯的整体流程
1. 声明
2. 获取当前计算机串行端口名的数组
3. 选择串行端口并设置串行通讯属性
4. 实例化
5. 打开串口
6. 添加数据接收事件
7. 读/写数据
8. 关闭串口
再看看这个过程中具体用到了哪些东西。
从 .NET Framework 2.0 开始在命名空间 System.IO.Ports 下提供一个 SerialPort 类用于实现串口通讯。以下是上述流程会用到的基础字段、方法和事件。
名称 | 说明 |
PortName | 串行端口名称(如:COM1) |
BaudRate | 波特率(如:4800、9600、19200、56000、115200) |
Parity | 检验方式(如:Parity.None、Parity.Odd、Parity.Even) |
DataBits | 数据位(如:7、8) |
StopBits | 停止位(如:StopBits.None、StopBits.One、StopBits.OnePointFive、StopBits.Two) |
IsOpen | 指示 SerialPort 对象打开或关闭的状态 |
BytesToRead | 获取接收缓冲区中的数据字节数 |
名称 | 说明 |
GetPortNames | 获取当前计算机的串行端口名的数组 |
Open | 打开一个新的串行端口连接 |
Read | 从串行端口读取指定数量的字节 |
Write | 将指定数量的字节写入串行端口 |
Close | 关闭端口连接 |
名称 | 说明 |
DataRecevied | 指示已通过串行端口接收了数据 |
以上这些学会如何使用之后,就可以写出串口通讯程序了,当然值得注意的地方有通讯过程中数据格式的转换。
提示:其中自动发送功能是通过使用一个 Timer 控件实现的。