Qt编写简易串口助手,实现数据收发

近期有个项目需要通过Qt进行串口通信,本文的目的是简单的记录Qt中串口相关类以及函数的使用方法。

Qt中已经封装好了串口的类:QSerialPort、QSerialPortInfo。
QSerialPort类提供了操作串口的各种接口;
QSerialPortInfo类提供计算机内可用串口的各种信息,起辅助作用。

在Qt中调用串口相关类时,需要在pro文件中加入:

QT       += serialport

并引入相关头文件:

#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>

/***********************/
//定义之后需要用的变量
private:
    Ui::MainWindow *ui;
    QSerialPort *my_serialport;//实例化一个指向串口的指针,用于访问串口
    QByteArray requestData;//用于储存从串口读取的数据,并且进行进制转换。4种方式:[]、at()、data()[]、constData[],其中[]、data()[]为可读可写,at()、constData()[]为可读。

接下是程序的界面设计,我们需要的控件有:
串口号comboBox_PortName;
波特率comboBox_BaudRate;
打开串口pushButton_Open;
关闭串口pushButton_Close;
发送pushButton_Send;
清空pushButton_Clear;
数据缓冲区textEdit_Buffer;
数据输入区textEdit_Write。

在这里插入图片描述

在构造函数中对当前窗口的控件进行一些简单的设置,比如设置窗口名称、数据缓冲区设置为只读状态、串口未打开时其他按钮一定是处于不可点击的状态:

    this->setWindowTitle(("简易串口助手 "));
    ui->pushButton_Close->setEnabled(false);
    ui->pushButton_Send->setEnabled(false);
    ui->pushButton_Clear->setEnabled(false);
    ui->textEdit_Buffer->setReadOnly(true);

然后通过QSerialPortInfo类读取计算机内可用的串口信息,并且将可用的串口放入“串口号comboBox_PortName”内显示,供使用时选择:

    foreach( const QSerialPortInfo &Info,QSerialPortInfo::availablePorts())//读取串口信息
    {
   
        //打印扫描到的串口信息
        qD
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值