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

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

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

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

	QT       += core gui

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

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

ui设计
下图是我简易做的一个ui界面当时也只是实现了基础的通讯功能
QT QSerialPort 编写串口通讯案例 设计一些基础的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);

  }

}

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

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

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

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

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

上一篇:Qt 串口通信软件开发教程


下一篇:自己用QT写一个串口调试助手