解决方案 »

  1.   

    试试:
    Dim bufInput As Viarant
    Dim strLine As String
    Dim strItem() As String
    Do
        If comLaser.InBufferCount > 0 Then
            RecData = ""
            Do
                If comLaser.InBufferCount >= 27 Then '如果接收缓冲区中存在完整数据记录
                   bufInput = comLaser.Input    '将接收缓冲区的数据(字符)赋值给变量bufInput
                   strLine = Replace(StrConv(bufInput, vbUnicode), vbCrlf, "")
                   strItem = Split(strLine, ",")              
                   Exit Do
                End If
            Loop
    strItem(1) 和 strItem(3) 中分别是你所要的数字。
      

  2.   

    推荐使用portmon软件辅助调试串口通讯程序。
      

  3.   

    假如接收的
    RecData是  "P00,24.23650,P05,00.12340" + CR + "CL"
    楼主的Mid用法有误:
    应该为:
    Format(Val(Mid(RecData, 4, 8)), "0.0000")进行外径读取
    Format(Val(Mid(RecData, 17 , 8)), "0.0000")进行偏心读取此外建议楼主MsComm控件的RThreshold 属性
    设置为28,完整接收后判断后进行数据处理。