1.本案例描述的是使用QT串口时,上位机对下位机实现16进制收发,例如上位机软件界面中输入“0103A0000002E60B”字符串,QSerialPort->write()函数写入的也是“0103A0000002E60B”,下位机给上位机软件发送的是“0103A00004A8AF01128763”,上位机收到后显示到界面的也是“0103A00004A8AF01128763”。
2.输入字符串到QSerialPort->write()参数转换代码如下:
QString writeStr="0103A0000002E60B";//输入字符串
QByteArray writeBuf=QByteArray::fromHex(writeStr.toLatin1());//16进制QString转到QByteArray
QSerialPort.write(writeBuf);//串口写入
3.读串口QSerialPort.readAll()数据转换到16进制QString代码如下:
QString readStr=QString(QSerialPort.readAll().toHex());