Dim b() As Byte '定义数组
Private Sub Timer1_Timer()
dim k2
redim aa(0 To 5)
aa = MSComm1.Inputk2 = Int(aa(0) * 255 + aa(1) * 1)
p11 = Int(aa(2) * 255 + aa(3) * 1)
p22 = Int(aa(2) * 255 + aa(5) * 1)这三句,在运行几个循环后,老是提示“下标越界”,
k2的值发来的应该一直是1,但明显循环几次后这里自己变了。这是我的调试跟踪输出:帮忙看一一下
实验:
---------
K2= 1
P11= 111
P22= 222
___________
---------
K2= 479
---------
K2= 1
P11= 111
P22= 222
___________
---------
K2= 249
---------
K2= 1
P11= 111
P22= 222
___________
---------
K2= 503
---------
K2= 509
---------
K2= 1
P11= 111
P22= 222
___________
---------
K2= 255
---------
K2= 1
P11= 111
P22= 222
___________
---------
K2= 3059
---------
K2= 249
---------
K2= 1
P11= 111
P22= 222
___________
---------
K2= 477
---------
K2= 1
P11= 111
P22= 222
___________K2= 255
K2= 495
P11= 111
K2= 1 p11 p22信号一直正确,即使我改:k2 = Int(aa(0) * 255 + aa(1) * 1)
为k2=aa(0) ,也是“下标越界”,难到aa(0)数组真的有问题?
Private Sub Timer1_Timer()
dim k2
redim aa(0 To 5)
aa = MSComm1.Inputk2 = Int(aa(0) * 255 + aa(1) * 1)
p11 = Int(aa(2) * 255 + aa(3) * 1)
p22 = Int(aa(2) * 255 + aa(5) * 1)这三句,在运行几个循环后,老是提示“下标越界”,
k2的值发来的应该一直是1,但明显循环几次后这里自己变了。这是我的调试跟踪输出:帮忙看一一下
实验:
---------
K2= 1
P11= 111
P22= 222
___________
---------
K2= 479
---------
K2= 1
P11= 111
P22= 222
___________
---------
K2= 249
---------
K2= 1
P11= 111
P22= 222
___________
---------
K2= 503
---------
K2= 509
---------
K2= 1
P11= 111
P22= 222
___________
---------
K2= 255
---------
K2= 1
P11= 111
P22= 222
___________
---------
K2= 3059
---------
K2= 249
---------
K2= 1
P11= 111
P22= 222
___________
---------
K2= 477
---------
K2= 1
P11= 111
P22= 222
___________K2= 255
K2= 495
P11= 111
K2= 1 p11 p22信号一直正确,即使我改:k2 = Int(aa(0) * 255 + aa(1) * 1)
为k2=aa(0) ,也是“下标越界”,难到aa(0)数组真的有问题?
解决方案 »
- activereport一行怎样能显示两条数据??????????????
- 票据打印的问题,请进!!!
- 怎么写一个函数使文本框变色
- ACCESS中的ole图片如何保存回图片格式?
- 兄弟们,做一份调查,请大家谈谈关于自已想开发什么样的软件,以及市场上会需要什么软件(内详)
- 这里真的没有高手,我的简单问题一直没有答案
- MSComm1.InBufferCount 显示为22,但接收后 却没有数据 是怎么回事
- 简单的问题,为什么用ado连接带有密码的access数据库会发生错误
- 菜鸟级问题:如何实现windows中查找文件的browse功能?
- 编写函数和方法的问题
- (新手初学)第二个碰到的问题,关于TAB键,谢谢!!
- 菜鸟问题
我这是一个接受二进制显示为十进制的代码:但运行时提示“下标越界”,有时能正确显示运行
一会,再出错误下标越界提示,
Dim x1, k1, k2
Dim p11, p22 '定义变量
Dim aa() As Byte '定义数组Private Sub Command1_Click() '
Timer1.Enabled = True
End Sub
Private Sub Command2_Click() '退事程序,定时器1无效,
Timer1.Enabled = False
Cls '
Unload Me
End SubPrivate Sub Form_Load() '初始化
Timer1.Enabled = False '定时器1无效
Timer1.Interval = 100 '定时器1
Timer2.Enabled = True '定时器2有效
Timer2.Interval = 1000 '定时器2
Picture1.ScaleMode = 0 '定义纵横坐标
MSComm1.CommPort = 1 '设定端口号
MSComm1.Settings = "9600,n,8,1" '设定通讯波特率
MSComm1.InputLen = 6 '输入缓冲区为6个字符
MSComm1.InBufferSize = 256 '
MSComm1.OutBufferSize = 256 '
MSComm1.InputMode = comInputModeBinary '以二进制传输
MSComm1.OutBufferCount = 0 '清空
MSComm1.InBufferCount = 0 '
End Sub
Private Sub Timer1_Timer() '定时器1有效,触发接收事件
MSComm1.PortOpen = True '打开端口
ReDim aa(0 To 5) '定义动态数组
k1 = 0
If k1 = 0 Then MSComm1.Output = "1" + Chr(10) + Chr(13)
Do While MSComm1.InBufferCount = 0
Loop
aa = MSComm1.Input '接收数据存入数组
If aa(0) >64 Then GoTo xxx: 'k2 = Int(aa(0) * 255 + aa(1) * 1)
Select Case k2
Case 1p11 = Int(aa(2) * 255 + aa(3) * 1)p22 = Int(aa(4) * 255 + aa(5) * 1)
Case Else
End Select
k1 = k1 + 1
If k1 > 2 Then k1 = 0
xxx:
MSComm1.PortOpen = False
End SubPrivate Sub Timer2_Timer()
x1 = x1 + 1 '时间增加为1S
Text1.Text = Str(p11) '输出
Text2.Text = Str(p22) '输出
Text3.Text = Str(x1) '
End Sub