注意:
1. 我们要实现自发自收,要将tx,rx连起来
2.发送的 不能是中文符号,因为这可能导致,读取到的是英文符号 --> 导致接收到的size 和发送的size 大小不一致
3.注意同时定义两个槽函数的时候两个槽函数都会被调用,我们应该注释掉不需要的那个,爆率剩下的那个避免产生干扰

实现收发消息数的显示:
//并且做了一个历史判断 -->避免重复记录
修改代码:
void Widget::on_btnSendContext_clicked()
{
const char * sendData = ui->lineEdit_SendContext->text().toStdString().c_str();//QString->String(C++)->char*
int writeCnt = 0;
writeCnt = serialPort->write(sendData);
if(writeCnt == - 1){
ui->label_SendStatus->setText("SendError!");
}
else {
writeCntTotal += writeCnt;
qDebug()<<"Send:"<<sendData;
qDebug()<<"writeCnt"<<writeCnt;
ui->label_SendStatus->setText("SendOK!");
ui->label_SendCnt->setNum(writeCntTotal);
if(strcmp(sendData,sendBak.toStdString().c_str())!=0){ //只有当数据与上一次不相等的时候我们才会追加到我们的历史发生中
ui->textEditRecord->append(sendData);
sendBak = QString(sendData);
}
}
}
void Widget::on_SerialData_readToRead()
{
QString recvMessage = serialPort->readAll();
if(recvMessage != NULL){
qDebug()<<"get Message: "<<recvMessage;
ui->textEditRev->append(recvMessage);
readCntTotal += recvMessage.size();
qDebug()<<"readCnt"<<recvMessage.size();
ui->label_RecvCnt->setNum(readCntTotal);
}
}
输出效果

================================================================

最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



