当串口被占用后如何才能实现再判断下一个口是否可用?
我想判断当前口是否可用的时候,如果当前口被打开占用后,发现用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