高分跪求vb大神解决一个串口通信问题(单步调试时接收的数据全部没了,不知道为什么) 80

刚开始,接收正常,接收17个字节,接收阈值为17运行下一步时,数据全部消失,byte从0to-1,好奇怪啊?用串口调试工具运行没问题!!!完整的代码:PrivateSub... 刚开始,接收正常,接收17个字节,接收阈值为17

运行下一步时,数据全部消失,byte 从0 to -1,好奇怪啊?

用串口调试工具运行没问题!!!
完整的代码:
Private Sub cmdClear_Click()
lb1Receive.Caption = ""
End Sub

Private Sub CmdExit_Click()
Comm1.PortOpen = False
End
End Sub

Private Sub Comm1_OnComm()
Dim databyte() As Byte, x_byte(4 To 7) AsInteger, s
Dim i As Integer, t As Long, x_value AsLong
Select Case Comm1.CommEvent
Case comEvCD
Case comEvCTS
Case comEvDSR
Case comEvRing
Case comEvReceive
s= Comm1.Input
databyte = s
For i = 4 To 7
x_byte(i) = (databyte(i + 1) And &HF0) / 16 * 10 + databyte(i + 1) And &HF
Next i
x_value = x_byte(4) + x_byte(5) * 100 +x_byte(6) * 10000 + x_byte(7) * 1000000
If databyte(1) = 0 Then
lb1Receive.Caption = x_value
ElseIf databyte(1) = 1 Then
lb1Receive.Caption = -x_value
End If
Case comEvSend
End Select
End Sub

Private Sub Form_Click()
Print i
End Sub

Private Sub Form_Load()
Comm1.PortOpen = True
Comm1.Output = "R"
End Sub
展开
 我来答
tystq
2013-04-16 · TA获得超过1203个赞
知道小有建树答主
回答量:943
采纳率:100%
帮助的人:909万
展开全部
为什么要接收接收阈值为17而不是1呢?你只发送了一个“R”字符,也许返回值只有17至33个字符之间,那么你第一次的17个字符可以接收,后面的16个就永远收不到了---除非再发送字符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
paykka
2025-08-05 广告
由于 Paykka 的所有操作流程都是线上化的,所以推测其支持移动端操作,比如通过 APP 或者适配移动端的网页端。这方便用户随时随地管理自己的账户和资金,提升了使用的便捷性。具体情况可咨询官方确认。... 点击进入详情页
本回答由paykka提供
百度网友bdb9803
2013-04-16 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:53%
帮助的人:1.1亿
展开全部
你是二进制模式发送的串口信息吧?不要用字符串接收
s= Comm1.Input
改成
databyte = Comm1.Input
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-16
展开全部
这个 没有 相关控件的设置

不好说

祝你顺利
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式