vb.net查找可用串口 vb自动检测串口

怎样在vb中自动检测到可用串口号

没有任何办法单独检测串口是否连接你只能实时向串口发送测试数据,这个测试数据必须要能够被串口连接的设备识别并且有返回数据才行。如果上面的工作你都没问题,那么每个时间间隔,你都发送测试数据,如果你能接收到正确的返回值,自然就连接了,如果不能接收正确的返回值,那说明没连接设备。当然,如果你发送些无效的不能被串口已经连接的设备所理解并能给你回送数据的东西,也不会得到任何回应。

创新互联建站为客户提供专业的网站设计制作、成都网站建设、程序、域名、空间一条龙服务,提供基于WEB的系统开发. 服务项目涵盖了网页设计、网站程序开发、WEB系统开发、微信二次开发、手机网站制作等网站方面业务。

VB与VB.NET串口及以太网通迅

关于串口通讯的问题:

很明显,你还不知道(不会、不习惯)使用事件驱动的方式接收数据。

建议你仔细看看串口组件(无论VB6还是VB.net)的OnComm事件,你的问题很容易解决。

关于以太网通讯:

在TCP通讯中端口确实可以重用,你百度一下“TCP端口重用”能查到很多示例。

但绝大多数情况下不推荐端口重用,而应该采取服务器端建立连接池的方法。

或者,干脆不用TCP,用UDP解决也可以。

怎样用VB来判断串口是否存在,是否被占用?是否有数据输入?

如下是检测串口是否存在,是否被占用的代码:

Option Explicit

Dim a As Integer

Private Sub Form_Load()

MSComm1.Settings = "9600,n,8,1"

MSComm1.InputMode = comInputModeBinary '采用二进制传输

MSComm1.InBufferCount = 0 '清空接受缓冲区

MSComm1.OutBufferCount = 0 '清空传输缓冲区

MSComm1.RThreshold = 1 '产生MSComm事件

MSComm1.InBufferSize = 1024

Shape1.FillStyle = 0

OpenPortNum

End Sub

Private Sub OpenPortNum()

On Error GoTo uerror

For a = 1 To 16

MSComm1.CommPort = a

MSComm1.PortOpen = True

If MSComm1.PortOpen = True Then

Print "可用Com号= "; a

MSComm1.PortOpen = False

End If

Next

Exit Sub

uerror:

Print "出错或占用Com号= "; a

Resume Next

End Sub

如要探测某个COM口是否有数据输入则需在打开某个串口后,用OnComm事件来接收.

怎样在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.net2010十六进制读取串口的问题

不是很明白你的题意

strHex = strHex + [String].Format("{0:X2} "

这里的意思是把每个字节数据转换成了十六进制,每个字节占两个字符

如果你串口收到的4个字节数据:43,27,56,200

那么你的结果是:2B1B38C8

即receivebytes.Text="2B1B38C8"

不足两位的补0

如果你串口收到的4个字节数据:3,27,56,200

那么你的结果是:031B38C8

即receivebytes.Text="031B38C8"

vb.net 串口接收问题

不会吧!可能有些东西需要你打开。

例如: dtE 等,还有是不是 需要厂家的 API 或 SDK 啊

参数等。

要不就是打开方式不一样,例如使用文件方式打开 。


网页标题:vb.net查找可用串口 vb自动检测串口
转载注明:http://csdahua.cn/article/higpio.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流