各位大虾好,我是QT初学者,最近在弄QT串口通讯遇到点问题,希望大家不吝赐教!
void MainWindow: n_sendMsgBtn_clicked() { myCom->write(ui->sendMsgLineEdit->text().toAscii()); //以ASCII码形式将行编辑框中的数据写入串口 ui->textBrowser->append(tr("发送:")+ui->sendMsgLineEdit->text()); ui->statusBar->showMessage(tr("发送数据成功")); } 这里是将数据以ASCII码形式写入串口,我需要将数据以16进制形式写入串口,请问怎么实现?? 我自己这样改还是不行 myCom->write(ui->sendMsgLineEdit->text().toAscii().toHex()); void Widget::readMyCom() //读取串口数据并显示出来 { if(myCom->bytesAvailable() >=37 ) //如果可用数据大于或等于37字节再读取 { qDebug() << "read: "<<myCom->bytesAvailable()<<"bytes";//我们输出每次获得的字节数 QByteArray temp = myCom->readAll(); //读取串口缓冲区的所有数据给临时变量temp // ui->textBrowser->insertPlainText(temp); //将串口的数据显示在窗口的文本浏览器中 ui->textBrowser->append(tr("")+temp.toHex()); } } 这些数据读过来了,也能十六进制显示了,我怎么把这些字节一个个拆分下来,然后拿来使用?比如,我在界面上要设计几个显示框,显示数据,每2个字节组合为一个显示的数据,请问这个功能怎么来做? 应该就是我怎么把 变量temp 里的数据解析出来使用 比如:temp数据是 :16#11 22,我们怎么把这串数据解析出来,存放在UISUT[2]的一个数组里 分别 USINT[0]= 16#11 , USINT[1]= 16#22 。 |