• 大小: 2.11MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-20
  • 语言: 其他
  • 标签:

资源简介

Qt串口通信+多线程+数据错乱自动恢复+串口断开自动连接

资源截图

代码片段和文件信息

#include “dialog_comset.h“
#include “ui_dialog_comset.h“

Dialog_ComSet::Dialog_ComSet(QWidget *parent) :
    QDialog(parent)
    ui(new Ui::Dialog_ComSet)
{
    ui->setupUi(this);
    this->serial = new QSerialPort;
    this->ui->comboBox_Bps->setCurrentIndex(3);
    this->ui->comboBox_DataBit->setCurrentIndex(3);
}

Dialog_ComSet::~Dialog_ComSet()
{
    delete ui;
    this->serial->close();
    this->serial->deleteLater();
}

void Dialog_ComSet::on_pushButton_GetPort_clicked()
{
    this->ui->comboBox_Port->clear();
    foreach(const QSerialPortInfo &info QSerialPortInfo::availablePorts())
    {
        this->serial->setPort(info);
        if(this->serial->open(QIODevice::ReadWrite))
        {
            ui->comboBox_Port->addItem(this->serial->portName());
            this->serial->close();
        }
    }
}

void Dialog_ComSet::on_pushButton_Ctr_clicked()
{
    this->serial->setPortName(this->ui->comboBox_Port->currentText());
    this->serial->setBaudRate(this->ui->comboBox_Bps->currentText().toInt());

    switch (this->ui->comboBox_DataBit->currentText().toInt()) {
    case 0:
        this->serial->setDataBits(QSerialPort::Data5);
        break;
    case 1:
        this->serial->setDataBits(QSerialPort::Data6);
        break;
    case 2:
        this->serial->setDataBits(QSerialPort::Data7);
        break;
    case 3:
        this->serial->setDataBits(QSerialPort::Data8);
        break;
    default:
        this->serial->setDataBits(QSerialPort::Data8);
        break;
    }

    switch (this->ui->comboBox_CheckBit->currentIndex()) {
    case 0:
        this->serial->setParity(QSerialPort::NoParity);
        break;
    case 1:
        this->serial->setParity(QSerialPort::OddParity);
        break;
    case 2:
        this->serial->setParity(QSerialPort::EvenParity);
        break;
    case 3:
        this->serial->setParity(QSerialPort::MarkParity);
        break;
    case 4:
        this->serial->setParity(QSerialPort::SpaceParity);
        break;
    default:
        this->serial->setParity(QSerialPort::NoParity);
        break;
    }

    switch (this->ui->comboBox_StopBit->currentIndex()) {
    case 0:
        this->serial->setStopBits(QSerialPort::OneStop);
        break;
    case 1:
        this->serial->setStopBits(QSerialPort::OneAndHalfStop);
        break;
    case 2:
        this->serial->setStopBits(QSerialPort::TwoStop);
        break;
    default:
        this->serial->setStopBits(QSerialPort::OneStop);
        break;
    }

    switch (this->ui->comboBox_FlowCtr->currentIndex()) {
    case 0:
        this->serial->setFlowControl(QSerialPort::NoFlowControl);
        break;
    case 1:
        this->serial->setFlowControl(QSerialPort::HardwareControl);
        break;
    case 2:
        this->serial->setFlowControl(QSerialPort::SoftwareControl);
        break;
    default:
        this->serial->setFlowControl(QSerialPort::

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-11-09 10:50  SerialMode\
     目录           0  2017-11-08 16:18  SerialMode\.git\
     文件         112  2017-11-07 18:27  SerialMode\.git\config
     文件          73  2017-11-07 18:27  SerialMode\.git\description
     文件          23  2017-11-07 18:27  SerialMode\.git\HEAD
     目录           0  2017-11-07 18:27  SerialMode\.git\hooks\
     文件         478  2017-11-07 18:27  SerialMode\.git\hooks\applypatch-msg.sample
     文件         896  2017-11-07 18:27  SerialMode\.git\hooks\commit-msg.sample
     文件         189  2017-11-07 18:27  SerialMode\.git\hooks\post-update.sample
     文件         424  2017-11-07 18:27  SerialMode\.git\hooks\pre-applypatch.sample
     文件        1642  2017-11-07 18:27  SerialMode\.git\hooks\pre-commit.sample
     文件        1348  2017-11-07 18:27  SerialMode\.git\hooks\pre-push.sample
     文件        4898  2017-11-07 18:27  SerialMode\.git\hooks\pre-rebase.sample
     文件         544  2017-11-07 18:27  SerialMode\.git\hooks\pre-receive.sample
     文件        1239  2017-11-07 18:27  SerialMode\.git\hooks\prepare-commit-msg.sample
     文件        3610  2017-11-07 18:27  SerialMode\.git\hooks\update.sample
     文件         912  2017-11-08 16:18  SerialMode\.git\index
     目录           0  2017-11-07 18:27  SerialMode\.git\info\
     文件         240  2017-11-07 18:27  SerialMode\.git\info\exclude
     目录           0  2017-11-08 16:18  SerialMode\.git\objects\
     目录           0  2017-11-07 18:27  SerialMode\.git\objects\10\
     文件         557  2017-11-07 18:27  SerialMode\.git\objects\10\3838fdaea2347436966d0f2cc53c0be69a0e22
     目录           0  2017-11-08 16:18  SerialMode\.git\objects\49\
     文件        5914  2017-11-08 16:18  SerialMode\.git\objects\49\4f79301178fa92c5124f55ea342d208e447918
     文件         142  2017-11-07 18:27  SerialMode\.git\objects\49\d64fce7cedf4ed8c5e0124cfe43e90c23c6ab6
     目录           0  2017-11-07 18:27  SerialMode\.git\objects\60\
     文件         304  2017-11-07 18:27  SerialMode\.git\objects\60\50363fa71ed2da04105077f9fef06150d05ee2
     目录           0  2017-11-08 16:18  SerialMode\.git\objects\6b\
     文件         745  2017-11-08 16:18  SerialMode\.git\objects\6b\f18e1e3884e52557e0ecce14f0c9ca461cc53d
     目录           0  2017-11-08 16:18  SerialMode\.git\objects\82\
     文件        1069  2017-11-08 16:18  SerialMode\.git\objects\82\7cc9a0898ec0ad9ad49c3d5f49d2a2893fbba1
............此处省略47个文件信息

评论

共有 条评论