您好,VB,mscomm串口通信的8020错误

2024-12-02 11:27:13
推荐回答(1个)
回答1:

先说下错误在哪里    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