1、将RThreshold设为你希望接收到多少字节触发一次OnComm事件(如MSComm1.RThreshold=1则接收到1字节就触发一次);
2、若接收二进制,则将 MSComm1.InputMode = comInputModeBinary;若接收文本,则
MSComm1.InputMode = comInputModeText;
3、在OnComm事件中用TMP_VAR=MSComm1.Input读取接收内容(若是接收二进制,需用字节数组处理接收的内容)。

解决方案 »

  1.   

    Private Sub MSComm2_OnComm()
    Dim iInBuffCount As Integer
    Dim valRev As Variant
    Dim J As IntegerWith MSComm2
    On Error Resume Next
        Select Case .CommEvent
            Case comEvReceive  '值2,收到Rthreshold个字符。
                .NullDiscard = True
                iInBuffCount = .InBufferCount - 1
               .InputLen = 0
                If iInBuffCount Then
                   .InputMode = comInputModeText
                   Sleep (75)
                   EntDY .Input'               Label31.Caption = Hex(AD_HEX(valRev))
                Select Case Balance
                  
                   Case 1 '第一路采样
                     Str2 = Str2 + Val(EvtCut1)
                     'Str = Val(EvtCut1) * V * BiaoDing1 + Str
                     'Label20.Caption = Mid(Ascii(EvtCut1), 1, Len(Ascii(EvtCut1)))
                     i = i + 1
                     Label21.Caption = Str2
                     'Label22.Caption = Ascii(Str)
                     Label29.Caption = AD_HEX(EvtCut1)
                     Label23.Caption = i
     ...................................
               
                
              Case comEvSend '值1,在传输缓冲区中有比Sthreshold数少的字符;
              
              Case comEvEOF  '值7,收到文件结束字符;
              
              Case comEvRing '值6,检测到振铃信号;
              
              Case comEvCD   '值5,Carrier Detect线的状态发生变化;
              
              Case comEvDSR  '值4,Data Set Ready线的状态发生变化;
              
              Case comEvCTS  '值3,Clear To Send线的状态发生变化;
              
             '-----------错误的返回信息---------------;
             
              Case comEventBreak  '1001 接到一个中断信号;          Case comEventCTSTO  '1002 Clear To Send超时。规定时间内传输一个字符时Clear to send 线为低电平;          Case comEventDSRTO  '1003 data set ready超时。规定时间内传输一个字符时data set ready 线为低电平;          Case comEventFrame  '1004 帧错误。硬件检测到一帧错误;          Case comEventOverrun '1006 端口超速。字符丢失;          Case comEventCDTO    '1007 载波检测超时;          Case comEventRxOver  '1008 接受缓冲区溢出。          Case comEventRxParity '奇偶校验错;          Case comEventTxFull '传输缓冲区满;          Case comEventDCB '检索DCB时意外错;
             
        End Select
      End With
    End Sub