Qt 添加QSerialPort类 实现串口操作

  • 前言

最近学习了Qt,便想着做一个串口助手。但是在添加串口相关的两个头文件(QSerialPort、QSerialPortInfo)的时候一直是文件不存在,知道是本地没有串口相关的两个文件,也看了网上许多教程,但就是弄不好,折腾了许久。特此一贴,防止以后广大初学者也有相同的困惑。此教程适合Qt所有版本,安装其他的类也可以用来参考

  • 环境

系统:win10

Qt版本:5.14.0

  • 安装步骤

一、下载相关文件

首先需在去官网下载相关文件,但是由于官网下载特别慢,所以推荐使用国内的镜像源。这里我使用的是清华大学的镜像https://mirrors.tuna.tsinghua.edu.cn/,搜索qt,打开official_release(官方发布的一些代码,工具)

接着打开qt文件夹,在这里可以选择版本,根据自己电脑上安装qt的版本选择即可

选择版本之后再打开submodules文件夹,往下滑,找到串口相关的文件如下图,下载

二、安装

解压并打开这个工程,打开工程配置页面

点开build步骤的make栏的详情,在Make arguments(make参数)中填入install,这里选择的是release方式,debug方式也是一样的操作

再编译整个工程即可,这样就把这两个类安装到了电脑上,可以供其他工程使用了

  • 三、最后一步

打开串口工程,包含这两个头文件

#include <QSerialPort>        //提供访问串口的功能
#include <QSerialPortInfo>    //提供系统中存在的串口的信息

这时仍然会报错说找不到文件,这是正常情况,还需要在.pro文件中加入一行代码

QT       +=serialport

到这就可以正常使用串口相关的类和方法了

 

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
很抱歉,由于涉及到用户隐私和安全性,我们不建议在公开场合直接分享完整的登录页面代码。但是,我可以提供一些指导,帮助您了解如何使用Qt串口进行用户登录验证。 下面是一个简单的示例,其中使用QtQSerialPort实现通过串口输入用户名和密码进行登录验证。 mainwindow.h文件: ```c++ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QSerialPort> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow(); private slots: void on_loginButton_clicked(); private: Ui::MainWindow *ui; QSerialPort *serialPort; }; #endif // MAINWINDOW_H ``` mainwindow.cpp文件: ```c++ #include "mainwindow.h" #include "ui_mainwindow.h" #include <QMessageBox> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); serialPort = new QSerialPort(this); serialPort->setPortName("COM1"); serialPort->setBaudRate(QSerialPort::Baud9600); serialPort->setDataBits(QSerialPort::Data8); serialPort->setParity(QSerialPort::NoParity); serialPort->setStopBits(QSerialPort::OneStop); serialPort->setFlowControl(QSerialPort::NoFlowControl); serialPort->open(QIODevice::ReadWrite); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_loginButton_clicked() { QString username = ui->usernameEdit->text(); QString password = ui->passwordEdit->text(); QByteArray data = QString("%1,%2\n").arg(username).arg(password).toUtf8(); serialPort->write(data); QByteArray response = serialPort->readLine(); response = response.trimmed(); if(response == "OK") { QMessageBox::information(this, "Login", "Login success."); } else { QMessageBox::warning(this, "Login", "Login failed."); } } ``` 在这个示例中,我们创建了一个QMainWindow,并在窗口中添加了QLineEdit和QPushButton用于输入用户名和密码,以及进行登录操作。 在构造函数中,我们初始化了QSerialPort并打开了串口。在登录按钮的单击事件中,我们从QLineEdit中获取用户名和密码,将它们打包成一个字符串并发送到串口。我们等待响应并将其与“OK”进行比较以检查登录是否成功。如果成功,我们将显示一个信息框,否则将显示一个警告框。 请注意,在实际应用中,您需要根据您的具体需求进行修改和扩展。同时,请确保在实现用户登录功能时采取必要的安全措施,以确保用户数据的安全性和保密性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值