qml 串口通信 数据格式转换记录

发送数据

  1. 16进制HEX转QByteArray

    QString CMD="55AA88FFFFFFFF";
    QByteArray str2 = QByteArray::fromHex (CMD.toLatin1().data());

  2. 需要循环发送 则需要在write 后加

    serial->write(str2);
    if(!serial->waitForBytesWritten()) //这一句很关键,决定是否能发送成功
    {
    qDebug()<<"serial write error";
    }

接收数据处理

  1. 转换成QString

    data.toHex();

  2. QByteArray 转int

    QByteArray dr;
    dr[0]=data[5];
    dr[1]=data[6];
    bool ok;
    int dta=dr.toHex().toInt(&ok,16);
    同理byte
    QByteArray b3;
    b3.append(data[3]);
    int states=b3.toHex().toInt(&ok,16);

posted on 2021-08-28 09:54  逆风的泰迪man  阅读(494)  评论(0)    收藏  举报

导航