以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 串口接收 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=71758) |
-- 作者:dtcuiwww -- 发布时间:2015/7/17 14:45:00 -- 串口接收 用串口调试助手给foxtable发数据,用Dim cnt As Integer = Ports("COM2").BytesToRead得到的字节数对,第二次,第三次再接收就不对了,波特率为38400,字节数34,除第一次正确,以后都是8,不知错在那里 |
-- 作者:大红袍 -- 发布时间:2015/7/17 14:59:00 -- 第一次争取,说肯定没问题。
肯定是你代码哪里写不对。代码写到 DataReceived 事件 |
-- 作者:dtcuiwww -- 发布时间:2015/7/17 15:25:00 -- 代码在 DataReceived 事件事件里,用的是字节接收帮助里的例程 |
-- 作者:大红袍 -- 发布时间:2015/7/17 15:26:00 -- 那就,不会有问题。 |
-- 作者:dtcuiwww -- 发布时间:2015/7/17 15:29:00 --
我换台机子式式
|
-- 作者:dtcuiwww -- 发布时间:2015/7/17 15:55:00 -- 换台机子还一样.两端都用串口助手,同样的波特率互发都没问题. |
-- 作者:大红袍 -- 发布时间:2015/7/17 15:57:00 -- 测试例子和测试工具都发上来 [此贴子已经被作者于2015/7/17 15:57:23编辑过]
|
-- 作者:dtcuiwww -- 发布时间:2015/7/18 9:32:00 -- 下面是DataReceived事件的代码
Dim cnt As Integer = Ports("COM1").BytesToRead If cnt > 0 Then \'缓冲区是否有数据 Vars("bz") = 1 + Vars("bz")
这是初始化代码 Ports.Add("COM1")
sj(0 to 127) 在全局BYTE的数组变量
我测试了一下,当接收的字节大于8个就出问题了,例如接收22个字节,cnt为6,而不是22, cnt = 6 好像是 22 - 2*8 得到的 也就是串口接收只能接收小于8个字节的字节流,请问如何解决。 |