QSerialPort 串口

这篇具有很好参考价值的文章主要介绍了QSerialPort 串口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

串口配置、收/发数据

1、使用使用QSerialPort类,需要引用头文件

  • #include <QtSerialPort/QtSerialPort>

  • #include <QtSerialPort/QSerialPortInfo>

2、.pro文件中添加serialport

QT       += serialport

3、创建/配置/打开 串口

//3.1创建配置串口
seriaport= new QSerialPort();
seriaport->setPortName("COM3");//待打开的串口号
seriaport->setBaudRate(115200,QSerialPort::AllDirections);
seriaport->setDataBits(QSerialPort::Data8);//8bit数据位
seriaport->setParity(QSerialPort::NoParity);//校验位
seriaport->setStopBits(QSerialPort::OneStop);//停止位
seriaport->setFlowControl(QSerialPort::NoFlowControl);//流控制
//3.2打开设备
if (!seriaport->open(QIODevice::ReadWrite))
{
     qDebug() << "serial open failed";
     return ;
}
else
{
     qDebug() << "serial open success";
}
//3.3设置接收缓冲区大小
seriaport->setReadBufferSize(500);

//3.4当串口收到数据并且接收完毕后,会发出一个readyRead()的信号。串口收到信息时将调用MainSerialRecvMsgEvent函数
QObject::connect(seriaport, &QSerialPort::readyRead, this, &MainWindow::MainSerialRecvMsgEvent);

4、接收、发送串口数据文章来源地址https://www.toymoban.com/news/detail-676153.html

//4.1数据接收(串口收到信息后,将调用MainSerialRecvMsgEvent函数)
void MainWindow::MainSerialRecvMsgEvent(void)
{
    QByteArray MainSerialRecvData;//保存串口数据的数组
 
    if(seriaport->bytesAvailable() >0)//判断等到读取的数据大小
    {
         MainSerialRecvData = seriaport->readAll();//读取所有的接收数据
         if(!MainSerialRecvData.isEmpty()){
               qDebug() << MainSerialRecvData.size();//打印数据大小
               for(int i = 0; i < MainSerialRecvData.size();i++)
               {
                    qDebug() << MainSerialRecvData.at(i);
               }
               ui->textBrowser->append(MainSerialRecvData);//将数据显示到textBrowser
          }
          else
          {
               qDebug()<<"接受数据出错";
          }
     }
}
//4.2数据发送
void MainWindow::on_pushButton_2_clicked()
{
    QByteArray txdata;
 
    if(seriaport != NULL && seriaport->isOpen())
    {
        txdata = ui->lineEdit->text().toLatin1();//QString转QByteArray
        seriaport->write(txdata);//write:发送数据
        ui->lineEdit->clear();
    }
    else
    {
         qDebug() <<"串口未打开!";
    }
}

到了这里,关于QSerialPort 串口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT 篇 QT上位机串口编程

    一、QT上位机串口编程 二、QML用Image组件实现Progress Bar 的效果 三、QML自定义显示SpinBox的加减按键图片及显示值效果 最近因为项目需要,需要用到上位机,通过串口与上位机进行通讯,来上传和下发一些数据以及控制指令,所以用QT写了一个上位机,并记录下来,免得到时候

    2023年04月08日
    浏览(31)
  • QT串口收发

    将串口模块添加到工程中 在.pro文件中添加serialport 用到的头文件: QSerialPort类提供访问串口的功能,还可以通过QSerialPortInfo类获取可用串口的信息。 QSerialPortInfo类允许枚举系统中所有串口的信息,包括串口名称、系统位置、描述和制造商。 QSerialPortInfo::availablePorts();返回系

    2024年02月06日
    浏览(46)
  • QT编写的串口助手

    创建UI界面工程 找帮助文档 添加串口的宏

    2024年02月15日
    浏览(39)
  • Qt 串口收发数据

    首先,QT5是自带QSerialPort这个类的,使用时需要在pro文件里面添加一行: 然后直接引用头文件就可以使用了。 QSerialPort:提供访问串口的功能 QSerialPortInfo:提供系统中存在的串口的信息 接下来需要创建一个QSerialPort的对象,对串口的名称、波特率、数据位、校验位、停止位等

    2024年02月16日
    浏览(30)
  • Qt实现串口通讯实例

    欢迎小伙伴的点评✨✨,相互学习🚀🚀🚀 博主🧑🧑 本着开源的精神交流Qt开发的经验、将持续更新续章,为社区贡献博主自身的开源精神👩‍🚀 本章节将会给大家带来Qt串口通讯软件的简单实例 串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收

    2023年04月10日
    浏览(38)
  • QT 使用串口

    目录 1.1.1  添加库,添加类 1.1.2 定义串口 1.1.3  搜索串口 1.1.4 设置和打开串口 1.1.5 读取数据 1.1.6 发送数据 1.1.7 关闭串口    1.1.1  添加库,添加类 首先,QT5 是自带 QSerialPort(Qt5 封装的串口类)这个类的,使用时需要在 pro 文件里面添加一行: 加入下面两个文件: QT5 中,

    2024年02月15日
    浏览(32)
  • Qt串口通信学习文档

    这是官方文档,我也在学习。  QSerialPort Class | Qt Serial Port 5.15.14 https://doc.qt.io/qt-5/qserialport.html

    2024年02月11日
    浏览(41)
  • qt串口编程

    第一步在pro文件加入: 第二步需要加入的头文件: 第三步获取当前电脑可用串口名字: 第四步定义一个串口对象并且设置串口名字,数据,校验,停止等等:

    2024年02月12日
    浏览(31)
  • 使用QT写个自用的串口助手

    遇到一个默认波特率1.5M的终端设备,看了下手上常用的串口助手竟然没有这个选项,所以干脆自己用QT手撕一个。 开发环境:QT 5.12.0 mingw64 一、创建工程 1、新建创建QMainWindow工程,基类可以选择QMainWindow也可以选择Qwiget,这个网上参考很多,自己搜哈。 2、工程我命名为UA

    2024年01月24日
    浏览(54)
  • Qt程序接收串口数据存在延迟解决办法

    在调试接收串口数据的Qt程序中发现,数据存在延迟和粘包现象。下位机发送数据包频率是100Hz,一包56字节,波特率115200,在打印 port-readAll() 的值的时候发现并不是每10ms读到一包数据,而是大概每50ms左右一次接收到5包数据,在其他电脑上调试,以及下载其他串口助手调试后

    2024年02月04日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包