请问如何将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)出现下标溢出的提示
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)出现下标溢出的提示
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
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
'如果你一字节一触发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)'第四字节