为了配合项目的使用,需要写个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 串口 发送 十六 进制 代码 c c++
用qt实现的界面程序,实现串口和UDP的字符串和16进制的收发以及qt界面美化的方法。 更详细的介绍及界面展示,请参考笔者博客,在CSDN上搜索“QT学习过程及简单串口和UDP通信demo开发过程及代码分享”。
1. **数据接收**:首先,你需要创建一个槽函数来接收下位机发送的16进制数据。这通常涉及到串口通信(如QSerialPort)或者其他设备通信接口。确保正确设置波特率、数据位、停止位和校验位,以确保数据传输的准确性。...
本项目标题提到的是"qt实现的16进制显示界面",这意味着我们将探讨如何使用Qt来创建一个能够以16进制格式展示数据的用户界面。 首先,我们要理解16进制(Hexadecimal)是计算机科学中常见的数字表示法,它使用16个...
标签“Qt 16进制”提示我们在Qt编程时可能会遇到需要处理16进制数据的场景,例如解析或生成二进制文件格式,或者在网络通信中处理数据包。这里,我们使用的`QDataStream`非常适合这种任务,因为它允许以特定的字节序...
Qt tcp传输控制命令,十六进制格式控制协议
【Qt蓝牙串口源码支持十六进制发送、字符发送、定时发送】是一个适用于嵌入式硬件开发的项目,尤其适合使用STM32微控制器的系统。该项目利用Qt框架提供了串口通信功能,并且增加了对十六进制和字符发送的支持,还...
Qt 串口通信(QSerialPort)16进制收发实例代码 首先在项目文件里面添加一句 QT += serialport 使用静态函数生成QSerialPortInfo对象列表。列表中的每个QSerialPortInfo对象表示一个串行端口,可以查询端口...
16进制dat数据转.bmp位图文件图片 源码: //dat数据转换为bmp图片(位图),并存入到指定名称的图片; //dat数据(my.dat)与当前程序文件在同一文件夹,"my.dat"为包含文件头的完整的位图数据,可以下载参考我的另外一个...
针对单片机开发的16位TFT显示频的图像显示问题。 本软件可将 分辨率在320*240以下的BMP图像转换为 单片机可用的16进制数据格式。 可进行自己手画,也可以直接打开图片文件,目前只支持BMP格式
本文将详细解析如何利用QT图形界面库和Cmake构建工具进行串口通信,同时涵盖16进制数据处理以及网络通信的基础知识。 首先,QT是一个跨平台的C++图形用户界面应用程序开发框架,它提供了丰富的组件和API,可以方便...
十六进制数据0x3f8000转换成浮点型数据为1.0,代码编程调试工具必不可少
需要电脑配置有Qt环境变量:(使用windeployqt + formatTest.exe进行打包后可不依赖环境)。 源码地址:https://blog.csdn.net/weixin_41493717/article/details/81380827#comments_17790746
在进行串口通信的过程中,经常会遇到需要将从下位机接收到的16进制数据转换为浮点数(float)的情况。以下将详细介绍这一过程的关键步骤和技术细节。 ### 一、16进制数据与浮点数的关系 16进制是一种常用的数制表示...
5. **16进制数值转换**:在串口通信中,可能需要将接收到的16进制数值转换为字符或字符串。例如,函数`QByteArray_to_HexQString`将字节数组转换为16进制表示的字符串,通过遍历每个字节并分别提取高四位和低四位,...
在QT4中,可以使用`QTextStream`的`setBase(16)`将十进制转换为十六进制,或者使用`QByteArray`的`toHex()`函数将字节数据转换为十六进制字符串。 在给定的项目文件中,我们看到有以下几个关键文件: - `mainwindow...
在"QT打开二进制文件,串口分包定时发送"这个场景中,我们可以深入理解几个关键知识点: 1. **QT界面编程**:QT提供了一整套的库来支持GUI(图形用户界面)的开发,包括控件、布局管理、事件处理等。开发者可以使用...
【标题】:“16进制报文分析器 Qt 源码”是一个基于Qt框架的C++编程项目,专门设计用于解析和分析十六进制数据流。Qt是一个跨平台的应用程序开发框架,广泛用于创建图形用户界面和其他软件。 【描述】:这个小工具...
QSerialPort是QT框架提供的一个强大工具,它使得C++开发者能够轻松地处理串行通信任务,无论是发送还是接收数据。在十六进制(hex)模式下收发数据是许多应用的常见需求,例如嵌入式系统调试、物联网设备通信等。 ...
`connectToHost()`方法用于指定服务器的IP地址和端口号,成功连接后,可以通过`write()`方法发送数据,通过`read()`或`readyRead()`信号接收数据。 ```cpp QTcpSocket client; if (!client.connectToHost(...