标题:Qt笔记七:如何把从串口读到的数据转换为十六进制的字符
作者:青春岁月
日期:2011-06-24 17:43
内容:
//读取串口void MySerial::readMyCom(){QByteArray temp;if(myCom->bytesAvailable() >= 8){temp = myCom->readAll(); //读串口缓冲区数据}QDataStream out(&temp,QIODevice::ReadWrite);//将字节数组读入while(!out.atEnd()){qint8 outChar = 0;out>>outChar; //每字节填充一次,直到结束QString str = QString("%1").arg(outChar&0xFF,2,16,QLatin1Char('0'));//十六进制的转换recBrowser->insertPlainText(str);}recBrowser->insertPlainText(tr("\n"));}
#1 [gzcgjy 07-09 10:48]
学到东西了。
#2 [gzcgjy 08-08 19:40]
再顶。 帮我解决了实际问题。
望LZ再接再厉
#3 [980zhc 07-25 17:12]
#4 [shun1234 04-24 20:57]
你好。我按照你这样写,然后用串口调试器发送十六进制aabb两字节数据,接收后显示为2a3b;要字节的最高位为1,接收后就变成了0.我outchar定义为无符号,quint8 outChar = 0; .。望解答,不甚感激。
#5 [jlh94 03-24 21:32]
out >> outChar; 每次送入8个字节吗?