麻烦各位帮我用VB编写一段接收程序,用mscomm控件

这是我用串口调试接收的数据026C026A026C026A026C026C02700270026C026C0267026A02690267026C026902690267... 这是我用串口调试接收的数据02 6C 02 6A 02 6C 02 6A 02 6C 02 6C 02 70 02 70 02 6C 02 6C 02 67 02 6A 02 69 02 67 02 6C 02 69 02 69 02 67 02 67 02 69 02 6C 02 70 02 6C 02 68 02 69 02 6B 02 6C 02 6C 02 6C 02 6C 02 6C 02 6C 02 6C 02 6E 02 6C 02 6C 02 67 02 67 02 69 02 6A 02 6C 02 69 02 69 02 6B 02 67 02 69 02 69 02 6A 02 6B 02 67 02 67 02 67 02 69 02 6C 02 6C 02 6C 02 6C 02 6A 02 6C 02 69 一共是120数据,将这些数据接收后存入一个数组中,因为这个数组我还要用来计算,谢谢了! 展开
 我来答
yxdssy
2011-04-15 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:139
采纳率:0%
帮助的人:48.6万
展开全部
这些数据都是16进制吗?用文本框来接收
Private Sub MSComm1_OnComm()
On Error GoTo Err
Dim ReceiveArr() As Byte ' 接收数据数组
Dim receiveData As String ' 数据暂存
Dim Counter As Integer ' 接收数据个数计数器
Dim I As Integer ' 循环变量
If (MSComm1.InBufferCount > 0) Then
Counter = MSComm1.InBufferCount ' 读取接收数据个数
receiveData = "" ' 清缓冲

ReceiveArr = MSComm1.Input ' 数据放入数组

For I = 0 To (Counter - 1) Step 1 ' 数据格式处理

If (ReceiveArr(I) < 16) Then
receiveData = receiveData & "0" + Hex(ReceiveArr(I)) ' 小于16,前面加0
Else
receiveData = receiveData & Hex(ReceiveArr(I))
End If

Next I
text1.Text = text1.Text + receiveData
text1.SelStart = Len(text1.Text)
End If
Err:
End Sub
接收完数据就是字符串,然后再用循环MID(text1,2*n+1,2)存入数组就行了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式