vb 串口读取数据错误,下标越界
串口接收到的数据js()是这样的:0xbb+数据+数据+数据+0xee。我现在想判断当js(1)等于0x18时执行IF语句,但是总是提示说下标越界,为什么??具体程序:P...
串口接收到的数据js()是这样的:0xbb+数据+数据+数据+0xee。我现在想判断当js(1)等于0x18时执行IF语句,但是总是提示说下标越界,为什么??
具体程序:
Private Sub Comm1_OnComm()
Dim js() As Byte '定义接收数据
'处理接收数据
Select Case Comm1.CommEvent
Case 2
js = Comm1.Input
'接收数据处理
If (Right("0" & Hex(js(1)), 2) = 18) Then '出错的地方
If kaitai = 0 Then
kaitai = 1
TextReceive.Text = "1号台申请开台!"
Else
MsgBox ("已经开台!")
End If
Else
MsgBox ("未定义!")
End If
End Select
End Sub
哪位可以帮我改正一下? 展开
具体程序:
Private Sub Comm1_OnComm()
Dim js() As Byte '定义接收数据
'处理接收数据
Select Case Comm1.CommEvent
Case 2
js = Comm1.Input
'接收数据处理
If (Right("0" & Hex(js(1)), 2) = 18) Then '出错的地方
If kaitai = 0 Then
kaitai = 1
TextReceive.Text = "1号台申请开台!"
Else
MsgBox ("已经开台!")
End If
Else
MsgBox ("未定义!")
End If
End Select
End Sub
哪位可以帮我改正一下? 展开
2个回答
展开全部
你下位机返回的字节必须是2或2字节以上:
Option Explicit
Dim kaitai
Private Sub Comm1_OnComm()
Dim js() As Byte '定义接收数据
'处理接收数据
Select Case Comm1.CommEvent
Case 2
js = Comm1.Input
'接收数据处理
If (Right("0" & Hex(js(1)), 2) = "18") Then '出错的地方
If kaitai = 0 Then
kaitai = 1
TextReceive.Text = "1号台申请开台!"
Else
Label1 = "已经开台!"
End If
Else
Label1 = "未定义!"
End If
End Select
End Sub
Private Sub Form_Load()
Comm1.InputMode = comInputModeBinary
Comm1.RThreshold = 1
Comm1.InputLen = 0
Comm1.PortOpen = True
End Sub
Option Explicit
Dim kaitai
Private Sub Comm1_OnComm()
Dim js() As Byte '定义接收数据
'处理接收数据
Select Case Comm1.CommEvent
Case 2
js = Comm1.Input
'接收数据处理
If (Right("0" & Hex(js(1)), 2) = "18") Then '出错的地方
If kaitai = 0 Then
kaitai = 1
TextReceive.Text = "1号台申请开台!"
Else
Label1 = "已经开台!"
End If
Else
Label1 = "未定义!"
End If
End Select
End Sub
Private Sub Form_Load()
Comm1.InputMode = comInputModeBinary
Comm1.RThreshold = 1
Comm1.InputLen = 0
Comm1.PortOpen = True
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据类型不一致。。。
If js(1) = &H18 Then 不行吗?
If js(1) = &H18 Then 不行吗?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询