用OnComm事件,怎样才能一个一个的读取串口发回得数据?
另外,vb里有没有delay(N毫秒)这样的函数?(sleep 不行,程序的运行不可停止)

解决方案 »

  1.   

    如果要高精度计时器用
    API函数QueryPerformanceFrequency和QueryPerformanceCounter
      

  2.   

    for i=0 to 1000000000
    next i
    '程序的运行停止
      

  3.   

    好像你并不需要那么精确吧,那么用API:GetTickCount 用起来也很简单
      

  4.   

    忘了举例子
    Private Declare Function GetTickCount& Lib "kernel32" ()
    Private Sub Form_Load()
        ret& = GetTickCount&
        MsgBox Str$(ret& / 60000) + " minutes."
    End Sub
      

  5.   

    只是comm读数据我没做过,抄一段代码:
    Private Sub MSComm1_OnComm() 
        Dim arrReceive(10) As Byte 
        Dim lngData As Variant '用来从接收缓冲区读取数据 
         On Error Resume Next 
         With MSComm1 
         Select Case MSComm1.CommEvent 
         Case comEvReceive 
         RThreshold = 0 '关闭OnComm事件接收 
         lngData = .Input '读取一个接收字节 
         arrReceive(0) = lngData(0) 
         lngData = .Input 
         arrReceive(1) = lngData(0) 
         lngData = .Input 
         arrReceive(2) = lngData(0) 
         lngData = .Input 
         arrReceive(3) = lngData(0) 
         lngData = .Input 
         arrReceive(4) = lngData(0) 
         lngData = .Input 
         arrReceive(5) = lngData(0) 
         lngData = .Input 
         arrReceive(6) = lngData(0) 
         lngData = .Input 
         arrReceive(7) = lngData(0) 
         If strFlag = "1" Then 
         lngData = .Input 
         arrReceive(8) = lngData(0) 
         lngData = .Input 
         arrReceive(9) = lngData(0) 
         End If 
         End Select 
         End With 
        End Sub