关于qt 串口数据的实时显示

weixin_38076068 2019-09-19 02:34:09
我最近在做个关于串口数据的实时显示,用了第三方库win_qextserialport,遇到个很奇怪的问题,请大家帮忙看一下:我接受到的数据为31位,即aa f0 24 B5 C4 53 a3 45 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff, 其中第一二位aa f0为标识,3,4位为X值, 5,6位为Y值,7,8位为Z值。我采用了EventDriven方式访问。在readmycom里按照如下写,QByteArray temp=mycom->readAll();bool ok;if (temp.startsWith(datastart){dtempx[i++]=temp.mid(intdatastartlen,2).toHex().toInt(&ok,16);memcpy(dDatax,dTempx,500*sizeof(double));saveData(dDatax)}这样写可以得到500个X值,这是正确的。但是如果我要同时取得Y和Z的值,我这样改写:QByteArray temp=mycom->readAll();bool ok;if (temp.startsWith(datastart){dtempx[i++]=temp.mid(intdatastartlen,2).toHex().toInt(&ok,16);dtempy[i++]=temp.mid(intdatastartlen+2,2).toHex().toInt(&ok,16);dtempz[i++]=temp.mid(intdatastartlen+4,2).toHex().toInt(&ok,16);memcpy(dDatax,dTempx,500*sizeof(double));memcpy(dDatay,dTempy,500*sizeof(double));memcpy(dDataz,dTempz,500*sizeof(double));saveData(dDatax)save Data(dDatay)save Data(dDataz)}然而我得到了:X值:4192 0 0 4193 0 0 Y值:0 4192 0 0 4193 0 Z值:0 0 4192 0 0 4193即为是么同一个事件中,X,Y和Z的值不是4192 4192 4192 ? X Y Z 的值不能同时取得,会有0 出现?谢谢!
...全文
63 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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