要做一个界面,需要两个端口,假如已经打开一个串口,并处于工作状态,此时我要另一个端口工作,怎么自动判断这个端口不处于工作状态?
哪位大虾能帮个忙,我感激不尽。

解决方案 »

  1.   

    http://topic.csdn.net/u/20080924/08/d248aa72-530c-4fdc-a60a-f6af3213033e.html
      

  2.   

    Option Explicit
        Dim a As Integer
        Dim blnAutoSendFlag As Boolean
        Dim openFlag As BooleanPrivate 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 SubPrivate 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
                Exit For
                'MSComm1.PortOpen = False
            End If
        Next
        Exit Sub
    uerror:
        Print "出错或占用Com号= "; a
        Resume Next
    End Sub
      

  3.   

    首先感谢楼上一下
    楼上能否进一步的改改 ,因为我的电脑上有COM3 ,COM5这两个是蓝牙通信端口,真正的端口是COM6与COM7是串口,我该怎么避免。
    我用楼上的程序调试后,打开的是Com3口,不是我需要的,我该怎么办?
      

  4.   

    Private Sub OpenPortNum()
        On Error GoTo uerror
        For a = 6 To 16
            MSComm1.CommPort = a
            MSComm1.PortOpen = True
            If MSComm1.PortOpen = True Then
                Print "可用Com号= "; a
                Exit For
                'MSComm1.PortOpen = False
            End If
        Next
        Exit Sub
    uerror:
        Print "出错或占用Com号= "; a
        Resume Next
    End Sub
      

  5.   

    楼上的已经提供了怎么判断一个端口是否可用了。
    但是不能判断是否是串口(com口).
    判断这个具体是否是串口(com口) 用vb的com控件 我的方法是发命令,根据命令回码来判断。就好像猫口发命令与收命令是一致的这类情况。假如还是不行 可以试试api 具体查资料才知道行不行
      

  6.   

    工作与否的概念是是否打开?打开表示工作,未打开表示未工作?那看看这个:
    http://download.csdn.net/source/1339593
    CreateFile返回0,表示串口在工作。反之返回1
      

  7.   

    其实楼主可以在本地建个配置文件,是哪个Com口,就把该参数配成几,产品和项目都应该是如此做法;不要拘泥于代码实现,更重要的是解决的问题的思想;希望我的见解对楼主能起到帮助作用。