怎样在vb中自动检测到可用串口号

2019-03-24 16:56发布

单片机的串口与VB通信,怎样在vb中自动检测到可用串口号,比如我的电脑串口号是com6那么一上电通信就自动选择com6?
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
wudianjun2001
1楼-- · 2019-03-24 22:57
 精彩回答 2  元偷偷看……
wudianjun2001
2楼-- · 2019-03-25 03:41
这个是自动打开最小的有效串口号,并且在一个组合框中列出本机有效的串口号
liutogo
3楼-- · 2019-03-25 04:37
Private Sub Form_Load()
    On Error GoTo errline                           '如果出错,进入错误处理程序
    Dim i As Integer                                '定义可访问的串口总数
    Dim Counter As Integer                          '用于记录经检查可以使用的串口号
    '=======================初始化串口列表====================
    Counter = 0                                     '计数器清零
    For i = 1 To 16                                 '循环检查可能存在的16个串口
        MSComm1.CommPort = i                        '依次打开每个串口
        MSComm1.PortOpen = True                     '打开串口
        If MSComm1.PortOpen = True Then             '如果打开成功,说明该串口可用
            MSComm1.PortOpen = False                '检查完毕,关闭串口
            Combo1(0).AddItem "COM" + CStr(i), Counter '将可用串口增加到组合框
            Counter = Counter + 1                   '计数器加1
        End If
    Next i
    Combo1(0).ListIndex = 0                            '将第一个可用串口设为默认值
    '=======================初始化波特率列表====================
    Dim Baud As Integer
    Counter = 0                                     '计数器清零
    Baud = 1200
    While Baud <= 115200                            '依次列出1200-15200的波特率
    Combo1(1).AddItem CStr(Baud), Counter
    Baud = Baud * 2
    Wend
   
    Exit Sub
   
errline:
    If Err.Number = 8005 Then                       '若有的串口已被其他程序打开,也应该将其加入组合框内
        Combo1(0).AddItem "COM" + CStr(i), Counter  '将可用串口增加到组合框内
        Counter = Counter + 1                       '计数器加1
    End If
    Resume Next                                     '回到出错入口处,继续执行巡检串口程序
End Sub

附件里面是我之前做的VB串口检测,没记错的话应该还可以打开。现在电脑没VB,无法验证,请见谅
hu柏拉图的永恒
4楼-- · 2019-03-25 06:03
 精彩回答 2  元偷偷看……
hu柏拉图的永恒
5楼-- · 2019-03-25 10:10
wudianjun2001 发表于 2015-7-16 16:27
这个是自动打开最小的有效串口号,并且在一个组合框中列出本机有效的串口号

非常感谢你能不能给个完整的程序
wo3788065521
6楼-- · 2019-03-25 12:43
编译失败是因为有两个地方写错了,
初始化波特率列表   Dim Baud As Integer 改成 Dim Baud As Long
MSComm1这个控件是用picturebox代替的,换一下控件

一周热门 更多>