• QT5串口通讯
  • 发布时间:2019-06-08 15:18 | 作者:admin | 来源:
  • 串行通信在集成设备的开发中非常普遍。在Qt 5之前,您需要使用第三方串行端口封装代码以实现串行通信。QT5有自己的类来完成这项任务。
    代码如下:
    添加[代码]文件临// QT + =包括的SerialPort ///头#includeQtSerialPort / QSerialPort#includeQtSerialPort / QSerialPortInfo //[代码]初始化my_serialport-setPortName(comName); my_serialport-setBaudRate(9600); my_serialport-setDataBits(QSerialPort:DATA8); my_serialport-setParity(QSerialPort:NoParity); my_serialport-setStopBits(QSerialPort:一站式); my_serialport-setFlowControl(QSerialPort:NoFlowControl);完整的代码示例包含片段。
    cpp #include“widget。
    h“#includeQApplicationintmain(intargc,char * argv[]){QApplicationa(argc,argv); widget; w。
    show();返回
    Widget exec();}。
    hwidget
    CPP#ifndefWIDGET_H#defineWIDGET_H#includeQWidget#includeQtSerialPort / QSerialPort#includeQtSerialPort / QSerialPortInfo#includeQTimernamespaceUi{classWidget;}classWidget:?publicQWidget{Q_OBJECTpublic:explicitWidget(QWidget的)*母体= 0)插件(); privateslots:voidon_pushButton_cmopen_clicked(); voidupdateAA(); voidon_pushButton_send_clicked(); private:ui:widget * ui; QSerialPort * my_serialport; QByteArrayrequestData; QTimer * timer;}; #endif // WIDGET_H#包含“”小部件。
    h ui_widget“#include”
    #includeQtSerialPort / QSerialPort#includeQtSerialPort / QSerialPortInfo#includeQDebug#includeQTimerWidget:窗口小部件(QWidget的*父):QWidget的(母体),用户界面(newUi:窗口小部件){UI-setupUi(本);的foreach(constQSerialPortInfoortInfoInfoService)availablePorts()){qDebug()“名称:”信息。
    PORTNAME(); qDebug()“描述:”信息。
    Description(); qDebug()“制造商”信息。
    Manufacturer(); // ExampleuseQSerialPortQSerialPortserial; Serial
    setPort(信息),是(序列)。
    open(QIODevice:read / write)){ui-combobox addItem(information)
    portName()); serial
    ?窗口小部件:窗口小部件(){deleteui;}voidWidget:on_pushButton_cmopen_clicked(){my_serialport = newQSerialPort();}关闭();}}}qDebug()UI的组合框-currentText(); my_serialport-setPortName(UI-组合框-currentText()); My_serialport-open(QIODevice:ReadWrite); qDebug()ui-LineEdit text()。
    Toint(); my_serialport-setBaudRate(ui-Line edit text())
    Toint()); my_serialport-setDataBits(QSerialPort:DATA8); my_serialport-setParity(QSerialPort:NoParity); my_serialport-setStopBits(QSerialPort:一站式); my_serialport-setFlowControl(QSerialPort:NoFlowControl);计时器= newQTimer(本);连接(timer,SE?AL(timeout()),this,SLOT(updateAA())); start timer(1000);}voidWidget:updateAA(){RequestData = my_serialport-readAll(),yes(RequestData!)
    = NULL){ui-textEdit-append(RequestData);}RequestData。
    void(0);}void Widget:on_pushButton_send_clicked(){QByteArrayTxData =“aaaa”;
    免责声明:本文仅代表文章作者的个人观点,与本网站无关。
    其原创性,真实性以及文本中包含的文字和内容尚未经过本网站的验证。本网站不保证或承诺本文和内容的全部或部分内容的可信度,完整性和原创性。请咨询读者,仅供参考,并亲自查看相关内容。


  • 相关内容