程序执行时,在读写串口或者打开串口的时候有时会出现软件停止不动,好像是死掉一样,过几十秒或者一两分钟后又可以往下执行了。这种情况有时候出现有时候没有,不知道这个
程序执行时,在读写串口或者打开串口的时候有时会出现软件停止不动,好像是死掉一样,过几十秒或者一两分钟后又可以往下执行了。这种情况有时候出现有时候没有,不知道这个是什么问题引起的假死?谢谢。 --------------------编程问答-------------------- 在代码中加入这句:DoEvents --------------------编程问答-------------------- 在编辑器里解释执行, 然后等到卡死的时候按下Ctrl+Break(右上角和Pause同一个键), 然后程序就会停在卡死的语句上了.
把停留出的这整段过程贴出来帮你看下. --------------------编程问答-------------------- 把代码附上来? --------------------编程问答--------------------
If MSComm1.portopen = False Then
MSComm1.portopen = true
End If
ReDim unSend(6) As Byte
Dim n As Integer
unSend(0) = &H7B
unSend(1) = 0
unSend(2) = 5
unSend(3) = Asc("R")
unSend(4) = Asc("Z")
Dim nTotal As Long
nTotal = 0
For n = 1 To 4
nTotal = nTotal + unSend(n)
Next
unSend(5) = nTotal And &HFF
unSend(6) = &H7D
MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferCount = 0
MSComm1.Output = unSend
Dim nNowTime As Long
nNowTime = timeGetTime
Do While timeGetTime - nNowTime < 100
If MSComm1.InBufferCount >= 10 Then
Exit Do
End If
DoEvents
Loop
If MSComm1.InBufferCount = 0 Then
GoTo EndFunc
End If
unRecieve = MSComm1.Input //有时候在这里死掉 --------------------编程问答-------------------- MSComm1.portopen = true //有时候在这里死掉
--------------------编程问答-------------------- 看看有没有虚拟串口打开?我以前也碰到过类似问题。 --------------------编程问答-------------------- 那说明你这个问题是操作硬件时出现的死机。你使用的是不是USB转串口的转换器?
建议换一个串口试一试。
补充:VB , 基础类