我用Mscomm做了一个串口调试软件,下位机总共发上来77个字节的信文,可是无论我把inputlen属性设多大,却只能最多收到前8个字节的数据,只是为什么呀?我的inbuffersize=1024,已经很大了,谢谢
Private Sub MSComm2_OnComm()
Select Case MSComm2.CommEvent
Case comEvReceive
Call Rec_disp
End Select
MSComm2.PortOpen = False
End SubPublic Sub Rec_disp()
Dim Buffer() As Byte
Dim Arr() As Byte
Dim Recbuf() As Byte
Dim Recbufsum() As Byte
Static Intcount As Integer
Static Templen As Integer
Dim P, P1, N As Integer
Static Bufcount As Integer
Dim Chksum() As Byte
Dim Chkresult As Boolean
Dim Recsum() As Byte
Dim N_so_mode(7) As Byte
Dim Status(15) As Boolean Buffer = MSComm2.Input
Arr = Buffer
余下的省略了,到这步时,oncomm事件已经触发了,可是数组Arr里只有8个字节的内容,这是为什么呀??谢谢
Private Sub MSComm2_OnComm()
Select Case MSComm2.CommEvent
Case comEvReceive
Call Rec_disp
End Select
MSComm2.PortOpen = False
End SubPublic Sub Rec_disp()
Dim Buffer() As Byte
Dim Arr() As Byte
Dim Recbuf() As Byte
Dim Recbufsum() As Byte
Static Intcount As Integer
Static Templen As Integer
Dim P, P1, N As Integer
Static Bufcount As Integer
Dim Chksum() As Byte
Dim Chkresult As Boolean
Dim Recsum() As Byte
Dim N_so_mode(7) As Byte
Dim Status(15) As Boolean Buffer = MSComm2.Input
Arr = Buffer
余下的省略了,到这步时,oncomm事件已经触发了,可是数组Arr里只有8个字节的内容,这是为什么呀??谢谢
Private Sub MSComm2_OnComm()
Select Case MSComm2.CommEvent
Case comEvReceive
Call Rec_disp
End Select
MSComm2.PortOpen = False <--- 一轮接收就关闭了,那自然收不到后边的数据啦
End Sub需要这样:
Private Sub MSComm2_OnComm()
Select Case MSComm2.CommEvent
Case comEvReceive
if MSComm2.InBufferCount>=77 then
Call Rec_disp
End if
End Select
End Sub