qt开发系列5 qt下的串口编程

我们通过仿写一个串口界面来学习。

首先我们创建一个界面,

我们需要添加一个功能:打开界面后,串口就自动搜索串口号。

我们首先在.pro文件中 添加

QT       += core gui serialport

其次在wigedt.cpp中填写

#include<QSerialPortInfo>

QStringlist serialnameport;//定义一个叫serialnameport的QStringlist对象,用来存储串口名称。
foreach(const QSerialPortInfo & info,QSerialPortInfo::availablePort())
{
     serialnameport<<info.portName();
}
ui->serialcb->addItems(serialnameport);

 //使用 foreach 循环遍历 QSerialPortInfo::availablePorts() 返回的可用串口列表。每次迭代都会将当前的 QSerialPortInfo 对象存储在名为 Info 的变量中。

在循环的每次迭代中,通过 Info.portName() 获取当前串口的名称,并使用 << 操作符将其添加到 serialnameport 字符串列表中。

最后,使用 ui->serialcb->addItems(serialnameport) 将 serialnameport 列表中的所有串口名称添加到名为 serialcb的下拉框控件中(通过 ui 对象访问 UI 界面的控件)。 

const QSerialPortInfo & Info 声明了一个常量引用变量 Info,它表示每次迭代时从容器中获取的元素,并且在循环体内不能修改该元素的值。在示例代码中,Info 表示一个可用串口的信息对象,用于获取串口的属性和状态。
QSerialPort::BaudRate baudrate;
QSerialPort::DataBits databits;
QSerialPort::StopBits stopbits;
QSerialPort::Parity patity;
//初始化 波特率 数据位 停止位 校验位
    //波特率  
    if(ui->comboBox_2->currentText()== "4800")
    {
        baudrate = QSerialPort::Baud4800;
    }
    else if(ui->comboBox_2->currentText()== "9600")
    {
        baudrate = QSerialPort::Baud9600;
    }
    else if(ui->comboBox_2->currentText()== "115200")
    {
        baudrate = QSerialPort::Baud115200;
    }
    //数据位
    if(ui->comboBox_3->currentText() == "5")
    {
        databits = QSerialPort::Data5;
    }
    else if(ui->comboBox_3->currentText() == "6")
    {
        databits = QSerialPort::Data6;
    }
    else if(ui->comboBox_3->currentText() == "7")
    {
        databits = QSerialPort::Data7;
    }
    else if(ui->comboBox_3->currentText() == "8")
    {
        databits = QSerialPort::Data8;
    }
    //停止位
    if(ui->comboBox_4->currentText() == "1")
    {
        stopbits = QSerialPort::OneStop;
    }
    if(ui->comboBox_4->currentText() == "1.5")
    {
        stopbits = QSerialPort::OneAndHalfStop;
    }
    if(ui->comboBox_4->currentText() == "2")
    {
        stopbits = QSerialPort::TwoStop;
    }
    //校证位
    if(ui->comboBox_5->currentText() == "none")
    {
        patity = QSerialPort::NoParity;
    }
//相互绑定起来
    serilaPort -> setPortName(ui->serialcb->currentText());
    serilaPort -> setBaudRate(baudrate);
    serilaPort -> setDataBits(databits);
    serilaPort -> setStopBits(stopbits);
    serilaPort -> setParity(patity);
// 如果open成功,小窗口提示。

    if(serilaPort ->open(QIODevice::ReadWrite) == true )
    {
        QMessageBox::information(this,"提示","成功");
    }
    else
    {
        QMessageBox::critical(this,"提示","失败");
    }
//接受屏,手动关联槽函数

serilaPort = new QSerialPort(this);

connect(serilaPort,SIGNAL(readyRead()),this,SLOT(on_recv_readyRead()));

void Widget::on_recv_readyRead()
{   
    QString buf;
    buf = QString(serilaPort->readAll());
    ui->resvEdit->appendPlainText(buf);
}

//关闭按钮,自动关联槽函数
void Widget::on_pushButton_3_clicked()
{
    serilaPort->close();
}
//发送按钮,自动关联槽函数
void Widget::on_sendBT_clicked()
{
    serilaPort -> write(ui->sendEdit->text().toLocal8Bit().data());
}
//清除按钮。。。。。
void Widget::on_clearlBT_clicked()
{
    ui->resvEdit -> clear();
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: QT5是一种常见的跨平台应用程序开发工具,可以帮助开发者快速开发各种软件。串口调试助手是一种开发工具,可以帮助工程师快速调试串口设备,检测串口通信是否正常。QT5开发串口调试助手的开放源代码,可以让更多的工程师使用这个工具,快速完成串口调试的任务。 QT5开发串口调试助手可以通过读取串口设备的数据,分析设备发送的信息,输出一些特定的信息进行串口调试。它可以设置串口的通信参数,比如波特率、数据位、停止位等等,方便用户根据自己的需求进行配置。用户可以输入数据来进行测试,也可以从串口设备读取数据,进行分析和操作。 QT5开发串口调试助手还可以支持多种操作系统平台,比如Windows、Linux等等,同时还可以支持多种编程语言,比如C++、Java等等。因此,它非常适合用于嵌入式系统的开发和调试。 总之,QT5开发串口调试助手是一种非常实用的工具,它可以有效地帮助工程师快速进行串口调试,提高开发效率。开放源代码使它更具有灵活性和可扩展性,更容易被广泛应用和改进。 ### 回答2: Qt5开发串口调试助手是一款开源的串口调试工具,其优秀的特点主要体现于以下几个方面: 首先,Qt5开发串口调试助手具有易用性。Qt5开发平台为该软件提供良好的图形界面,操作简洁方便。用户可以很容易地通过该软件发现自己需要的串口,进行连接和调试。 其次,Qt5开发串口调试助手具有高效的性能。该工具使用Qt5的自定义串口模块进行串口配置和数据传输,具有非常高的上限速率和数据吞吐量,能够满足大多数串口通信应用需求。 再次,Qt5开发串口调试助手是一个免费开源软件。其开源项目源代码可以公开访问,方便用户进行修改和二次开发。该工具的开源授权许可为LGPLv3和GPLv2,可以保障代码的免费开放性。 除了以上特点,Qt5开发串口调试助手还附带了一些其他实用的功能,例如数据统计、图形绘制、设备控制等。综合来看,Qt5开发串口调试助手是一个值得用户信赖的开源工具,其高效、易用和免费开源等优点,让其在开发者中拥有广泛的欢迎度和使用价值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值