先说下错误在哪里 MSComm1.CommPort = 12
这样写是不好的,就是说直接指定了串口的端口号,若是电脑中没有这个端口,则会出现8020的错误提示
其解决办法有两种
1、直接使用端口 1,1号端口是每个电脑都自带的,虽然未必使用了它
2、利用程序进行检测可用的端口号,然后在界面上利用下拉选择框进行选择
第二种是最方便最实用的,也是最合理的解决办法,具体程序如下
Private Sub Form_Load() '窗体加载事件
Dim i As Integer
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False '先关闭串口
For i = 1 To 30 '循环检测电脑中可用的串行端口号
On Error Resume Next '错误处理
MSComm1.CommPort = i '设置设置端口号
MSComm1.PortOpen = True '用该端口号打开串口
If Err = 0 Then '如果没有错误
Combo1.AddItem i '添加一个可用端口号
End If
MSComm1.PortOpen = False '关闭串口
Err = 0 '将错误号置0
Next i
End Sub
Private Sub 串口初始化() '串口初始化函数
Dim T As String
T = Combo2.Text & "," & Combo3.Text & "," & Combo4.Text & "," & Combo5.Text
MSComm1.CommPort = Combo1.Text '设置串行端口,1
MSComm1.Settings = T '设置波特率及数据帧格式
MSComm1.InputLen = 0 '读取接收缓冲区的所有字符
MSComm1.InBufferSize = 256 '数据接受缓冲区大小为4000字节
MSComm1.OutBufferSize = 256 '数据发送缓冲区大小为4000字节
MSComm1.RThreshold = 1 '每1位数据到接收缓冲区都触发接收事件
MSComm1.InputMode = 1 '接收二进制数据
End Sub