`
345161974
  • 浏览: 60413 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Qt采用Qextserialport 接收发送16进制数据

 
阅读更多

为了配合项目的使用,需要写个Qt的串口工具,后来发现Qextserialport 这个库很强大,参考网络霍亚飞的一篇doc,很快就搞定了界面以及基本的一些功能,不过由于项目里面需要16进制的数据收发,所以,需要支持16进制的收发,百度+谷歌下,搞定了,代码贴下,只贴核心代码:

接收16进制:

//串口接收数据
void YComWindow::readYpfCom() {
    QByteArray temp;
    QString strHex;
    if(ypfCom->bytesAvailable() >= 8)
    {
        temp = ypfCom->readAll(); //读串口缓冲区数据
    }
    QDataStream out(&temp, QIODevice::ReadWrite);    //将字节数组读入
    while(!out.atEnd())
    {
        qint8 outChar = 0;
        out >> outChar;   //每字节填充一次,直到结束
        QString str = QString("%1").arg(outChar&0xFF, 2, 16, QLatin1Char('0'));
        //十六进制的转换
        ui->textBrowser->insertPlainText(str);
        strHex += str;
    }
    //打印
    qDebug() << strHex;
    ui->textBrowser->insertPlainText(strHex);
}


发送16进制:

//发送数据
void YComWindow::on_sendMsgBtn_clicked()
{
    //
    qDebug() << ui->sendMsgLineEdit->text().toAscii();
    QByteArray temp;
    QString strHex;
    temp = ui->sendMsgLineEdit->text().toAscii();
    QDataStream out(&temp, QIODevice::ReadWrite);//将字节数组读入
    while(!out.atEnd()) {
        qint8 outChar = 0;
        out >> outChar;//每字节填充一次,直到结束
        QString str = QString("%1").arg(outChar&0xFF, 2, 16, QLatin1Char('0'));
        //十六进制的转换
//        ui->textBrowser->insertPlainText(str);
        strHex += str;
    }
    ypfCom->write(ui->sendMsgLineEdit->text().toAscii());
    ui->textBrowser->insertPlainText(strHex);
}
效果图如下:



分享到:
评论

相关推荐

    qt串口发送十六进制代码

    qt 串口 发送 十六 进制 代码 c c++

    QT下写的界面程序,可以实现串口和UDP的字符串和16进制收发

    用qt实现的界面程序,实现串口和UDP的字符串和16进制的收发以及qt界面美化的方法。 更详细的介绍及界面展示,请参考笔者博客,在CSDN上搜索“QT学习过程及简单串口和UDP通信demo开发过程及代码分享”。

    QT 收到下位机16进制数转换字符串显示

    1. **数据接收**:首先,你需要创建一个槽函数来接收下位机发送的16进制数据。这通常涉及到串口通信(如QSerialPort)或者其他设备通信接口。确保正确设置波特率、数据位、停止位和校验位,以确保数据传输的准确性。...

    qt实现的16进制显示界面

    本项目标题提到的是"qt实现的16进制显示界面",这意味着我们将探讨如何使用Qt来创建一个能够以16进制格式展示数据的用户界面。 首先,我们要理解16进制(Hexadecimal)是计算机科学中常见的数字表示法,它使用16个...

    Qt 读取16进制的data文件

    标签“Qt 16进制”提示我们在Qt编程时可能会遇到需要处理16进制数据的场景,例如解析或生成二进制文件格式,或者在网络通信中处理数据包。这里,我们使用的`QDataStream`非常适合这种任务,因为它允许以特定的字节序...

    Qt tcp传输控制命令,十六进制格式控制协议

    Qt tcp传输控制命令,十六进制格式控制协议

    Qt蓝牙串口源码支持十六进制发送、字符发送、定时发送

    【Qt蓝牙串口源码支持十六进制发送、字符发送、定时发送】是一个适用于嵌入式硬件开发的项目,尤其适合使用STM32微控制器的系统。该项目利用Qt框架提供了串口通信功能,并且增加了对十六进制和字符发送的支持,还...

    Qt 串口通信(QSerialPort)16进制收发实例代码(QT实战5)

    Qt 串口通信(QSerialPort)16进制收发实例代码  首先在项目文件里面添加一句   QT += serialport   使用静态函数生成QSerialPortInfo对象列表。列表中的每个QSerialPortInfo对象表示一个串行端口,可以查询端口...

    16进制dat数据转.bmp位图文件 源码

    16进制dat数据转.bmp位图文件图片 源码: //dat数据转换为bmp图片(位图),并存入到指定名称的图片; //dat数据(my.dat)与当前程序文件在同一文件夹,"my.dat"为包含文件头的完整的位图数据,可以下载参考我的另外一个...

    BMP图像转换为16进制数据

    针对单片机开发的16位TFT显示频的图像显示问题。 本软件可将 分辨率在320*240以下的BMP图像转换为 单片机可用的16进制数据格式。 可进行自己手画,也可以直接打开图片文件,目前只支持BMP格式

    QT+Cmake 串口通讯 16进制 网口通讯

    本文将详细解析如何利用QT图形界面库和Cmake构建工具进行串口通信,同时涵盖16进制数据处理以及网络通信的基础知识。 首先,QT是一个跨平台的C++图形用户界面应用程序开发框架,它提供了丰富的组件和API,可以方便...

    浮点型数据与16进制数据转换

    十六进制数据0x3f8000转换成浮点型数据为1.0,代码编程调试工具必不可少

    QT 进制转换小工具 二进制/十进制/十六进制/浮点数转换

    需要电脑配置有Qt环境变量:(使用windeployqt + formatTest.exe进行打包后可不依赖环境)。 源码地址:https://blog.csdn.net/weixin_41493717/article/details/81380827#comments_17790746

    16进制如何转换成float型数据

    在进行串口通信的过程中,经常会遇到需要将从下位机接收到的16进制数据转换为浮点数(float)的情况。以下将详细介绍这一过程的关键步骤和技术细节。 ### 一、16进制数据与浮点数的关系 16进制是一种常用的数制表示...

    Qt中的字符编码转换:UTF8、Unicode、GBK、ASCII、16进制字符、16进制数值

    5. **16进制数值转换**:在串口通信中,可能需要将接收到的16进制数值转换为字符或字符串。例如,函数`QByteArray_to_HexQString`将字节数组转换为16进制表示的字符串,通过遍历每个字节并分别提取高四位和低四位,...

    QT4进制转换、十六进制

    在QT4中,可以使用`QTextStream`的`setBase(16)`将十进制转换为十六进制,或者使用`QByteArray`的`toHex()`函数将字节数据转换为十六进制字符串。 在给定的项目文件中,我们看到有以下几个关键文件: - `mainwindow...

    QT打开二进制文件,串口分包定时发送

    在"QT打开二进制文件,串口分包定时发送"这个场景中,我们可以深入理解几个关键知识点: 1. **QT界面编程**:QT提供了一整套的库来支持GUI(图形用户界面)的开发,包括控件、布局管理、事件处理等。开发者可以使用...

    16进制报文分析器 Qt 源码

    【标题】:“16进制报文分析器 Qt 源码”是一个基于Qt框架的C++编程项目,专门设计用于解析和分析十六进制数据流。Qt是一个跨平台的应用程序开发框架,广泛用于创建图形用户界面和其他软件。 【描述】:这个小工具...

    用QT库QSerialPort实现串口收发,linux QWidget C++源代码Serial,采用十六进制hex收发数据

    QSerialPort是QT框架提供的一个强大工具,它使得C++开发者能够轻松地处理串行通信任务,无论是发送还是接收数据。在十六进制(hex)模式下收发数据是许多应用的常见需求,例如嵌入式系统调试、物联网设备通信等。 ...

    Qt利用TCP实现客户端与服务器端的数据传输

    `connectToHost()`方法用于指定服务器的IP地址和端口号,成功连接后,可以通过`write()`方法发送数据,通过`read()`或`readyRead()`信号接收数据。 ```cpp QTcpSocket client; if (!client.connectToHost(...

Global site tag (gtag.js) - Google Analytics