下面是DataReceived事件的代码
Dim cnt As Integer = Ports("COM1").BytesToRead
If cnt > 0 Then '缓冲区是否有数据
Ports("COM1").Read(sj,0,cnt)
End If
Vars("bz") = 1 + Vars("bz")
Vars("len") = cnt
这是初始化代码
Ports.Add("COM1")
With Ports("COM1")
.Close()
.Parity = Parity.None
.Handshake = Handshake.None
.StopBits = StopBits.One
.BaudRate = 38400
.DataBits = 8
.ReadBufferSize() = 4096
.WriteBufferSize() = 2048
.Open
End With
sj(0 to 127) 在全局BYTE的数组变量
我测试了一下,当接收的字节大于8个就出问题了,例如接收22个字节,cnt为6,而不是22,
cnt = 6 好像是 22 - 2*8 得到的 也就是串口接收只能接收小于8个字节的字节流,请问如何解决。