vb一次接收多个数据

PrivateSubMSComm1_OnComm()SelectCaseMSComm1.CommEventDimaAsVariantCasecomEvReceiveyy:... Private Sub MSComm1_OnComm()

Select Case MSComm1.CommEvent
Dim a As Variant
Case comEvReceive
yy: a = MSComm1.Input
If (a = "85") Then
GoTo yy
End If
Text8.Text = a
If MSComm1.InBufferCount <> 0 Then '必须要判断
GoTo yy
End If

End Select
End Sub
这样只能单个接收,我想连续接收四个数据 0x85+角度+角速度+角度值,分别显示在text1,text2,text3,text4,中,怎样实现,新手求指教
展开
 我来答
bxworks
2014-02-19 · TA获得超过291个赞
知道小有建树答主
回答量:360
采纳率:0%
帮助的人:406万
展开全部
这个要进行判断,根据上面同志的代码进行二进制接收,如果你的 这3个参数长度一样,就是用4字节就可以完成传输,那么当接收到0x85的时候开始计数,计数到 4的时候停止,完成一次数据采集,不过这样掉包也有可能造成数据错误,而且,如果数据里面有值=0x85也会造成数据错误,最好使用一个不常用的符号来进行约定 开始和结尾,一般约定结尾,或者使用效验方法对数据进行效验后+在最后一位进行发送。以进行数据效验。

MSComm1.RThreshold = 4 '按实际接收数据帧
这个设置为4按理是可以实现4字节一次接收产生OnComm的。
但是容易出现错误,建议每个字节都接收,从新约定 开始符号,和结束符号,自行来提取数据。
或者加 效验,不对就抛弃或者申请从发。
更多追问追答
追问
我接收的数据是以0x85为起始的,后边接着三个32位的数据,这该怎么实现???,可以用代码的形式解析一下吗
追答

身边没vb给你大概写下,你试试


还是刚才那句话,如果是数据中断或者数据中还有 0x85,那么整个程序都会乱掉。


超出字数限制,我传的附件。

zdingyun
2014-02-19 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48182
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部
接收模式设置为2进制方式。
MSComm1.InputMode = comInputModeBinary '数据通过 Input 属性以二进制形式取回
设置接收长度,在OnComm事件中按通信协议约定的数据格式接收。
更多追问追答
追问
能否贴上代码看一下,我实在不懂这个
追答
Private Sub Form_Load()
    MSComm1.Settings = "9600,n,8,1"
    MSComm1.InputMode = comInputModeBinary '数据通过 Input 属性以二进制形式取回
    MSComm1.PortOpen = True
    MSComm1.RThreshold = 4 '按实际接收数据帧
    txtReceive.Text = ""
End Sub

Private Sub MSComm1_OnComm()
    Dim recbyt() As Byte
    Dim i As Long
    Select Case MSComm1.CommEvent
        Case 2
            recbyt = MSComm1.Input
            For i = 0 To UBound(recbyt)
                txtReceive.Text = txtReceive.Text & Right("0" & Hex(recbyt(i)), 2)
            Next
            '这儿依据通信协议数据格式约定解析数据
    End Select
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
涐吢铱舊囿儚
2014-02-19 · TA获得超过488个赞
知道小有建树答主
回答量:512
采纳率:100%
帮助的人:588万
展开全部
这个是有“数据格式协议”的问题。
如果没有这些信息资料,无法对数据“解码还原”的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式