QT中使用Tcp与ESP12F转串口通信,需要QT发送的数据为16进制。
方法1:QByteArray直接添加整个16进制数据
QByteArray sendData.append("\x48\x65\x6c\x6c\x6f");
tcpSocket->write(sendData);
方法2:把字符串转换为16进制数据发送
tcpSocket->write(QByteArray::fromHex(ui->textEdit_Send->toPlainText().toLatin1()));
方法3:新建空白QByteArray,修改每个字节的值
QByteArray tcpSendData; //tcp发送数据
tcpSendData[0] = (cntSampling/100000)+0x30;
tcpSendData[1] = (cntSampling%100000/10000)+0x30;
tcpSendData[2] = (cntSampling%10000/1000)+0x30;
tcpSendData[3] = (cntSampling%1000/100)+0x30;
tcpSendData[4] = (cntSampling%100/10)+0x30;
tcpSendData[5] = (cntSampling%10)+0x30;
tcpSendData[6] = 0x20;
tcpSendData[7] = 0x20;
tcpSendData[8] = 0x48;
tcpSendData[9] = 0x65;
tcpSendData[10] = 0x6c;
tcpSendData[11] = 0x6c;
tcpSendData[12] = 0x6f;
tcpSendData[13] = 0x5f;
tcpSendData[14] = 0x4a;
tcpSendData[15] = 0x59;
tcpSocket->write(tcpSendData);
tcpSendData.clear();
这是收到的数据:
与发送的数据一样,接下来就可以开始TCP转串口通信了。