|
本帖最后由 miling 于 2014-4-28 11:38 编辑
要写一个QT的串口数据处理软件,因为还用到数据帧协议,得把数据转成字节数组,再分析数组的数得到有用数据。但现在收数据成功了,但是转化的字节数组读出来的一直是乱码,用了很多方法,还是 不行。求解救!!~- void MainWindow::readData()
- {
- QByteArray temp = serial->readAll();
- QString buf;
- char bufInfo[16];
- for(int i = 0; i < temp.count(); i++)
- {
- QString s;
- s.sprintf("%x",(unsigned char)temp.at(i));
- bufInfo[i] = temp.at(i);
- buf += s;
- }
- console->insertPlainText(buf);
- QTextCursor conCursor = console->textCursor();
- conCursor.movePosition(QTextCursor::End);
- console->setTextCursor(conCursor);
- ui->statusBar->showMessage(tr("成功读取%1字节数据").arg(temp.count()));
- qDebug() << bufInfo[0];
复制代码 我第一个发的数据是0XA5,在PlainText里面显示的第一个数据也是A5,但是qDebug()读到的 bufInfo[0]就不是了!还用过其它方法,比如char *bufInfo; bufInfo = temp.data(),再 qDebug() << bufInfo[0]也不是A5,有时甚至是个“{”,还有char i = temp.data()[0];读出的i 也不是A5.还有定义一个QString i; i.sprintf("%x",(unsigned char)temp.at(0)); 结果qDebug() 出来的i居然是A5还有后面连着好几字节的数据。都不知道是什么情况! 希望谁能帮我看看!谢谢拉~
|
|