QT QSerialPort 编写串口通讯案例 设计一些基础的ui界面

QT QSerialPort 编写串口通讯案例 设计一些基础的ui界面

因为公司需要一个串口通讯方面的一个小调试助手 以前也接触过 知道Qt5以上有自带的提供访问串口的功能QSerialPor和提供系统中存在的串口的信息QSerialPortInfo

环境配置
1.首先在工程环境pro文件里面添加

	QT       += core gui

2.在.cpp文件里面添加头文件

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

ui设计
下图是我简易做的一个ui界面当时也只是实现了基础的通讯功能
在这里插入图片描述
因为公司只需要波特率 校验位 停止位这些所以在界面上我只保留了这些

QSerialPort的设置内容

QSerialPort  QvsPd_c;//声明一个串口

QvsPd_c.setPortName("COM3");//设置CMO口

QvsPd_c.setBaudRate(QSerialPort::Baud9600);//设置波特率

QvsPd_c.setDataBits(QSerialPort::Data8);//设置数据位数

QvsPd_c.setParity(QSerialPort::NoParity);//设置奇偶校验

QvsPd_c.setStopBits(QSerialPort::OneStop); //设置停止位

QvsPd_c.setFlowControl(QSerialPort::NoFlowControl);//设置流控制

QvsPd_c.open(QIODevice::ReadWrite);	//打开串口

代码片段
.cpp

//打开串口

void Dialogvspd::on_radioB_dakai_clicked(bool checked)
{

if(checked==true)
{

    //检查串口是否可用
   // QStringList slist;
    foreach (const  QSerialPortInfo &info, QSerialPortInfo::availablePorts()) {

          ui->lineEdit_DKH->setText(info.portName());//查询可用的串口号
          qDebug()<<info.portName();
    }



    //设置流控制
    QvsPd_c.setFlowControl(QSerialPort::NoFlowControl);

    if(QvsPd_c.open(QIODevice::ReadWrite))//打开串口
    {
          
            qDebug()<<"串口读取模式";
    }
    else
    {

              qDebug()<<"串口打开异常"<<QvsPd_c.errorString();

              QvsPd_c.clearError();
    }
    //运行之后设置ui失效
    ui->lineEdit_DKH->setEnabled(false);

  }

}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
//关闭串口

  	 	//关闭
  	 	QvsPd_c.close();
  	  	//关闭串口后ui开启
		ui->lineEdit_DKH->setEnabled(true);

.h
这里我贴一张图就可以了具体里面数据的处理我用的别的方法

在这里插入图片描述

自己手打 借鉴可能会出错 数据处理部分涉及别的方法!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值