QT5串口通信
来源:互联网 发布:连通区域图像分割算法 编辑:程序博客网 时间:2024/05/16 04:54
在Qt5之前,要实现串口通信,需要借助第三方串口封装代码,QT5已经自带了类来完成这项工作。
代码如下:
//1. [代码]在pro文件中添加 //QT += serialport///引入头文件#include <QtSerialPort/QSerialPort>#include <QtSerialPort/QSerialPortInfo>//[代码]初始化 my_serialport->setPortName(ComName); my_serialport->setBaudRate(9600); my_serialport->setDataBits(QSerialPort::Data8); my_serialport->setParity(QSerialPort::NoParity); my_serialport->setStopBits(QSerialPort::OneStop); my_serialport->setFlowControl(QSerialPort::NoFlowControl);
附上一段完整的实例代码:
main.cpp
#include "widget.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); Widget w; w.show(); return a.exec();}
widget.h widget.cpp
#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QtSerialPort/QSerialPort>#include <QtSerialPort/QSerialPortInfo>#include <QTimer>namespace Ui {class Widget;}class Widget : public QWidget{ Q_OBJECTpublic: explicit Widget(QWidget *parent = 0); ~Widget();private slots: void on_pushButton_cmopen_clicked(); void updateAA(); void on_pushButton_send_clicked();private: Ui::Widget *ui; QSerialPort *my_serialport; QByteArray requestData; QTimer *timer;};#endif // WIDGET_H
#include "widget.h"#include "ui_widget.h"#include <QtSerialPort/QSerialPort>#include <QtSerialPort/QSerialPortInfo>#include <QDebug>#include <QTimer>Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) { qDebug() << "Name : " << info.portName(); qDebug() << "Description : " << info.description(); qDebug() << "Manufacturer: " << info.manufacturer(); // Example use QSerialPort QSerialPort serial; serial.setPort(info); if (serial.open(QIODevice::ReadWrite)) { ui->comboBox->addItem(info.portName()); serial.close(); } }}Widget::~Widget(){ delete ui;}void Widget::on_pushButton_cmopen_clicked(){ my_serialport= new QSerialPort(); qDebug()<<ui->comboBox->currentText(); my_serialport->setPortName(ui->comboBox->currentText()); my_serialport->open(QIODevice::ReadWrite); qDebug()<<ui->lineEdit->text().toInt(); my_serialport->setBaudRate(ui->lineEdit->text().toInt()); my_serialport->setDataBits(QSerialPort::Data8); my_serialport->setParity(QSerialPort::NoParity); my_serialport->setStopBits(QSerialPort::OneStop); my_serialport->setFlowControl(QSerialPort::NoFlowControl); timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(updateAA())); timer->start(1000);}void Widget::updateAA(){ requestData = my_serialport->readAll(); if(requestData!= NULL) { ui->textEdit->append(requestData); } requestData.clear();}void Widget::on_pushButton_send_clicked(){ QByteArray TxData = "aaaa"; my_serialport->write(TxData);}
0 0
- qt5实现串口通信
- QT5串口通信
- Qt5实现串口通信
- Qt5实现串口通信
- QT5 的串口通信
- Qt5 串口通信
- Qt5串口通信(二)
- Qt5串口通信(一)
- Qt5串口通信(三)
- cmake编译QT5串口通信
- 关于Qt5 QtSerialPort串口通信
- QT5.5实现串口通信
- QT5串口通信——基础篇
- 《Qt》part 5 Qt5.5.0串口通信
- 关于Qt5 QtSerialPort串口通信----带工程源码下载
- QT5 串口应用
- Qt5的串口使用
- Qt5 串口 usb
- 使用<![CDATA[ ]]> 标识 使内容不被XML解析
- 雄联盟工程师独家分享:如何使开发更有效率
- Maven 安装
- BZOJ 1505: [NOI2004]小H的小屋
- C# Func的介绍
- QT5串口通信
- Android WebView关于图片/文件上传
- Android四大组件Broadcast Receiver详解
- 【图论】单源点最短路模板(有向图)Dijkstra
- Find The Duplicate Number
- python 一个简单的依靠文件来判断key是否重复的方法
- 深入研究java.lang.Object类
- Linux 的启动流程
- 1063. Set Similarity (25) 并查集