首页| 论坛| 消息

标题:qt串口接收数据的处理
作者:lgqrs
日期:2012-06-01 17:55
内容:

串口接收的数据:1001,38,1001,44
void Widget::readMyCom()
{
QByteArray temp= myCom->readAll();
QString byte=QString(temp);
QString a=byte.left(4);
QString b=byte.mid(5,2);
QString c=byte.mid(13,2);
int d=b.toInt();
int e=c.toInt();
int f=e+d;
QString h=QString::number(f,10);
ui->textBrowser->insertPlainText(a);
ui->textBrowser_2->insertPlainText(h);
}
信号和槽的配置如下:
readTimer=new QTimer(this);
readTimer->start(100);
connect(readTimer,SIGNAL(timeout()),this,SLOT(readMyCom()));

为什么在ARM上运行,串口没有数据输入时就在textBrowser_2上显示一串0,并且一直不断的重复显示。
当有数据输入时,textBrowser_2上只是暂时性出现82,接着又重复显示0.而textBrowser上的显示是正确的1001。

难道不能在这里对数据进行处理?高手赐教~~~~跪求解答


#1 [lgqrs 06-03 09:43]
有知道原因的吗??
或者赐教下其它好用的串口接收数据处理然后将数据显示出来的办法....感激ing
#2 [loopolike 06-03 19:15]
ARM上跑的是linux吗
#3 [loopolike 06-03 19:16]
linux下的串口调试助手,我试过是没有问题的,我用的是yafeilinux的串口通信,你仔细检查你的基本数据,包括显示的变量
#4 回 1楼(lgqrs) 的帖子 [lgqrs 06-12 08:40]
跑的是LINUX,前几天没有时间看这块,多谢了 我再试试吧
#5 [0xffffh 06-12 09:20]
呵呵兄弟!没有对接收到的数据的个数进行判断,所以即使没有接收到数据,每一次Timeout后都会往textBrowsers是中插入一次数据,ByteArray是空的,QString在转换失败后会返回0的,所以textBrowser2会出现不正常,textBrowser1正常是因为没有数据时他是空的所以插入后你看不到变化。

<< 1 2 >> (1/2)

回复 发表
主题 版块