linux-QT5-6410-串口

linux-QT5-6410-串口

在Linux下我们只能使用查询Polling方式。

新建项目

  • 新建项目 ,创建dialog,QT桌面项目

pro文件中添加:

1
QT       += serialport

dialoh.h中添加

添加头文件

1
2
3
4
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
//以上两个头文件在QT5以下版本需要使用第三方文件,如 qextserialbase.cpp和qextserialbase.h 以及posix_qextserialport.cpp和posix_qextserialport.h
#include <QTimer>

private下添加

1
2
QSerialPort *myCom;
QTimer *readTimer;

添加私有槽函数

1
2
3
private slots:
void on_pushButton_clicked(); //”发送数据”按钮槽函数
void readMyCom(); //读取串口

dialog.cpp中添加

构造函数下添加

1
2
3
4
5
6
7
8
9
10
11
myCom = new QSerialPort();  
myCom->setPortName("/dev/ttyS0");
myCom->open(QIODevice::ReadWrite);
myCom->setBaudRate(QSerialPort::Baud115200);
myCom->setBaudRate(QSerialPort::Data8);
myCom->setParity(QSerialPort::NoParity);
myCom->setStopBits(QSerialPort::OneStop);
myCom->setFlowControl(QSerialPort::NoFlowControl);
readTimer = new QTimer(this);
readTimer->start(100);
connect(readTimer,SIGNAL(timeout()),this,SLOT(readMyCom()));

构造函数外添加两个私有槽函数的实体

1
2
3
4
5
6
7
8
9
void Widget::readMyCom() //读取串口数据并显示出来
{
QByteArray temp = myCom->readAll(); //读取串口缓冲区的所有数据给临时变量temp
ui->textBrowser->insertPlainText(temp); //将串口的数据显示在窗口的文本浏览器中
}
void Widget::on_pushButton_clicked() //发送数据
{
myCom->write(ui->lineEdit->text().toAscii()); //以ASCII码形式将数据写入串口
}

修改UI界面

  • 加入一个textBrowser的文本框
  • 加入一个 lineEdit的输入框
  • 加入一个pushbutoon的发送按钮

到这里一个基本的串口工程就建立完成了!!!

坚持原创技术分享,您的支持将鼓励我继续创作!