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);

相关