请问如何将MSComm 控件 获取的值存入数组我目前需要将单片机发送的4个字节的数字接收到,并且存入data_1数组,其中data1_1(0)是接收到第一个字节数据,
data1_1(1)是接收到的第二字节数据,以此类推。我目前已经可以接收到数据了,但是我想把接收到的数据按字节分开并存入数组,如何实现呢?
希望高手帮助,在此谢过!!!Dim Buffer() As Byte
Dim str As String
Dim Arr() As Byte Buffer = MSComm1.Input
 MsgBox (Hex(Buffer(0)))
 MsgBox (Hex(Buffer(1)))
 MsgBox (Hex(Buffer(2)))
 MsgBox (Hex(Buffer(3)))输出来的结果buffer(0)可以成功输出,而buffer(1),buffer(2)和buffer(3)出现下标溢出的提示

解决方案 »

  1.   

    Dim Buffer() As Variant 
    Dim Arr() As Byte 
    Dim i As LongBuffer = MSComm1.Input 
    Redim Arr(Ubound(Buffer))For i = 0 To Ubound(Buffer)
        Arr(i) = Buffer(i)
    Next i
      

  2.   

    LZ:你的MsgBox中断了接收.
    1楼代码给出了正确思路:
    Option ExplicitPrivate Sub Form_Load()
        MSComm1.InputMode = comInputModeBinary
        MSComm1.Settings = "9600,n,8,1"
        MSComm1.RThreshold = 4
        MSComm1.PortOpen = True
    End SubPrivate Sub MSComm1_OnComm()
        Dim Buffer() As Byte
        Dim str As String
        Dim Arr() As Byte
        Dim i As Long
        Select Case MSComm1.CommEvent
            Case 2
            Buffer = MSComm1.Input
            ReDim Arr(UBound(Buffer))
            For i = 0 To UBound(Buffer)
                Arr(i) = Buffer(i)
                Debug.Print Arr(i)
            Next
        End Select
    End Sub
      

  3.   

    请看这个:http://download.csdn.net/source/1262066
      

  4.   


    '如果你一字节一触发mscomm事件,你如下做:
    Option Explicit
    Dim data_1(3) As Byte
    Private Sub MSComm1_OnComm()
       Static i As Integer   data_1(i) = MSComm1.Input
       i = i + 1
       If i >= 3 Then i = 0
    End Sub'如果你4字节一触发mscomm事件,你如下做:
    Option Explicit
    Dim data_1() As Byte
    Private Sub MSComm1_OnComm()
       data_1 = MSComm1.Input
    End Sub....
    x1 = data_(0)'第一字节
    x2 = data_(1)'第二字节
    x3 = data_(2)'第三字节
    x4 = data_(3)'第四字节