新浪微博
腾讯微博
会员列表
统计排行
基本信息
到访IP统计
管理团队
管理统计
在线会员
会员排行
版块排行
帖子排行
标签排行
帮助
下拉
用户名
电子邮箱
用户名
密 码
记住登录
登录
找回密码
注册
快捷通道
关闭
您还没有登录,快捷通道只有在登录后才能使用。
立即登录
还没有帐号? 赶紧
注册一个
首页
论坛
Qt下载
作品展
群组
个人中心
捐赠、管理与开发
邮件订阅
帖子
文章
日志
用户
版块
群组
帖子
搜索
QTCN开发网
>
Qt基础编程
>
串口通信的read函数
发帖
回复
返回列表
新帖
4457
阅读
4
回复
[提问]
串口通信的read函数
[复制链接]
上一主题
下一主题
离线
twodiamond
UID:128789
注册时间
2012-03-13
最后登录
2024-11-15
在线时间
132小时
发帖
80
搜Ta的帖子
精华
0
金钱
860
威望
92
贡献值
0
好评度
82
访问TA的空间
加好友
用道具
新手上路
关闭
个人中心可以申请新版勋章哦
立即申请
知道了
加关注
发消息
只看楼主
倒序阅读
楼主
发表于: 2016-04-12
— 本帖被 XChinux 从 Qt 作品展 移动到本区(2016-04-12) —
关于
串口
通信(非Qt5) - 如何知道串口已经接收完成一个完整的
数据
包(linux)?
现在的做法是:
com->write();
usleep(t); //t 表示睡眠的时间
com->read();
因为不同的write()得到的read()数据包长度不一定(10字节 ~ 250 字节),这个睡眠时间 t 只能按最大来设置,如果有办法知道串口收包完成,就不必等最大时间了。
谢谢!
共
条评分
回复
举报
分享到
淘江湖
新浪
QQ微博
QQ空间
开心
人人
豆瓣
网易微博
百度
鲜果
白社会
飞信
离线
labhome
UID:92674
注册时间
2010-02-28
最后登录
2025-04-14
在线时间
101小时
发帖
27
搜Ta的帖子
精华
0
金钱
262
威望
41
贡献值
2
好评度
32
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
1楼
发表于: 2016-04-12
无论是定长还是不定长,都应该有通讯协议,收到数据保存起来,根据协议求规则来解析出完整的数据。
共
条评分
回复
举报
离线
zhangcan
UID:150240
注册时间
2014-03-14
最后登录
2024-06-10
在线时间
95小时
发帖
26
搜Ta的帖子
精华
0
金钱
275
威望
36
贡献值
0
好评度
26
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
2楼
发表于: 2016-04-13
http://blog.csdn.net/caoshangpa/article/details/50915005
共
条评分
回复
举报
离线
twodiamond
UID:128789
注册时间
2012-03-13
最后登录
2024-11-15
在线时间
132小时
发帖
80
搜Ta的帖子
精华
0
金钱
860
威望
92
贡献值
0
好评度
82
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
3楼
发表于: 2016-04-14
多谢2位!
@labhome
串口链路层协议是有的,就像你说的,收到后缓存起来,然后再解包校验 - 但有没有可能接收一个完整的串口包后,再来解析呢?
@zhangcan
多谢例子工程!
情形是这样:除了串口232线程,还有一个gui线程和其它线程,串口线程只有很小的占有率,采用modbus协议,先发送,然后sleep等待,醒来后读串口,可能此时一个完整的应答包还没收完,然后再睡眠,再醒来接收,直到接收一个完整的包,最后来解析。
但串口类中有一个函数setTimeout(),好像是设置串口接收字符间隔的时间,当接收完一个字符,等待这么长的时间,没有下一个字符时,则任务一个串口包接收完成,但不知如何用这个机制来定义睡眠的时间?
谢谢!
本帖提到的人:
@labhome
@zhangcan
共
条评分
回复
举报
离线
z609932088
UID:165399
注册时间
2015-08-31
最后登录
2023-02-07
在线时间
83小时
发帖
207
搜Ta的帖子
精华
0
金钱
3121
威望
250
贡献值
0
好评度
240
访问TA的空间
加好友
用道具
侠客
加关注
发消息
只看该作者
4楼
发表于: 2016-04-14
可以定义包大小,默认收到多少了,就是完整包了,判定完成后,在解析不就好了
共
条评分
有阳光的地方就是青春
回复
举报
发帖
回复
返回列表
http://www.qtcn.org/bbs
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问
快速回复
限100 字节
您目前还是游客,请
登录
或
注册
进入高级模式
文字颜色
发 布
回复后跳转到最后一页
上一个
下一个
关闭
补充发布信息
验证码:
发 布
隐藏
快速跳转
站务及资讯
网站公告
新闻资讯
Qt官方发布
网站管理
Qt应用及资源
Qt 作品展
Qt代码秀
Qt应用版
Qt技术讨论区
Qt安装与发布
Qt中文处理
Qt基础编程
Qt QML开发
Qt嵌入式开发
Qt移动平台开发
其它技术开发讨论区
Qt图书专区
《C++ GUI Qt 4编程》(第2版)专栏
《Qt高级编程》专栏
《零基础学Qt4编程》专栏
《Qt设计模式》(第2版) 图书专栏
Python Qt GUI快速编程
Qt项目开发区
天池项目
Qt开放平台开发库
机械CAD
扇贝词典
非活跃项目区
社区中心
帖子回收站(Trash)
招聘、求职、供求、广告等
休闲娱乐
关闭
关闭
选中
1
篇
全选