首页| 论坛| 消息

标题:【求教->已解决】串口收到的数据如何转为十六进制数(请看7L)
作者:davis45
日期:2010-08-10 10:37
内容:

接收数据:
if(MyCom_5->bytesAvailable()>8) //串口缓冲区大于8位再读取
{
QByteArray temp = MyCom_5->readAll();
qDebug()


#1 [davis45 08-10 11:36]
ASCII码的接收已经正常了,原来是我写ComboBox的时候写错了
现在接收十六进制的数有问题,收到的为QByteArray类型,可是内容不正确,正在调,希望能够调出来吧
#2 [davis45 08-10 13:25]
请问怎么样将串口收到的字节一个一个的读出来啊?
用QDataStream读取?
QDataStream out(MyCom_5);
while(!out.atEnd())
{
quint8 tmp = 0;
outinsertPlainText(QString("%1 ").arg(tempInt));
试了四五个小时了,实在不知道怎么解决……
最终问题转化为,如何将ASCII码转为16进制数?
#3 各位高手、大虾,教教俺吧 [davis45 08-10 15:47]
各位大虾,串口发的是十六进制数,如果我用
QByteArray temp = MyCom_5->readAll();
那么读取出来的必定是乱码,有什么方法能够将十六进制的数读取并显示出来呢?
#4 Re:各位高手、大虾,教教俺吧 [dbzhang800 08-10 17:01]
引用第3楼davis45于2010-08-10 15:47发表的 各位高手、大虾,教教俺吧 :
各位大虾,串口发的是十六进制数,如果我用
      QByteArray temp = MyCom_5->readAll();
那么读取出来的必定是乱码,有什么方法能够将十六进制的数读取并显示出来呢?
多看manual
QByteArray QByteArray::toHex () const
#5 Re:Re:各位高手、大虾,教教俺吧 [davis45 08-10 17:12]
引用第4楼dbzhang800于2010-08-10 17:01发表的 Re:各位高手、大虾,教教俺吧 :
多看manual
QByteArray QByteArray::toHex () const
.......
楼上的大虾,我在坛子里看到过这个函数,可是QT4.2.2中没有这个函数,请问有其他方法吗?
http://www.qtcn.org/bbs/read.php?tid=27826&keyword=%CA%AE%C1%F9%BD%F8%D6%C6

<< 1 2 >> (1/2)

回复 发表
主题 版块