VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 3235|回复: 2

[求助] 如何自动检测可用串口号

[复制链接]
发表于 2015-7-16 15:46:45 | 显示全部楼层 |阅读模式
如何自动检测可用串口号
发表于 2015-7-18 21:35:32 | 显示全部楼层
参考以下代码:
  1. Option Explicit

  2. Private Sub Combo1_Click()
  3.     MSComm1.CommPort = Mid(Combo1.Text, 4)
  4. End Sub

  5. Private Sub Command2_Click()
  6.     If MSComm1.PortOpen = True Then MSComm1.PortOpen = False                          ' 先判断串口是否打开,如果打开则先关闭
  7.     With MSComm1
  8.         .Settings = "9600,N,8,1"   '设置通信口参数
  9.         .InputMode = comInputModeBinary '设置接收数据模式为二进制形式
  10.         .InputLen = 1                  '设置input一次从接收缓冲区读取字节数为1
  11.         .InBufferCount = 0              '清除接收缓冲区,等待计算机接收的字符数为0
  12.         .RThreshold = 1               '设置接收一个字节产生oncomm事件,打开接收
  13.         .SThreshold = 0
  14.         .PortOpen = True         
  15.     End With
  16. End Sub

  17. Private Sub Form_Load()
  18.     Me.Show
  19.     Text1.Text = ""
  20.     On Error GoTo errline                           '如果出错,进入错误处理程序
  21.     Dim i As Integer                                '定义可访问的串口总数
  22.     Dim Counter As Integer                          '用于记录经检查可以使用的串口号
  23.     '=======================初始化串口列表====================
  24.     Counter = 0                                     '计数器清零
  25.     For i = 1 To 16                                 '循环检查可能存在的16个串口
  26.         MSComm1.CommPort = i                        '依次打开每个串口
  27.         MSComm1.PortOpen = True                     '打开串口
  28.         If MSComm1.PortOpen = True Then             '如果打开成功,说明该串口可用
  29.             MSComm1.PortOpen = False                '检查完毕,关闭串口
  30.             Combo1.AddItem "COM" + CStr(i), Counter '将可用串口增加到组合框
  31.             Counter = Counter + 1                   '计数器加1
  32.         End If
  33.     Next i
  34.     Combo1.ListIndex = 0                            '将第一个可用串口设为默认值
  35.     MSComm1.PortOpen = False
  36.     Exit Sub
  37. errline:
  38.     If Err.Number = 8005 Then                       '若有的串口已被其他程序打开,也应该将其加入组合框内
  39.         Combo1.AddItem "COM" + CStr(i), Counter  '将可用串口增加到组合框内
  40.         Counter = Counter + 1                       '计数器加1
  41.     End If
  42.     Resume Next                                     '回到出错入口处,继续执行巡检串口程序
  43. End Sub
复制代码
回复 支持 反对

使用道具 举报

发表于 2016-12-8 22:53:02 | 显示全部楼层
代码写的很好,谢谢,方便大家了。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2021-12-4 21:00

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表