接收Buffer时出错。改正如下:先将MSComm1的InputMode 属性设置为 comInputModeBinary
Private Static Sub MSComm1_OnComm()
    Dim btBuffer() as Byte
    Dim i as Intege
    Dim strTemp as String    Dim EVMsg$
    Dim ERMsg$
    
    ' Branch according to the CommEvent property.
    Select Case MSComm1.CommEvent
        ' Event messages.
        Case comEvReceive
       
            btBuffer = MSComm1.Input
            MsgBox ("passed!")
            
            For i=LBound(btBuffer) To UBound(btBuffer)
               strTemp=strTemp & Chr(CInt(btBuffer(i)))
            Next            Text1.Text = strTemp
          MSComm1.InBufferCount = 0 '清除发送缓冲区数据          MSComm1.OutBufferCount = 0 '清除接收缓冲区数据
       End Select
End Sub

解决方案 »

  1.   

    MSComm1.inputlen=1 或其它非0值,
    不过最好不好在这CommEvent事件接收数据
      

  2.   

    1、MSComm1.InputMode = comInputModeBinary 有没有进行设置?
    2、可以将btBuffer数组中的Byte字节进行十六进制转换,如下:
       For i=LBound(btBuffer) To UBound(btBuffer)
           strTemp=strtemp & Chr(CInt(Hex(btBuffer(i)))
       Next
       (注:没有显示字符有可能对方传给你的是十六进制,比如“0”字符,十六进制为‘30’,十进制为‘48’,当Chr(48)时显示为“0”,但当Chr(30)时为不可见字符。)
      

  3.   

    收&H00时小心些,别掉了,大多数问题在这
      

  4.   

    MoQi_123(老莫的春天), jlinhua(laolin) ,kevincomein(白菜):
      大家好!
     首先很感谢大家,对我的帮助与支持。
     我的串口通信问题,今天终于搞定了。
     不过,小弟还有一个问题,就是如何给你们给分,是不是不是由我自己来控制的,我进入管理界面后,总提示密码错误,你无权结贴 。
      可我的密码是对的呀。
    大家知道吗?