Qt5SerialPort下面代码的关键两个地方-创新互联

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

创新互联-专业网站定制、快速模板网站建设、高性价比盐津网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式盐津网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖盐津地区。费用合理售后完善,十余年实体公司更值得信赖。

[cpp] view plain

  1. #include "stdafx.h"

  2. #include "serialporttesttool.h"

  3. SerialPortTestTool::SerialPortTestTool(QWidget *parent)

  4.     : QMainWindow(parent)

  5. {

  6.     ui.setupUi(this);

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

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

  9.     {

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

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

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

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

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

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

  16.     }

  17. }

  18. SerialPortTestTool::~SerialPortTestTool()

  19. {

  20.     sp->close();

  21.     delete sp;

  22. }

  23. void SerialPortTestTool::on_lineEdit_returnPressed()

  24. {

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

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

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

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

  29.     {

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

  31.     }

  32.     else

  33.     {

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

  35.     }

  36. }

  37. void SerialPortTestTool::serialRead()

  38. {

  39.     static QByteArray allData;

  40.     QByteArray dataTemp;

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

  42.     {

  43.         dataTemp = sp->readLine();

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

  45.     }

  46. }

  47. void SerialPortTestTool::on_pushButton_clicked()

  48. {

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

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

  51.     {

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

  53.     }

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

  55. }

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

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章标题:Qt5SerialPort下面代码的关键两个地方-创新互联
文章转载:http://ybzwz.com/article/cocpjs.html