读书人

用逐话语或逐过程调试结果正确一旦

发布时间: 2012-12-14 10:33:07 作者: rapoo

用逐语句或逐过程调试,结果正确,一旦正常运行,总是出错
我是vb中菜鸟 ,求指点
Option Explicit

Private Sub cmdsend_Click()
Dim i, FsArr() As Byte
ReDim FsArr(7)
For i = 0 To 7
FsArr(i) = Val("&H" + Text发送(i))
Next i

MSComm1.Output = FsArr '发送字节数组
End Sub

Private Sub Cmdclear_Click()
Dim i
For i = 0 To 7
Text接收(i) = ""
Next i
End Sub



Private Sub Form_Load()
MSComm1.CommPort = 6 'COM端口

MSComm1.InputMode = comInputModeBinary '采用二进制传输


MSComm1.PortOpen = True '打开端口

End Sub
Private Sub MSComm1_OnComm()
Dim i, JsArr
If MSComm1.InBufferCount > 0 Then
JsArr = MSComm1.Input '从接收缓冲区取二进制数据
For i = 0 To UBound(JsArr) '显示8个接收数据
Text接收(i) = Hex(JsArr(i))
Next i

End If
End Sub
逐语句调试时正确的,但是运行时就只能接受到fsarr数组的后四位,求大侠几点

[最优解释]


Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub cmdsend_Click()
Dim i, FsArr() As Byte
ReDim FsArr(7)
For i = 0 To 7
FsArr(i) = Val("&H" + Text发送(i))
Next i

MSComm1.Output = FsArr '发送字节数组
End Sub

Private Sub Cmdclear_Click()
Dim i
For i = 0 To 7
Text接收(i) = ""
Next i
End Sub



Private Sub Form_Load()
MSComm1.CommPort = 6 'COM端口

MSComm1.InputMode = comInputModeBinary '采用二进制传输


MSComm1.PortOpen = True '打开端口

End Sub
Private Sub MSComm1_OnComm()
Dim i, JsArr
If MSComm1.InBufferCount > 0 Then
Sleep 30
JsArr = MSComm1.Input '从接收缓冲区取二进制数据
For i = 0 To UBound(JsArr) '显示8个接收数据
Text接收(i) = Hex(JsArr(i))
Next i

End If
End Sub


[其他解释]
大凡调试运行正常而编译后不正常的,都是代码运行速度太快,外部IO(串口,网络等)跟不上所致。
------其他解决方案--------------------


JsArr = MSComm1.Input '从接收缓冲区取二进制数据
'--你的问题很可能是这里和后面接的太紧密了,你在这里设置一个循环试试看

for i=0 to 1000
dovents
next i

For i = 0 To UBound(JsArr) '显示8个接收数据
Text接收(i) = Hex(JsArr(i))
Next i
[其他解释]

引用:
JsArr = MSComm1.Input '从接收缓冲区取二进制数据
'--你的问题很可能是这里和后面接的太紧密了,你在这里设置一个循环试试看

for i=0 to 1000
dovents
next i

For i = 0 To UBound(JsArr) '显示8个接收数据
Text接收(i) = Hex(JsArr(i))
Next i

问题很简单,就是下位机返回数据需要时间,所以你在Output和Input之间延迟片刻即可。
[其他解释]
谢谢各位,已解决!特别谢谢3楼!不过对于4楼的dovents函数不能直接引用,需要自己编写吗?我是vb新手,不过我大致动的了原理,谢谢!
[其他解释]
哈哈,dovents....雅琪MM是手误了,应该为doevents.

读书人网 >VB

热点推荐