重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
没有任何办法单独检测串口是否连接你只能实时向串口发送测试数据,这个测试数据必须要能够被串口连接的设备识别并且有返回数据才行。如果上面的工作你都没问题,那么每个时间间隔,你都发送测试数据,如果你能接收到正确的返回值,自然就连接了,如果不能接收正确的返回值,那说明没连接设备。当然,如果你发送些无效的不能被串口已经连接的设备所理解并能给你回送数据的东西,也不会得到任何回应。
创新互联公司专注于企业营销型网站、网站重做改版、含山网站定制设计、自适应品牌网站建设、HTML5、商城开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为含山等各大城市提供网站开发制作服务。
假设你的控件名为mscom1
判断是否接到数据的语句为:
if mscom1.CommEvent = comEvReceive Then '如果comEvReceive为真,则数据接收到了
'传来的数值在 mscom1.input 中
text1.text= text1.text mscom1.input
End if
j = 0\x0d\x0aFor i = 1 To 16 Step 1\x0d\x0aIf comISP.PortOpen = True Then '先关闭串口\x0d\x0acomISP.PortOpen = False\x0d\x0aEnd If\x0d\x0a\x0d\x0acomISP.CommPort = i\x0d\x0aOn Error Resume Next '说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用 On Error GoTo。\x0d\x0acomISP.PortOpen = True\x0d\x0aIf Err.Number 8002 Then '无效的串口号。这样可以检测到虚拟串口,如果用Err.Number = 0的话检测不到虚拟串口\x0d\x0aIf j = 0 Then\x0d\x0aj = i\x0d\x0aEnd If\x0d\x0acboPort.AddItem "COM" i '生成串口选择列表\x0d\x0aEnd If\x0d\x0acomISP.PortOpen = False\x0d\x0aNext i\x0d\x0a\x0d\x0aIf j = 1 Then\x0d\x0acboPort.Text = "COM" j '自动打开可用的最小串口号\x0d\x0acomISP.CommPort = j\x0d\x0acomISP.PortOpen = True\x0d\x0acmdOpenCom.Caption = "关闭串口"\x0d\x0ashpCOM.FillColor = vbGreen\x0d\x0aIf Err.Number = 8005 Then '串口已打开,vbExclamation '\x0d\x0acomISP.PortOpen = False\x0d\x0acboPort.Text = ""\x0d\x0acmdOpenCom.Caption = "打开串口"\x0d\x0ashpCOM.FillColor = vbRed\x0d\x0aEnd If\x0d\x0aEnd If
j = 0
For i = 1 To 16 Step 1
If comISP.PortOpen = True Then '先关闭串口
comISP.PortOpen = False
End If
comISP.CommPort = i
On Error Resume Next '说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用 On Error GoTo。
comISP.PortOpen = True
If Err.Number 8002 Then '无效的串口号。这样可以检测到虚拟串口,如果用Err.Number = 0的话检测不到虚拟串口
If j = 0 Then
j = i
End If
cboPort.AddItem "COM" i '生成串口选择列表
End If
comISP.PortOpen = False
Next i
If j = 1 Then
cboPort.Text = "COM" j '自动打开可用的最小串口号
comISP.CommPort = j
comISP.PortOpen = True
cmdOpenCom.Caption = "关闭串口"
shpCOM.FillColor = vbGreen
If Err.Number = 8005 Then '串口已打开,vbExclamation '
comISP.PortOpen = False
cboPort.Text = ""
cmdOpenCom.Caption = "打开串口"
shpCOM.FillColor = vbRed
End If
End If