Foxtable(狐表)用户栏目专家坐堂 → 串口接收错误


  共有2225人关注过本帖树形打印复制链接

主题:串口接收错误

帅哥哟,离线,有人找我吗?
dtcuiwww
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:406 威望:0 精华:0 注册:2013/2/22 14:52:00
串口接收错误  发帖心情 Post By:2015/7/18 9:57:00 [只看该作者]

下面是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个字节的字节流,请问如何解决。


 回到顶部