我想判断当前口是否可用的时候,如果当前口被打开占用后,发现用For循环的时候,不论i如何增加,实际上.CommPort = i始终是固定为当前已经占用打开的串口上,不管之后的串口是否真实存在.比如说是串口2被占用打开了,那么继续从i=3开始的判断.CommPort都是固定在2口上,Err.Number也始终是8005,非要先关闭串口2之后再循环不存在的串口才会报8002
如果是这样的话,当其它程序使用了串口后我还想判断可以使用的串口怎么才能避免这种情况?先管点其它程序的所使用的串口号似乎不太合适. With MSComm1
On Error Resume Next
If 通信端口 = 0 Then
For i = 1 To 8
'i = 1
.CommPort = i
.PortOpen = True
If Err.Number = 0 Then
读取 = "DD2C"
Call 转换.校检(读取)
buf(0) = &HAA
buf(1) = &HD1
buf(2) = &H22
buf(3) = Val("&h" & 校检1)
buf(4) = Val("&h" & 校检2)
buf(5) = &HBB
MSComm1.Output = buf
End If
If Err.Number = 0 Then MSComm1.PortOpen = False
Next
End With
如果是这样的话,当其它程序使用了串口后我还想判断可以使用的串口怎么才能避免这种情况?先管点其它程序的所使用的串口号似乎不太合适. With MSComm1
On Error Resume Next
If 通信端口 = 0 Then
For i = 1 To 8
'i = 1
.CommPort = i
.PortOpen = True
If Err.Number = 0 Then
读取 = "DD2C"
Call 转换.校检(读取)
buf(0) = &HAA
buf(1) = &HD1
buf(2) = &H22
buf(3) = Val("&h" & 校检1)
buf(4) = Val("&h" & 校检2)
buf(5) = &HBB
MSComm1.Output = buf
End If
If Err.Number = 0 Then MSComm1.PortOpen = False
Next
End With
解决方案 »
- 这段代码我不懂,哪位老大给解释下
- 兄弟姐妹们,给点意见!!散分
- Visual Graph可以做游戏开发工具!(送好玩的游戏源码)
- Dll : VC开发的Dll在VB中调用的参数问题(char*)!!!
- 100分求运行时可以动态设计报表的控件(最好有源码),up有分,分可以再加。
- 区域和语言选项 默认账户设置 如何用api实现
- 求助,如何解决错误462:远程服务器不存在或不可获得
- 1*1+2*2+3*3+4*4+...n*n
- 在Active DLL中应用ListBox控件作为参数,怎样定义才能从VB中传递Form中的一个ListBox?
- foolishtiger ---> 死笨猫,给我进来!
- 不知如何改?请高手指教?
- VBA 如何通过赋值运算将cells单元格的属性也复制过去
if mscomm1.portopen then
'端口打开的
else
'端口未打开
endif