QT5 的串口通信

最近被串口通信折腾了。网上教程老的例子我试了都没有实现效果。测试代码如下:

.pro 加入一句 

QT       += serialport
 
.h如下
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtSerialPort/QSerialPort>//串口通信需要用到的
#include <QtSerialPort/QSerialPortInfo>
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
private slots:
    void on_pushButton_clicked();
     void readMyCom();      //声明读串口槽函数
private:
    Ui::MainWindow *ui;
    QSerialPort *my_serialport; //声明对象
    QByteArray requestData;
};
#endif // MAINWINDOW_H
 
 
 
mainwindow.cpp如下
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}
MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::readMyCom()//读串口函数
{
    qDebug() << QStringLiteral("检查有没有执行readMyCom");
    requestData = my_serialport->readAll();//读
    if(requestData.toHex().isNull())
    {
       qDebug() << QStringLiteral("空!");
    }
    else{ qDebug() << QStringLiteral("非空!");
       ui->label->setText(requestData);
    }
    requestData.clear();
}
void MainWindow::on_pushButton_clicked()//点击按钮的槽,点击后会执行
{
    my_serialport= new QSerialPort();
    my_serialport->setPortName("COM4");//需要自己手动更改。当然也可以从界面选择
    my_serialport->open(QIODevice::ReadWrite);
    my_serialport->setBaudRate(QSerialPort::Baud9600);//波特率等参数设置
    my_serialport->setDataBits(QSerialPort::Data8);
    my_serialport->setParity(QSerialPort::NoParity);
    my_serialport->setStopBits(QSerialPort::OneStop);
    my_serialport->setFlowControl(QSerialPort::NoFlowControl);
        if(my_serialport->isOpen())//判断是否成功开启
        { qDebug("YYY..");}//成功
        else
        { qDebug("NNN..");}
//槽函数readMyCom()必须在.h文件中申明。下面一句表示每次有数据接收就触发readMyCom,执行读串口函数。有时候也可以用time来定时触发
connect(my_serialport,SIGNAL(readyRead()),this,SLOT(readMyCom()));
}
 
最后qmake就好了。
qmake还不太懂。好了我要去抄实习报告了……

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值