当前位置:编程学习 > VB >>

程序执行时,在读写串口或者打开串口的时候有时会出现软件停止不动,好像是死掉一样,过几十秒或者一两分钟后又可以往下执行了。这种情况有时候出现有时候没有,不知道这个

程序执行时,在读写串口或者打开串口的时候有时会出现软件停止不动,好像是死掉一样,过几十秒或者一两分钟后又可以往下执行了。这种情况有时候出现有时候没有,不知道这个是什么问题引起的假死?谢谢。 --------------------编程问答-------------------- 在代码中加入这句:
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 ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,