主题:timer 事件中,为什么两次发送和两次接收不对?
Private Sub Timer1_Timer()
Dim Buffer As Variant
Dim Data() As Byte
Dim i%, j%
Dim xu(0) As Byte '发送缓冲
Dim str As String
'查询A参数-----------------------------------------------------------------
buff(0) = &H3B
buff(1) = &H20
buff(2) = &H11
i = CRC_CITT(1)
MSComm1.OutBufferCount = 0 '发送缓冲区的字节数清零
If MSComm1.PortOpen = True Then
For i = 0 To 4
xu(0) = buff(i)
MSComm1.Output = xu
Next i
End If
Buffer = MSComm1.Input
Data() = Buffer
For i = 0 To (UBound(Data) - 19)
'^^^^^处理第一次通讯的数据
Next
'----------------------------------------------------------------------------
'查询 B-----------------------------------------------------------------
buff(0) = &H3B
buff(1) = &H20
buff(2) = &H12
i = CRC_CITT(1)
MSComm1.OutBufferCount = 0 '发送缓冲区的字节数清零
If MSComm1.PortOpen = True Then
For i = 0 To 4
xu(0) = buff(i)
MSComm1.Output = xu
Next i
End If
Buffer = MSComm1.Input
Data() = Buffer
For i = 0 To (UBound(Data) - 9)
'处理第二次通讯的数据
Next
MSComm1.InBufferCount = 0
End Sub
调试的结果是 如果timer事件中只写 查询一次的通讯,那么均能正常通讯。
但是 如果timer事件中有两个通讯 则程序到第二个 就过不去了。
请指教 该如何处理
我现在的界面中 还需要通讯多次,因为不同的查询参数,对应的变量都要读回来。
我感觉在 timer事件中应该可以 做到 多个通讯的发送和接收,我这儿怎么过不去呢。
另外我把timer.interval 已经设置的时间很长了 1000ms
Dim Buffer As Variant
Dim Data() As Byte
Dim i%, j%
Dim xu(0) As Byte '发送缓冲
Dim str As String
'查询A参数-----------------------------------------------------------------
buff(0) = &H3B
buff(1) = &H20
buff(2) = &H11
i = CRC_CITT(1)
MSComm1.OutBufferCount = 0 '发送缓冲区的字节数清零
If MSComm1.PortOpen = True Then
For i = 0 To 4
xu(0) = buff(i)
MSComm1.Output = xu
Next i
End If
Buffer = MSComm1.Input
Data() = Buffer
For i = 0 To (UBound(Data) - 19)
'^^^^^处理第一次通讯的数据
Next
'----------------------------------------------------------------------------
'查询 B-----------------------------------------------------------------
buff(0) = &H3B
buff(1) = &H20
buff(2) = &H12
i = CRC_CITT(1)
MSComm1.OutBufferCount = 0 '发送缓冲区的字节数清零
If MSComm1.PortOpen = True Then
For i = 0 To 4
xu(0) = buff(i)
MSComm1.Output = xu
Next i
End If
Buffer = MSComm1.Input
Data() = Buffer
For i = 0 To (UBound(Data) - 9)
'处理第二次通讯的数据
Next
MSComm1.InBufferCount = 0
End Sub
调试的结果是 如果timer事件中只写 查询一次的通讯,那么均能正常通讯。
但是 如果timer事件中有两个通讯 则程序到第二个 就过不去了。
请指教 该如何处理
我现在的界面中 还需要通讯多次,因为不同的查询参数,对应的变量都要读回来。
我感觉在 timer事件中应该可以 做到 多个通讯的发送和接收,我这儿怎么过不去呢。
另外我把timer.interval 已经设置的时间很长了 1000ms