一个vb串口问题,会vb串口调试助手的帮帮忙

我用串口助手收到的数据是7E4500FFFF00000500010100000000CD8E7E我用自己做的接收的大多数也是7E4500FFFF0000050001010... 我用串口助手收到的数据是
7E 45 00 FF FF 00 00 05 00 01 01 00 00 00 00 CD 8E 7E
我用自己做的接收的大多数也是
7E 45 00 FF FF 00 00 05 00 01 01 00 00 00 00 CD 8E 7E
但是::::::经常会变成下面这样
00 01 01 00 00 00 00 CD 8E 7E
FF FF 00 00 05 00 01 01 00 00 00 00 CD 8E 7E
00 05 00 01 01 00 00 00 00 CD 8E 7E
01 01 00 00 00 00 CD 8E 7E
为什么啊???
程序如下:
Select Case MSComm.CommEvent
Case comEvReceive
MSComm.InputLen = 0
MSComm.InputMode = comInputModeBinary
strBuff = MSComm.Input
Instring() = strBuff
For i = 0 To UBound(Instring)
If Len(Hex(Instring(i))) = 1 Then
Buffer = Buffer & "0" & Hex(Instring(i)) & Chr(32)
Else
Buffer = Buffer & Hex(Instring(i)) & Chr(32)
End If
Next i
Text5.Text = Buffer
End Select
展开
 我来答
madfish73
2011-05-09 · 超过26用户采纳过TA的回答
知道答主
回答量:54
采纳率:100%
帮助的人:33.2万
展开全部
又是你?:)
我试了每间隔1秒发送一次,发了50条,都没有问题。

Private Sub MSComm1_OnComm()
Dim Instring() As Byte
Dim buffer As String

Select Case MSComm1.CommEvent
Case comEvReceive
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeBinary
Instring = MSComm1.Input
For i = 0 To UBound(Instring)
If Len(Hex(Instring(i))) = 1 Then
buffer = buffer & "0" & Hex(Instring(i)) & Chr(32)
Else
buffer = buffer & Hex(Instring(i)) & Chr(32)
End If
Next i
Text1.Text = Text1.Text & Chr$(13) & Chr$(10) & buffer
End Select
End Sub
更多追问追答
追问
用你的还是会出现错误,我已经翻了很多书了,可能是其他地方出问题了哦。

还有就是:每间隔1秒发送一次 这个语句怎么写。
我用了一个timer1,不过好像没起作用,可能是这个地方的问题吧。
追答
你的数据是哪里发送的?我是用串口调试助手发送你提供的数据,里面有设置每间隔多少秒自动发送。我也尝试过一次发送50条,接收也没有问题。不过我是用虚拟串口测试的(virtual serial port driver),不知道你的开发环境是什么样的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
47okey
2011-05-09 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5900
采纳率:75%
帮助的人:2411万
展开全部
晶振和波特率正确没?
追问
恩,是正确的,和串口助手设的都一样。它会显示完整的10多次,才有一次是缺少前面项的数据出现。所以和波特率应该是没有关系的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式