qt串口接收16进制并存入数组
时间: 2023-10-29 21:08:00 浏览: 439
要在Qt中接收16进制数据并存入数组,可以使用QByteArray和QDataStream来实现。首先,创建一个QByteArray对象来接收串口数据。然后,将QByteArray对象传递给QDataStream,使用QIODevice::ReadWrite模式读取字节数组。接下来,使用一个循环来逐个字节读取数据,并将它们转换为十六进制字符串存储起来。
以下是示例代码:
```cpp
void YComWindow::readYpfCom() {
QByteArray temp;
QString strHex;
if(ypfCom->bytesAvailable() >= 8) {
temp = ypfCom->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')); // 十六进制的转换
// 存入数组或做其他处理
// array.append(outChar); // 假设array是一个QByteArray对象
strHex = str;
}
// 打印
qDebug() << strHex;
ui->textBrowser->insertPlainText(strHex);
}
```
阅读全文