用Qt写串口调试助手(一):串口设置

文章讲述了作者使用Qt开发串口调试助手的过程,详细描述了如何获取可用串口号、设置串口参数(如波特率、数据位等)以及实现打开/关闭串口的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

	最近学了一下qt,想着用一用吧,正好研究方向也会用到串口调试助手,那就
自己看看能不能写一个吧,仅以此篇记录一下自己学习的过程。
	首先了解一下我想实现的具体框架。

串口调试助手整体框架

	大概我想要实现的就是左边的功能。
	主要分为3个部分,从上到下依次为串口设置,接收区设置和发送区设置。当然还有许多需
要完善的地方,但这并不是自己主要的研究方向,如有什么不对的地方,还请勿喷(宇宙免责
声明)。
	进入正题,首先看一下代码的整体框架。
class Widget : public QWidget
{
   
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private:
    Ui::Widget *ui;

//自己定义的函数
public:
    //载入用户上次设置
    void mLoadSet();

    //设置样式表
    void mSetQSS();

    //串口设置
    void mQSerialPortSet();

    //接收设置
    void mReceiveSet();

    //发送设置
    void mSendSet();

    //重写closeEvent方法,用于保存用户选择
    void closeEvent(QCloseEvent *event) override;
	这是在widget.h中自己定义的一些方法,载入用户设置,是用于记录用户的上次选择的,
以便本次运行时能够保持用户上次的选择,样式表设置纯属为了见面稍微美观一些,对于
串口调试助手功能来说,并没有什么卵用了,之后每一个方法正好对应框架当中的三个部分
这次主要记录一下第一部分,也就是串口设置部分
//自己定义的属性
private:
    QSerialPort mSerialPort;
    bool isOpen = false;            //串口是否打开状态变量,默认为关闭
    
	QByteArray receivePrimaryData;  //存放接收到的原始数据数据

    bool recDisplayIsPause = false; //判断接收显示是否暂停标志位, 默认显示

    QFile recFile;                  //接收到文件对象
    bool isRecToFile = false;       //是否接收到文件标志位,默认不接收到文件

    QByteArray sendPrimaryData;     //存放需要发送的原始数据
    QByteArray sendTemporaryData;   //需要处理的发送数据
    bool isSendcycle = false;       //是否循环发送标志位,默认不循环发送
    QTimer cycTimer;                //循环发送定时器
    bool isStopSend = false;        //是否是停止发送标志位

    HexOnlyEventFilter hexOnlyEventFilter;  //事件过滤器,只允许输入16进制数,空格,回车,退格
	这是在头文件中定义的一些属性,串口设置仅用到了:
	QSerialPort mSerialPort;
    bool isOpen = false;            //串口是否打开状态变量,默认为关闭
	这两个属性,mSerialPort是一个Qt当中的串口对象,我们可以通过这个对象对串口
进行设置。isOpen是用来记录串口是否打开的标志位。
	之后在源文件中实现mQSerialPortset方法:
	串口设置主要分为以下几个部分:
	1. 首先我们要获取可用串口号:
	//获取可用串口号
    QList<QSerialPortInfo> serialPorts = QSerialPortInfo::availablePorts();
    //添加到ui界面
    for(int i = 0; i < serialPorts.size(); i++){
   
        ui->cB_serialNum->addItem(serialPorts[i].portName());
    }
	首先定义一个QList容器,该容器存放的是QSerialPortInfo,也就是获取到的串口信息,
再调用QSerialPortInfo::availablePorts();方法获取串口信息,之后通过一个for循环
将获取到的可用串口名添加到Qt中的QComboBox中,也就是这里:

串口号

	2.读取串口参数进行参数设置
当我们点击打开按钮时,会读取用户选择的串口参数,再对串口进行设置,因此我们首先要
将打开按钮的点击信号和槽函数链接起来:
	//链接打开按钮,并读取ui界面参数设置
    connect(ui->pB_open, &
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值