为什么我用串口调试助手有发送没有收到?

feijian19820715 2008-06-13 11:35:28
确切说不是没有,而是似乎等缓存满了才有
我查资料,说是onreceivedata事件的调用是在spcomm初始化的时候在ReadIntervalTimeout属性中确定的,就是说数据接收后在没有存满buffer时,如果最后一个数据到达后等待readintervaltimerout毫秒,如果没有数据再进来就触发receivedata
可我的ReadIntervalTimeout已经设为1了,似乎还是等缓存满才有返回
并且发送多少缓存才满似乎也是随机的
这是怎么回事?
大家帮忙啊,我都痛苦两天了
谢谢!谢谢大家!
...全文
763 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
feijian19820715 2008-06-13
  • 打赏
  • 举报
回复
关了
还是那样
feijian19820715 2008-06-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 skylkj 的回复:]
spcomm默认是开了软流控的

软流控只有接收到#17才接收,遇到#19就关闭.可能你发的数据碰巧有个#17,所以就接收了

你说的情况把软流控关了试试
comm1.Inx_XonXoffFlow:=false;
comm1.Outx_XonXoffFlow:=false;
[/Quote]

收到!
谢谢!
不过我们串口测试环境不在办公室,我已经改了,一会再去看看
马上回来,谢谢!
AudiQ7 2008-06-13
  • 打赏
  • 举报
回复
没用过,我们都是直接用spcomm控件自己开发。
skylkj 2008-06-13
  • 打赏
  • 举报
回复
spcomm默认是开了软流控的

软流控只有接收到#17才接收,遇到#19就关闭.可能你发的数据碰巧有个#17,所以就接收了

你说的情况把软流控关了试试
comm1.Inx_XonXoffFlow:=false;
comm1.Outx_XonXoffFlow:=false;
skylkj 2008-06-13
  • 打赏
  • 举报
回复
你用的是串口调试助手还是用spcomm自己写程序啊?
先用第三方串口调试工具试试是不是一样的情况. 也可能是设备的问题.

从现象上,我觉得多半是流控的问题. 要弄清楚发数据的设备是否要求软流控或者硬流控?
feijian19820715 2008-06-13
  • 打赏
  • 举报
回复
是不是我贴子标题有问题
但想改改不了
斑竹能帮忙改了吗?
改成:为什么我用串口调试助手似乎只有缓存满了才有收到?

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧