谁给个详细点的例子(XK3130型(KINGBIRD)称重显示仪)非常感谢~~读出来乱码,反应还比较慢,怎么能一次性读出这个数据给一个文本框
Private Sub Form_Load()
  With MSComm
    .CommPort = 1 '设置Com1为通信端口
    .Settings = "1200,E,7,1"
    '设置通信端口参数 9600赫兹、偶校验、7个数据位、1个停止位.(这里需要进一步说明的是:.Setting=”BBBB,P,D,S”。
    '含义是:B:Baud Rate(波特率);P:Parity(奇偶);D:Data Bit;S:Stop Bit)    .InBufferSize = 40 '设置缓冲区接收数据为40字节
    .InputLen = 1 '设置Input一次从接收缓冲读取字节数为1
    .RThreshold = 1 '设置接收一个字节就产生OnComm事件
  End With
End Sub
Private Sub DelayTime()
  Dim bDT As Boolean
  Dim sPrevious As Single
  Dim sLast As Single
  bDT = True
  sPrevious = Timer '(Timer可以计算从子夜到现在所经过的秒数,在Microsoft Windows中,Timer函数可以返回一秒的小数部分)
  Do While bDT
    If Timer - sPrevious >= 0.3 Then bDT = False
  Loop
  bDT = True
End SubPrivate Sub SwichVar(ByVal nNum As Integer)
  DelayTime
  var = Null
  var = MSComm.Input
  Out(nNum) = var(0)
End SubPrivate Sub cmdReadWeight_Click()
'nRece = 0 '计数器清零
  With MSComm
    .InputMode = comInputModeBinary '设置数据接收模式为二进制形式
    .InBufferCount = 0 '清除接收缓冲区
    If Not .PortOpen Then
      .PortOpen = True '打开通信端口
    End If
  End With
End Sub 
Private Sub MSComm_OnComm()
DelayTime   '用来延续时间
    With MSComm
        Select Case .CommEvent  '判断通信事件
            Case comEvReceive:  '收到Rthreshold个字节产生的接收事件
                SwichVar 1
                If Out(1) = 2 Then  '判断是否为数据的开始标志
                    .RThreshold = 0   '关闭OnComm事件接收
                End If
                Do
                    DoEvents
                Loop Until .InBufferCount >= 3  '循环等待接收缓冲区>=3个字节
'                nRece = nRece + 1
                For i = 2 To 12
                    SwichVar i
                    Text1.Value = Text1.Value & Chr(Out(i))
                Next
                Text1.Text = LTrim(Text1.Text)
                Text2.Text = Text2.Text & CStr(nRece)
                .RThreshold = 1  '打开MSComm事件接收
            Case Else
            '   .PortOpen = False
        End Select
    End With
End Sub
Private Sub Text1_Change()
  Text3.Text = CText(Text1.Text) - CText(Text2.Text)
End Sub