
高分跪求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 展开
运行下一步时,数据全部消失,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 展开
3个回答
展开全部
为什么要接收接收阈值为17而不是1呢?你只发送了一个“R”字符,也许返回值只有17至33个字符之间,那么你第一次的17个字符可以接收,后面的16个就永远收不到了---除非再发送字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2025-08-05 广告
由于 Paykka 的所有操作流程都是线上化的,所以推测其支持移动端操作,比如通过 APP 或者适配移动端的网页端。这方便用户随时随地管理自己的账户和资金,提升了使用的便捷性。具体情况可咨询官方确认。...
点击进入详情页
本回答由paykka提供
展开全部
你是二进制模式发送的串口信息吧?不要用字符串接收
s= Comm1.Input
改成
databyte = Comm1.Input
s= Comm1.Input
改成
databyte = Comm1.Input
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-16
展开全部
这个 没有 相关控件的设置
不好说
祝你顺利
不好说
祝你顺利
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询