qt qbytearray 将接收数据存进数组_QT中使用用户协议通信,遇到一些问题。(更新——问题已解决)...

在QT串口通信中,当发送的数据在特定范围内时,接收到的数据出现错误。问题在于QByteArray处理超过127的数值时,前面的字节被误读。通过将数据“与上0xffff”解决了这个问题,确保无符号数的正确传输。更新说明,添加代码示例,问题最终得到解决。
摘要由CSDN通过智能技术生成

首先在QT端写一个基本串口功能界面,然后开始写协议通信过程:

1

流程中遇到一些小问题,比如偶尔飞控端接收到并返回后,但QT端接收失败等。但有一个问题一直得不到解决。

QT发送的数据在0x7E~0x99、0x17E~0x199、0x27E~0x299 ... ... ...范围内时,接收到返回回来的数据会出问题。

举个例子:

1

再比如:

1

接收部分代码如下:

if

想过一些办法,因为感觉上面错误的接收刚好差256,所以负数时加256。代码如下:

if

带随之问题从“发送正数饭回来负数”变成了“发送负数返回来正数”

接下来找找原因,或者想办法用其他操作补偿回来。。。

/分割线///

【更新——更新——更新】!!!!问题!解决啦!!!!终于!!!

先上图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值