Private Sub MSCommTracer_OnComm() Dim i As Long Dim BufferText As String Dim Rtmp Dim tempStr As String Dim MScommInput As String Dim mscomminputLen As Integer Dim Tp As Variant For i = 0 To DelayLoop '40000000 Next MScommInput = MSComm.Input mscomminputLen = Len(MScommInput) MSCommTracer.InBufferCount = 0 labLen.Caption = "0" RTB1.Text = MScommInput MSCommTracer.InBufferCount = 0
If MScommInput <> "" And MScommInput <> vbCrLf Then BufferText = BufferText & MScommInput If MSCommTracer.InBufferCount <> 0 Then Do BufferText = BufferText & MScommInput Loop Until MSCommTracer.InBufferCount = 0 End If MSCommTracer.InBufferCount = 0 ReceiveStr = BufferText Tp = Split(ReceiveStr, vbCrLf) End If End Subdata bit:7 parity:none flow control:Xon/RTS HandShaking 0-comxlone inbuffersize:1024 out:512 inputmode:0-cominputmodetext
For i = 0 To DelayLoop '40000000'先把这个延迟去掉 Next
For i = 0 To DelayLoop '40000000 Next 换成 sdate = Now() N = MSComm1.InBufferCount Do While DateDiff("s", sdate, Now) < 8 If N >= 3 Then Exit Do Else N = MSComm1.InBufferCount End If Loop 试试
Dim i As Long
Dim BufferText As String
Dim Rtmp
Dim tempStr As String
Dim MScommInput As String
Dim mscomminputLen As Integer
Dim Tp As Variant
For i = 0 To DelayLoop '40000000
Next MScommInput = MSComm.Input
mscomminputLen = Len(MScommInput)
MSCommTracer.InBufferCount = 0
labLen.Caption = "0" RTB1.Text = MScommInput MSCommTracer.InBufferCount = 0
If MScommInput <> "" And MScommInput <> vbCrLf Then
BufferText = BufferText & MScommInput
If MSCommTracer.InBufferCount <> 0 Then
Do
BufferText = BufferText & MScommInput
Loop Until MSCommTracer.InBufferCount = 0
End If
MSCommTracer.InBufferCount = 0
ReceiveStr = BufferText
Tp = Split(ReceiveStr, vbCrLf)
End If
End Subdata bit:7
parity:none
flow control:Xon/RTS
HandShaking 0-comxlone
inbuffersize:1024
out:512
inputmode:0-cominputmodetext
Next
Next
换成
sdate = Now()
N = MSComm1.InBufferCount
Do While DateDiff("s", sdate, Now) < 8
If N >= 3 Then
Exit Do
Else
N = MSComm1.InBufferCount
End If
Loop
试试