
怎样在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语言编写串口代码
思路是:1、使用timer定时从COM口中取数据2、对COM取得的数据进行处理,处理的时候要知道数据的开始标记位和结束标记位,拿到处理后的数据再进行入数据库或显示3、记得清除缓冲区数据,然后就是周而复始的开始循环看你的代码有些太长,也看的有些晕,毕竟不是自己写的。
看到你会一直保留着缓存:ReDim Preserve newbuff(P),并没有清除过这个数组。
是不是P值已经超出数组的下标上限了呢
你可以留下腾讯号,我帮你远程看看
vb商品数据库问题 通过串口传入一个条形码 对数据库进行查询 有代码
应当在“ Text1.Text = MSComm1.Input '在文本框中予以显示”之前引入200毫秒左右的延时,让程序完成接收数据的过程 Declare Function GetTickCount Lib kernel32 () As LongSub Delay(DTime As Long) '延时函数 Dim Tmp1 As Long Tmp1 = GetTickCount Do DoEvents Loop While GetTickCount - Tmp1 <= DTimeEnd Sub
vb 串口output代码怎么写
Dim SendByte(0 to 3) As ByteSendByte(0) = &H6SendByte(1) = &H4SendByte(2) = &H1SendByte(3) = &H2EMSComm1.Output = SendByte
用VB使串口返回信息,代码怎么写
你的意思是用VB编程通过串口发送指令给其他设备,然后得到设备的返回信息
如果是的话,可以用VB6.0里的串口控件MScomm实现,具体的控件操作,网上搜下太多了。
另外可以用vb.net(2005以上)里面的串口类SerialPort实现,这个类网上也有很多的。
代码的话,你要提供电脑端串口发送的指令表,及设备的返回信息表。
这样便于判断指令的执行是否正确。
还有根据你提供的图片分析,请求指令应该是宏定义IRP_MJ_CREATE我理解应该对应一个数字 如0x21(十六进制)IOCTL_SERIAL_SET_BAUD_RATE=0x22……就是说从电脑串口发送0x21,即打开串口; 发送0x22,设置波特率为38400,等等。
然后设备返回信息,如0x100表示串口打开成功,等等。
请把问题再描述清楚些。



