MSComm控件串口通信开发
1. MSComm控件的处理流程
MSComm在适当时候引发控件的处理流程主要分为两步:
1)通过事件驱动处理连接端口通信
在收发一个字符或者生一个事件时,不管是产生一个事件还是错误(这取决于CommEvent的属性值),都会执行控件的事件程序OnComm()。我们需要预先将处理事件或者错误的逻辑代码输入在控件事件区。
2)检查CommEvent的属性值
通过检查CommEvent的值来判断是事件还是错误,并根据触发事件时CommEvent不同的值编写不同的分支来处理对应事件。对于处理串口收发数据,最常用的事件属性值有comEvSend(发送数据) 和 comEvReceive(接收数据)。
2.上位机和下位机之间连接
在早期,上位机和下位机之间经常使用的通信方式是RS-232的串行通信控制。直到今天,在USB通信普遍使用的方式下,PC端的应用软件依然是应用RS-232通信,保护了原有的软件开发投入。本次实验用的接口是较为常见USB接口,板子上采用了USB转串口芯片进行信号的转换。
局部功能
1.检查当前可用的串口
上篇文章中讲到,VB6.0中MSComm控件的端口号仅限于1~16,并且大多数情况下用于插拔的USB都不是一个固定值,因此,我们首先需要获取PC机当前状态下可用于连接的串口端口号。
代码如下:
On Error Resume Next '打开端口出错时,程序不会中断
Dim I As Integer
For I = 1 To 16 Step 1 '依次打开1~16的端口
MSComm1.CommPort = I
MSComm1.PortOpen = True
If Err.Number <> comPortInvalid Then
Combo1.AddItem "COM" & I '获取能够正确打开的端口号
End If
MSComm1.PortOpen = False
Next
Combo1.Text = Combo1.List(0