温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Qt5 SerialPort下面代码的关键两个地方

发布时间:2020-06-30 20:53:42 来源:网络 阅读:1813 作者:WZM3558862 栏目:开发技术

 Qt5 SerialPort下面代码的关键两个地方,就是读和写两个位置,因为串口是不稳定的,所以必须以这种方式来收发。

[cpp] view plain copy Qt5 SerialPort下面代码的关键两个地方Qt5 SerialPort下面代码的关键两个地方

  1. #include "stdafx.h"  

  2. #include "serialporttesttool.h"  

  3.   

  4. SerialPortTestTool::SerialPortTestTool(QWidget *parent)  

  5.     : QMainWindow(parent)  

  6. {  

  7.     ui.setupUi(this);  

  8.     sp = new QSerialPort("com4",this);  

  9.     if (sp->open(QIODevice::ReadWrite))  

  10.     {  

  11.         sp->setBaudRate(QSerialPort::Baud115200,QSerialPort::AllDirections);  

  12.         sp->setDataBits(QSerialPort::Data8);  

  13.         sp->setStopBits(QSerialPort::OneStop);  

  14.         sp->setParity(QSerialPort::NoParity);  

  15.         sp->setFlowControl(QSerialPort::NoFlowControl);  

  16.         //connect(sp,SIGNAL(readyRead()),this,SLOT(serialRead()));  

  17.     }  

  18. }  

  19.   

  20. SerialPortTestTool::~SerialPortTestTool()  

  21. {  

  22.     sp->close();  

  23.     delete sp;  

  24. }  

  25.   

  26. void SerialPortTestTool::on_lineEdit_returnPressed()  

  27. {  

  28.     QByteArray command = ui.lineEdit->text().trimmed().toLocal8Bit() + "\r\n";  

  29.     sp->write(command,command.length());  

  30.     ui.lineEdit->setText("");  

  31.     if (sp->waitForBytesWritten(2000))  

  32.     {  

  33.         ui.textEdit->append("ok");  

  34.     }  

  35.     else  

  36.     {  

  37.         ui.textEdit->append("failed");  

  38.     }  

  39. }  

  40. void SerialPortTestTool::serialRead()  

  41. {  

  42.     static QByteArray allData;  

  43.     QByteArray dataTemp;  

  44.     while (!sp->atEnd())  

  45.     {  

  46.         dataTemp = sp->readLine();  

  47.         ui.textEdit->append(QString::fromLatin1(dataTemp));  

  48.     }  

  49. }  

  50.   

  51. void SerialPortTestTool::on_pushButton_clicked()  

  52. {  

  53.     QByteArray temp = sp->readAll();  

  54.     while (sp->waitForReadyRead(10))  

  55.     {  

  56.         temp += sp->readAll();  

  57.     }  

  58.   

  59.     ui.textEdit->append(QString::fromLatin1(temp));  

  60.   

  61. }  

Qt5 SerialPort下面代码的关键两个地方



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

qt t5
AI