
怎样在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
怎样串口通信协议自动识别
单工的通信实现对串口通信协议的自动识别比较难做,说实话,,搞到这个题目算你倒霉一般采用的是无脑对比法,就是接受一次对比一次协议,直到找到合适的信号说实话,很麻烦编程方面推荐C语言,汇编在实现对比的时候,容易导致死循环,而且C语言编这个程序并不是很难
怎样用VB来判断串口是否存在,是否被占用
是否有数据输入
错误消息(MS Comm 控件)下表列出 MSComm 控件可以捕获的错误:常数 值 描述 comInvalidPropertyValue 380 无效属性值 comSetNotSupported 383 属性为只读 comGetNotSupported 394 属性为只读 comPortOpen 8000 端口打开时操作不合法 8001 超时值必须大于 0 comPortInvalid 8002 无效端口号 8003 属性只在运行时有效 8004 属性在运行时为只读 comPortAlreadyOpen 8005 端口已经打开 8006 设备标识符无效或不支持该标识符 8007 不支持设备的波特率 8008 指定的字节大小无效 8009 缺省参数错误 8010 硬件不可用(被其它设备锁定) 8011 函数不能分配队列 comNoOpen 8012 设备没有打开 8013 设备已经打开 8014 不能使用 comm 通知 comSetCommStateFailed 8015 不能设置 comm 状态 8016 不能设置 comm 事件屏蔽 comPortNotOpen 8018 仅当端口打开时操作才有效 8019 设备忙 comReadError 8020 读 comm 设备错误 comDCBError 8021 为该端口检索设备控制块时的内部错误
VB.NET中如何处理串口通信接收的数据
你可以预先约定一个截止附,读取的字节统统放到缓存区里,直到读到截止附再处理、显示。
vb程序编写模拟串口
串口通讯只是管道,要控制小车的速度什么的,最好的实现方式是用FPGA,或者相应的asic芯片。
一个较为普遍的方式是控制电机的电压来控制运动速度,难度一点都不大。
多个传感器采集的数据发送到单片机,也没有关系,最好的方式是在单片机上烧制出一系列的寄存器空间,memory map,然后,通过串口通讯控制时,可以通过读写MMIO来实现控制。
不用为每一个传感器配置一个端口。
很多专属芯片都带例程,改改就可以用了。
高手来帮帮忙啊
vb的串口通信
参考: 补充答复:已经在上述链接的23楼上传修改后工程.LZ:你需要对COM号,波特率,校验位,数据位,停止位做选择,都出现蓝色高亮.此外修改上述链接工程中代码的BUG:Private Sub cmdOpen_Click() '打开关闭端口 On Error GoTo Userr If List1 <> And List2 <> And List3 <> And List3 <> And List3 <> Then MSComm1.Settings = List2 & , & List3 & , & List5 & , & List4 If openFlag Then cmdOpen.Caption = 打开串口 MSComm1.PortOpen = False '打开端口 Shape1.FillColor = vbRed Else MSComm1.CommPort = Val(List1) MSComm1.PortOpen = True cmdOpen.Caption = 关闭串口 Shape1.FillColor = vbGreen End If End If openFlag = Not openFlag Exit SubUserr: MsgBox (Err号 & Err.Number & 串口号错误或已打开!)End Sub



