天嵌 ARM开发社区

 找回密码
 注册
查看: 5691|回复: 2

关于QT应用程序串口接收数据解析显示

[复制链接]
一撇一捺 发表于 2014-5-2 14:48:27 | 显示全部楼层 |阅读模式
本帖最后由 一撇一捺 于 2014-5-3 15:10 编辑

RT,6410板子通过USB转串口外接了ZigBee协调器,有3个ZigBee模块传递数据给协调器,每个模块的传输的数据(15个字节,最后一位位空格)格式为“1T=00.0H=00Z=0 ”,1代表第一个模块,后面的有2和3,我在QT应用程序中添加了9个QLineEdit分别用来显示对应的温度湿度震动数据,代码如图,打开ZigBee开关窗口什么也不显示(buf为char buf[500]),如果将数据全显示到一个textbrowser上(QByteArray temp=readAll();)可以正常实时地显示所有传感器传来的数据,说明串口功能正常,问题是出在我对接收到数据解析上了,换了好多种方法,都不行。各位,有没有什么好的建议指点一下我,不甚感激!备注(ZigBee模块中定义的数据格式):#define APP_PAYLOAD_LENGTH        15;BYTE Tx_buffer[APP_PAYLOAD_LENGTH];if( myADD==ADDR1)Tx_buffer[0] = '1';
      if( myADD==ADDR2)Tx_buffer[0] = '2';
      if( myADD==ADDR3)Tx_buffer[0] = '3';
      
      Tx_buffer[1] = 'T';
      
      Tx_buffer[2] ='=';
      Tx_buffer[3]=display[2]+48;
      Tx_buffer[4]=display[1]+48;
      Tx_buffer[5]=46;
      Tx_buffer[6]=display[0]+48;Tx_buffer[7]='H';
      Tx_buffer[8]='=';
      Tx_buffer[9]=shidu_shi+0x30;
      Tx_buffer[10]=shidu_ge+0x30;
      
      Tx_buffer[11]='Z';
      Tx_buffer[12]='=';
      Tx_buffer[13]=Keyvalue+0x30;
      Tx_buffer[14]=' ';其中unsigned char display[5]={0x00,0x00,0x00,0x00,0x00};

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 一撇一捺 发表于 2014-5-4 22:34:01 | 显示全部楼层
TQ-lkp 发表于 2014-5-4 10:20
没看懂你的代码为啥buf会赋两次值 ,str1赋一次值
另外str1 = buf这个不对吧 str1 = QString(buf).mid(0, ...

嗯,管理员,谢谢你的回答,问题找到了,弯子绕 大了,直接对QByteArray temp=readAll();这个temp操作,获取字字符串后复制给QString ,就可以从QLineEdit里面显示出串口收到的数据了。我想问你一个问题,之前也发过帖子也问过两个管理员了,都没回复,你们提供的天嵌输入法库没有冒号:,很奇怪,不知道是我的原因还是其他,怎么弄输入的都没有,只有对应的分号;  ,光盘里面配套的系统烧写进去后打开输入键盘也没有冒号:,你们能不能把添加了冒号后的*.so库文件发布下呢?
回复 支持 0 反对 1

使用道具 举报

TQ-lkp 发表于 2014-5-4 10:20:00 | 显示全部楼层
没看懂你的代码为啥buf会赋两次值 ,str1赋一次值
另外str1 = buf这个不对吧 str1 = QString(buf).mid(0,len);
把你的str1打印出来看对不对,再解析
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-30 04:14 , Processed in 1.031257 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表