在MSComm控件中用二进制方式读取串口,定义byte型数组,然后将Input直接赋给该数组。   
  With .MSComm1
     .CommPort = 1  ‘设置端口号
     .Settings = "38400,n,8,1"   '打开COM口,并设置其参数
     .PortOpen = True
     .InputLen = 0
     .InputMode = comInputModeBinary
  End With然后在MSComm控件的OnComm中:Private Sub MSComm_OnComm
Dim inch() As Tyte
    ReDim inch1(MSComm1.InBufferCount)
    inch = MSComm1.Input  'inch数组中即为串口中的数据
End Sub

解决方案 »

  1.   

    不需要进行转换!直接进行操作 :
     
    Dim vReceived As Variant
    Dim incmd() As ByteIf MSComm1.CommEvent = comEvReceive Then
        buffer = mscomm1.input
    end ifincmd = buffer 
    ''' 这里需要对com口返回的数据作处理,因为通常返回的数据根据物理硬件不同而不同,不一定就是只有4个位。'''以下假设返回的只有4位数据,则直接进行与操作
    If (buffer And 1) = 1 Then  '''十进制数据1对应 0001,对应第一个开关
        msgbox "第1个开关打开!"         
    end if   
      

  2.   

    buffer And 1   '''看不懂这句有什么用???
      

  3.   

    你到专家哪儿去问吧::www.vbio.tw