• 16454阅读
  • 6回复

[讨论]Qt笔记七:如何把从串口读到的数据转换为十六进制的字符 [复制链接]

上一主题 下一主题
离线青春岁月
 

只看楼主 倒序阅读 楼主  发表于: 2011-06-24
//读取串口
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"));
}
go!   go!  go!  go!
离线gzcgjy
只看该作者 1楼 发表于: 2011-07-09
学到东西了。
离线gzcgjy
只看该作者 2楼 发表于: 2011-08-08
再顶。 帮我解决了实际问题。
望LZ再接再厉
离线980zhc
只看该作者 3楼 发表于: 2012-07-25
离线shun1234

只看该作者 4楼 发表于: 2014-04-24
你好。我按照你这样写,然后用串口调试器发送十六进制aabb两字节数据,接收后显示为2a3b;要字节的最高位为1,接收后就变成了0.我outchar定义为无符号,quint8 outChar = 0; .。望解答,不甚感激。
离线jlh94

只看该作者 5楼 发表于: 2016-03-24
out >> outChar; 每次送入8个字节吗?
离线yuyu414

只看该作者 6楼 发表于: 2016-03-25
我想说的是Qt有给这个函数:
QByteArray QByteArray::toHex() const
快速回复
限100 字节
 
上一个 下一个