找回密码
 立即注册
收起左侧

串口数据输出的问题

4
回复
6190
查看
[复制链接]
累计签到:22 天
连续签到:1 天
来源: 2016-12-20 14:01:32 显示全部楼层 |阅读模式
5Qter豆
本帖最后由 lanyueliang805 于 2016-12-20 14:04 编辑

file:///C:\Users\www\AppData\Roaming\Tencent\Users\342878390\QQ\WinTemp\RichOle\%0A7{1WVLSTR%FB}4G]@52V.png
各位高手,请教个问题,我用两句输出,如下:
      QByteArray recvData=mserialport.readAll();
       ui->Tedtreceive->insertPlainText(recvData.toHex()); //显示为16进制数
       mstr=QString(recvData.toHex()); //输出结果为16进制
       ui->Tedtreceive->insertPlainText(mstr);
一句是串口读取的数据直接输出,一句是转换成QString类型输出,输出结果如下:


可以看到读出的数据是一样的,但是是穿插显示,并不是先显示完一组再显示另一组,请问这是怎么回事?

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册
回复

使用道具 举报

累计签到:59 天
连续签到:1 天
2016-12-20 14:12:20 显示全部楼层
最好是把代码贴一下。
回复

使用道具 举报

累计签到:22 天
连续签到:1 天
2016-12-20 14:16:23 显示全部楼层
jeffkuang 发表于 2016-12-20 14:12
最好是把代码贴一下。

  QByteArray recvData=mserialport.readAll();
       ui->Tedtreceive->insertPlainText(recvData.toHex()); //显示为16进制数
       mstr=QString(recvData.toHex()); //输出结果为16进制
       ui->Tedtreceive->insertPlainText(mstr);
就是这几句代码
回复

使用道具 举报

累计签到:104 天
连续签到:1 天
2016-12-21 10:17:21 显示全部楼层
lanyueliang805 发表于 2016-12-20 14:16
QByteArray recvData=mserialport.readAll();
       ui->Tedtreceive->insertPlainText(recvData.toHe ...

很明显,问题出在  mstr=QString(recvData.toHex());这一句,先不要用这种转换方式,尝试for循环单个字节转换拼接。
回复

使用道具 举报

累计签到:22 天
连续签到:1 天
2016-12-21 11:05:33 显示全部楼层
godmaycry 发表于 2016-12-21 10:17
很明显,问题出在  mstr=QString(recvData.toHex());这一句,先不要用这种转换方式,尝试for循环单个字节 ...

嗯,我也发现了,而且串口的数据并不是一次输出来的
单个字节转换怎么操作呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了