以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  串口接收错误  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=71802)

--  作者:dtcuiwww
--  发布时间:2015/7/18 11:31: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个字节的字节流,请问如何解决。


 


--  作者:狐狸爸爸
--  发布时间:2015/7/18 11:38:00
--  

串口是没有问题的,发送数据的时候,窗口可能不是一次收到,可能分几次收到,你累加一下看看吧

 


--  作者:dtcuiwww
--  发布时间:2015/7/18 15:03:00
--  

我用的是win7系统,是不是和系统有关,别的程序没有,只有这点串口程序,使了好多次了,现在到第12个数据后都是0


--  作者:dtcuiwww
--  发布时间:2015/7/18 15:57:00
--  

重新运行foxtable后第一次接收数据正确,以后就不行了。


--  作者:大红袍
--  发布时间:2015/7/19 10:46:00
--  
 请 上传测试例子和测试工具
--  作者:lk15502
--  发布时间:2019/3/18 19:13:00
--  
@楼主,我也碰到一样的情况:

重新运行foxtable后第一次接收数据正确,以后就不行了。

请问楼主是如何解决的??谢谢!