MSC 控件 一半概率丢失 第一位数据(HEX),返回的20个HEX数据,该怎么解决

MSC 控件 一半概率丢失 第一位数据(HEX),返回的20个HEX数据
我有的是给单片机发送一组数据,单片机立即返回一组数据确认状态[code=VB][/code]

  MSComm1.CommPort = i '设置通信端口为COM1
  MSComm1.Settings = "9600,n,8,1" '设置串口参数无检验位
  MSComm1.InputMode = 1 '数字
  MSComm1.NullDiscard = False 'NULL字符从端口传送到接受缓冲区
  MSComm1.DTREnable = False 'DTR线无效
  MSComm1.EOFEnable = False '不寻找EOF符
  MSComm1.RTSEnable = False 'RTS线无效
  MSComm1.InBufferCount = 0 '清空接受缓冲区
  MSComm1.OutBufferCount = 0 '清空传输缓冲区

  MSComm1.RThreshold = 1 '产生MSC事件
  MSComm1.SThreshold = 1 ' 产生MSC事件
MSComm1.InBufferSize = 256 '接收缓冲区 默认为1024个字节
  MSComm1.OutBufferSize = 256
   
 MSComm1.PortOpen = True

End Sub
’发送数据
Private Sub Command2_Click()
 On Error Resume Next
Dim W(12) As Byte
Dim j As Integer

W(0) = &HEB
W(1) = &H90
W(2) = &HEB
W(3) = &H90
W(4) = Hex(Val(ID.Text))
W(5) = 0
W(6) = 0
W(7) = &H2
W(8) = &H55
W(9) = &H57
W(10) = &H55
W(11) = &HAA


MSComm1.Output = W





End Sub


Private Sub MSComm1_OnComm()‘接收数据
  Dim Inbyte() As Byte

 Select Case MSComm1.CommEvent
  Case comEvReceive
  Inbyte = MSComm1.Input
   
  For i = 0 To UBound(Inbyte) Step 1
   
  re.Text = re.Text & Hex(Inbyte(i)) & Chr("32")
  Next i
   
  Case comEvSend
  End Select

End Sub

------解决方案--------------------
参阅这个
用它来调试一下你的串口通信,如果OK,那么依据它来改写。
------解决方案--------------------
1)关注一下波特率是否正确。
2)一字节一触发事件根本用不着循环
3)网上多看看好的串口通讯接收的例子