
怎样在vb中自动检测到可用串口号的具体程序代码
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
怎样在vb中自动检测到可用串口号的具体程序代码
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
两台电脑vb串口通讯
楼上已经说的非常正确,当你使用OnComm事件来接收,必须使MsComm控件的属性RThreshold为大于0的整数,否则不产生OnComm事件.Private Sub Form_Load() MSComm.CommPort = 1 MSComm1.RThreshold = 1 MSComm.PortOpen = True MSComm.Settings = 9600,n,8,1 MSComm.InputMode = comInputModeBinary MSComm.InBufferCount = 0 End Sub
请问VB中接入串口,要对电脑进行什麽设置吗
LZ的代码缺少InitialPort子程序,且窗体上要有5个name为CboSerialPort.,CboBaud,CboParity,CboData,CboStop等ComboBox 控件。
参考:
用外接的摄像头通过串口连接电脑怎么样才能在VB界面上显示
1.您在开始的赋值语句中设置了i=N,就设置为N的地址,说明编制的没有问题;2.把您的整个过程放到一个循环中就可以了啊。
do while 退出条件(防止锁死,并在关闭窗口时关闭COM口,以免下次不能打开) for i=1 to 7 您的编程本体 Timer1.Enabled = True caiji = TrueEnd SubPrivate Sub MSComm1_OnComm() Dim cmdin() As Byte '接收数据字节变量 Dim Index As Integer MSComm1.InputLen = 0 Select Case MSComm1.CommEventCase comEvReceive '接收事件 If MSComm1.InBufferCount = 10 Thencmdin = MSComm1.Input If i = 1 Then Label1(0).Caption = TwoBytes(cmdin(0), cmdin(1)) Label1(1).Caption = TwoBytes(cmdin(2), cmdin(3)) ElseIf i = 3 Then Label1(2).Caption = TwoBytes(cmdin(0), cmdin(1)) ElseIf i = 4 Then Label1(3).Caption = TwoBytes(cmdin(0), cmdin(1)) ElseIf i = 5 Then MSComm1.Output = cmdout Label1(4).Caption = TwoBytes(cmdin(0), cmdin(1)) Label2(0).Caption = TwoBytes(cmdin(2), cmdin(3)) ElseIf i = 6 Then MSComm1.Output = cmdout Label1(5).Caption = TwoBytes(cmdin(0), cmdin(1)) Label2(1).Caption = TwoBytes(cmdin(2), cmdin(3)) End If End If End Select next iloop



