为了配合项目的使用,需要写个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开发过程及代码分享”。
QT 收到下位机16进制数转换字符串显示,绝对可靠 简单易懂。
qt实现的16进制显示控件,可以用来显示串口原始数据,同时支持字符串显示。资源为一个调用demo。用作参考。
vs中有格式化输入,qt中也有自己的,适合新手
Qt 串口通信(QSerialPort)16进制收发实例代码 首先在项目文件里面添加一句 QT += serialport 使用静态函数生成QSerialPortInfo对象列表。列表中的每个QSerialPortInfo对象表示一个串行端口,可以查询端口...
针对单片机开发的16位TFT显示频的图像显示问题。 本软件可将 分辨率在320*240以下的BMP图像转换为 单片机可用的16进制数据格式。 可进行自己手画,也可以直接打开图片文件,目前只支持BMP格式
Qt字符转换,串口接收数据转为中文显示可用。Qt中的字符编码转换:UTF8、Unicode、GBK、ASCII、16进制字符、16进制数值
16进制dat数据转.bmp位图文件图片 源码: //dat数据转换为bmp图片(位图),并存入到指定名称的图片; //dat数据(my.dat)与当前程序文件在同一文件夹,"my.dat"为包含文件头的完整的位图数据,可以下载参考我的另外一个...
需要电脑配置有Qt环境变量:(使用windeployqt + formatTest.exe进行打包后可不依赖环境)。 源码地址:https://blog.csdn.net/weixin_41493717/article/details/81380827#comments_17790746
1、可以使用vs2019/vs2017 Qt进行编译 2、源码说明链接:https://mingshiqiang.blog.csdn.net/article/details/80733737
QT 实现的 64 bit 十六进制与十进制实时相互转换工具,带 bitmap 配置显示,方便进行寄存器位的配置
做串口通信时,下位机输入的是16进制数据,如何将之转换成float数据?
1、十进制转换 2、二进制转换 3、十六进制转换
利用QT实现客户端的接收和发送数据.............................................................................................
包含一个客户端和一个服务器端,实现简单的数据传输,个人感觉适于新手学习
自己写的第一个qt界面程序,有很多不足。希望能给需要的人一些小思路
可以获取textEdit上的QString类型16进制数转换为ByteArray; 输入数据错误判断及提示; CRC16校验计算公式; 计算ByteArray的crc16结果; 结果转换为QString,并且每两位数据都需要增加空格展示; 输入清除功能; ...
使用MSComm控件完成的串口调试助手, 可打开1到16的串口,经测试性能很好 定时发送 16进制发送 发送文件 16进制显示 在长时间大数据量测试的情况下能正常工作 解决十六进制00不能显示的问题
十六进制数据0x3f8000转换成浮点型数据为1.0,代码编程调试工具必不可少