具体示例如下:
这里假设,QByteArray数据为A1 B2 C3 D4 E5 F6,即readAll()收到的数据。
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 模拟串口接收到的QByteArray类型的数据
QByteArray serialData;
serialData.append(static_cast<char>(0xA1));
serialData.append(static_cast<char>(0xB2));
serialData.append(static_cast<char>(0xC3));
serialData.append(static_cast<char>(0xD4));
serialData.append(static_cast<char>(0xE5));
serialData.append(static_cast<char>(0xF6));
// 将接收到的数据按字节存入uint类型的数组
QVector<uint> dataArray;
for (int i = 0; i < serialData.size(); i++)
{
dataArray.append(static_cast<uint>(static_cast<uchar>(serialData.at(i))));
}
// 打印数组中的数据
qDebug() << "数组中的数据为:";
for (int i = 0; i < dataArray.size(); i++)
{
qDebug() << QString::number(dataArray.at(i), 16);
}
// 将数组中的前三个元素赋值给int类型的x、y、z
int x = dataArray.at(0);
int y = dataArray.at(1);
int z = dataArray.at(2);
// 打印x、y、z的值
qDebug() << "x的值:" << x;
qDebug() << "y的值:" << y;
qDebug() << "z的值:" << z;
return a.exec();
}