Qt 串口自定义波特率

Qt串口实现921600波特率的方法 写在这里的重点并不是告诉人如何在Qt的串口编程中实现921600的Bps。 我们只需要添加自己需要的波特率对应的CBR_921600即可。 写到这里,重点是体会到,面对问题时的思考方式。或者是思路,是非常重要的。简单来说就是,多动脑。 阅读详情

点击上方蓝字可直接关注公众号哦,方便下次阅读

Qt 多线程串口调试助手

之前和大家分享过跨平台多线程串口调试助手,不过里面没有实现自定义波特率的功能。某天我突然想把这个功能加上,但是网上搜索之后有得到有效的信息,于是就查看Qt的帮助文档,查看了波特率的相关枚举值,又查看了setBaudRate,最后还是得查Qt帮助文档,在里面发现了重要依据: To set the baud rate, use the enumerationQSerialPort::BaudRate or any positive qint32 value. 即setBaudRate时,直接传入自定义波特率的值!

 

这为实现自定义波特率提供了强有力的依据;然后试了下果然可以!

 

Ok,既然自定义波特率实现了,那么接下来就是在UI中添加这个可以输入自定义波特率的组件了。但是怎么让QComboBox在已有的item上再添加一个lineEdit呢?我陷入了深深的沉思......

 

这一沉思一周就过去了。结合自己的经验(Qt TableWidget控件及自定义委托),我首先想到的是自定义委托,但是动手测试了下,结果不行,自定义委托中添加的也都是一类相同的控件,于是放弃了该方法。但是别人的功能是怎么实现的呢?于是边查看QComboBox头文件中的函数边在网上搜寻线索,有一个使能QComboBox item可编辑的接口,但是使能之后每个item都可以编辑了,这也不是我想要的结果啊!我还想过,当选择【Custom】时,移除QComboBox对象,添加一个新的可编辑的QComboBox对象,后来觉得这个比较反人类,于是没再继续。

 

而且查看了别人串口调试助手运行时的库,发现也是用到了Qt,这我就不能忍了。于是看QComboBox的头文件,发现一个setLineEdit,诶!!!这个接口有点意思,值得一试,经过多种组合,终于在Windows下实现了我想要的效果——点击预先设置的波特率,可通过item选择;当选择【Custom】item时,item变成lineEdit,完美!

 

主要函数如下:

connect(ui->cbx_baudrate, SIGNAL(currentIndexChanged(int)),
            this, SLOT(slot_baudrateIndexChange(int)));


//当选择【Custom】item时
void SerialPortMainWindow::slot_baudrateIndexChange(int baudrateIndex)
{
    if(4 == baudrateIndex)
    {
        QLineEdit *lineEdit = new QLineEdit(this);   //输入时可使用正则表达式做一定限制
        ui->cbx_baudrate->setLineEdit(lineEdit);
    }
    else
    {
        ui->cbx_baudrate->setEditable(false);
    }
}


    connect(ui->cbx_baudrate, SIGNAL(currentTextChanged(QString)),
            this, SLOT(slot_baudrateChange(QString)));


//获得自定义波特率的值
void SerialPortMainWindow::slot_baudrateChange(QString baudrateText)
{
    m_baudrate =  baudrateText;


    qDebug() << m_baudrate;
}

最后效果如下:

小结:

主要就是当你想实现一个功能时,结合自己以前的经验,是否有解决方法?

如果没有的话,主要还是查看官方文档!

当一种方法不行时,及时更换另一种方法。

如需完整工程,可在公众号后台留言。

欢迎大家关注公众号:

Qt在Windows系统中串口通信最高波特率 最近利用Qt写上位机时遇到了一个设置波特率的问题,按照Qt官方文档的说法,参数只要是qint32类型的都可以,但是实际使用发现超过大约3M的波特率就会修改波特率失败,如果是打开串口前修改也会因为波特率修改失败无法打开串口。找到的Qt返回的错误码是8:UnkownError这让我摸不着头脑,于是一路顺着Qt源码找下去。 找到了qtserialport/src/serialport/qserialport.cpp文件中的设置波特率函数 bool QSerialPort::setBaudRate(qint32 b 阅读详情

相关推荐

波特率_Qt 串口自定义波特率

之前和大家分享过跨平台多线程串口调试助手,不过里面没有实现自定义波特率的功能。某天我突然想把这个功能加上,但是网上搜索之后有得到有效的信息,于是就查看Qt的帮助文档,查看了波特率的相关枚举值,又查看了setBaudRate,最后还是得查Qt帮助文档,在里面发现了重要依据: To set the baud rate, use the enumerationQSerialPort::Ba...

weixin_39772652的博客 1164

QT5自带库实现高波特率 (256000 460800 1382400 )

QT5实现高波特率 (256000 460800 1382400 )

weixin_43626214的博客 1万+

避坑指南:Qt串口开发中波特率设置/数据解析的5个常见错误(附正确代码示例)

本文深入剖析了Qt串口开发中波特率设置与数据解析的五个常见陷阱,包括自定义波特率失效、缓冲区处理不当、十六进制数据转换错误等。通过提供经过实战检验的正确代码示例,帮助开发者避免数据丢包、乱码等“灵异事件”,提升嵌入式、工控等领域串口通讯的稳定性和可靠性。

red88的博客 623

关于qt通信的基础配置解析(以串口和tcp为例)

【代码】关于qt通信的基础配置解析(以串口和tcp为例)

m0_65259648的博客 890

【Qt】修改QSerialPort支持的波特率

QSerialPort是Qt操作串口的子模块,默认的支持的波特率最大为115200.可以通过修改QSerialPort子模块源码,添加需要的波特率。

郭老二 1529

线阵相机标定必看:如何用Halcon实现亚毫米级精度测量(以HC050标定板为例)

本文以HC050标定板为例,详细阐述了如何利用Halcon实现线阵相机的高精度标定,以达到亚毫米级测量。文章深入剖析了线阵相机标定的核心原理、面临的独特挑战,并提供了从硬件搭建、图像采集到Halcon软件实操的完整路径,重点解析了运动参数设置、精度验证及常见问题排错,为精密测量应用提供系统解决方案。

weixin_29213655的博客 313

qt int转换成qstring_Qt 串口自定义波特率

之前和大家分享过跨平台多线程串口调试助手,不过里面没有实现自定义波特率的功能。某天我突然想把这个功能加上,但是网上搜索之后有得到有效的信息,于是就查看Qt的帮助文档,查看了波特率的相关枚举值,又查看了setBaudRate,最后还是得查Qt帮助文档,在里面发现了重要依据: To set the baud rate, use the enumerationQSerialPort::Ba...

weixin_39638708的博客 280

超详细 | 贝叶斯网络基础——有图有真相

Hello,大家好,我是starz。这是本系列的第二篇《概率基础Ⅱ》,虽说是概率基础,但作为过渡,它开始以图为载体 这节的主要内容有: 贝叶斯网络 三种结构 D-划分 贝叶斯球 马尔科夫毯 应用例子 总结 让我们开始吧 :3 贝叶斯网络 概率图模型可笼统分为两类,一是基于无向图的马尔科夫网络: 二是基于有向图的贝叶斯...

qq_41603411的博客 2万+

QT串口助手(二):参数配置

作者:zzssdd2 E-mail:zzssdd2@foxmail.com 一、前言 主要实现功能 串口参数的配置:波特率、数据位、停止位、校验位 本机串口设备的查询与添加显示 串口设备的手动更新与打开关闭 涉及的知识点 串口类QSerialPort及QSerialPortInfo的使用 自定义波特率的实现 QComboBox下拉列表自适应文本长度显示 控件QPushButton、QComboBox的使用 二、功能实现 下面开始逐步讲解以上列举的功能 2.1、串口设备的查询添加 创建一.

zzssdd2的博客 2932

计量经济学(因果关系探究-空间双重差分模型: 破解空间溢出效应的因果分析工具)

本文介绍了传统双重差分(DID)模型及其局限性,重点阐述了空间DID模型的必要性。传统DID通过组间差分分离干预效应,但无法处理空间溢出效应。空间DID模型引入空间计量方法,包括三种类型:空间自回归模型(SDID-SAR)捕捉因变量溢出,空间误差模型(SDID-SEM)处理残差相关性,空间杜宾模型(SDID-SDM)同时考虑因变量和自变量的空间滞后。模型选择需结合空间相关性检验,适用于环境政策、房地产限购等存在空间交互效应的研究场景。

YBAdvanceFu的博客 2033

浪涌电流测试仪的工作原理

浪涌电流脉冲形成的开始由同步电路 13 确定,该同步电路 13 发送命令以打开和第二开关 10 和 11,向发生器 14 发送控制命令以生成被测半导体器件 5 的控制信号和参考信号整形器 9 的触发脉冲。电流源的功率输出并联连接,以对流经被测半导体样品的电流求和。此外,使用数字控制扩展了测试仪的功能,能够产生各种形状的电流脉冲,例如梯形电流脉冲,以估计被测晶闸管的导通状态扩展时间。由于晶体管3的栅极是连接的,并且平衡电阻4包含在晶体管3的源中,因此通过每个晶体管3的电流脉冲大致相同,并重复参考信号的形状。

Jesse0257的博客 1258

Qt小项目串口助手控制LED:轻松掌控STM32开发板LED

Qt小项目串口助手控制LED:轻松掌控STM32开发板LED 去发现同类优质开源项目:https://gitcode.com/ 在众多编程框架中,Qt以其跨平台和易用性著称,是许多开发者的首选工具。今天,我们要为大家推荐一个Qt小项目——串口助手控制LED。这个项目不仅可以帮助开发者快速掌握Qt框架,还能实现串口通信的基本功能,让您轻松控制STM32开发板上的LED。 项目介绍 Qt小项目串口助手...

gitblog_06718的博客 1074

Springboot + vue 实现导出word

Springboot + vue 实现导出word 后端代码 使用word先创建好已知的模板 使用word工具另存为.xml格式的文件 使用freemarker ftl模板 将修改后的xml文件复制到开发工具中,将文件后缀修改为ftl文件,并且将里面的动态值使用${}包裹例如:${zyjn} word工具类 /*** * * Project Name:maventest * <p>生成word工具类<br> * * @ClassName: WordUtil *

qq_45542373的博客 2895

Qt小项目——串口助手控制LED

Qt小项目——串口助手控制LED 去发现同类优质开源项目:https://gitcode.com/ 本项目是一个使用Qt框架开发的串口助手小软件。本项目旨在帮助开发者快速上手Qt开发,并实现串口通信的基本功能。通过该软件,用户可以实现对STM32开发板上两个LED的控制。 功能特点 自动搜索本机串口:启动软件时,自动扫描并显示本机连接的串口。 手动扫描串口:用户可以点击“搜索”按钮,手动更新串口...

gitblog_06759的博客 447

Win7/10/11文件拖拽导致资源管理器闪退问题

最近老是遇到把文件从资源管理器拖动到微信或者浏览器时,资源管理器直接闪退的问题,一开始在公司遇到了还以为是电脑配置太低,直到被封闭在家办公,发现自己的高级电脑也有这个问题,那就来了解了解问题是出在什么地方把。

Nicer_feng's blog 1万+

CAPL学习之路-关键字

在capl中,关键字具有特殊的含义和用途,因此,不得将关键字用作变量或函数的名称 声明数据类型的关键字 可以用不同的关键字,声明或引用不同类型的数据 byte 声明一个字节的变量 word 声明两个字节的变量 dword 声明四个字节的变量 int 声明两个字节的整数 long 声明四个字节的变量 qword 声明八个字节的变量 char 声明一个字符串 float 声明一个浮点数,8个字节 double 声明一个浮点数,8个字节 定义一个结构体或枚举类型 struct struct Data { .

jasonj333 6108

Qt串口调试工具

Qt串口调试工具 去发现同类优质开源项目:https://gitcode.com/ 简介 本资源为基于Qt框架,使用QSerialPort库开发的串口调试工具。该工具支持高速自定义波特率,具备自动发送功能,允许用户自定义功能按钮及指令。此外,本工具通过QSS样式表进行了美化处理,以提供更为友好的用户界面。该工具是专为公司测试和调试需求而开发的,包含三个模块,可根据需要进行相应的删减和定制。 功能特...

gitblog_06734的博客 944

【软考】系统集成项目管理工程师(一)信息化知识

软考中级——系统集成项目管理工程师备考干货第一章:信息化知识。

商务合作 | 共同学习 | 携手共进 9万+

学习笔记之----在Qt下的串口读写

Tags: linux Qt 串口 这几天一直纠结于Qt下的串口读写,我把疑问和解决过程陆续记录下来,怕以后忘记了嘿嘿。 欢迎大家一起学习分享经验! 因为Qt没有提供给我们现成的串口类,在Qt下想实现串口读写操作,有两种办法: 1.自定义串口类 通常我们都是使用写好的第三方串口类,当然了有linux下与window下两个版本,我是做Linux下开发的,所以这里就先提...

46

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

使用QT简单写一个串口助手

作者:Jack_G 时间:2021.10.12 版本:V1.0 上次修改时间:无 批注:自动获取com口 ①在工程文件中添加支持包,(官方支持,没有的话使用官方的管理工具添加即可) QT += serialport 在.h中添加串口相关的支持包 #include <QSerialPort> //提供访问串口的功能 #include <QSerialPortInfo> //提供系统中存在的串口的信息 ②然后再UI界面添加控件 注意命名方式,按照易理解

Jack的小窝 533

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

openmv串口数据 串口助手_Qt小项目之串口助手控制LED

前言最近刚学了一点Qt开发上位机,尝试着做个小软件练练手。查找了很多资料,做了一个简单的串口助手,可以实现串口基本发送和接收功能,支持中文显示,还可以控制STM32开发板上的两个LED。1.软件界面2.主要功能:启动自动搜索本机串口,或者手动点击搜索键扫描串口自定义波特率支持中文显示支持发送新行3.实际效果:(GIF压缩后根本没法看。。。。)花了大概3天时间吧,找了很多资料,功能很简单,...

weixin_39796238的博客 716

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

qt designer文本输入框_Qt小项目之串口助手控制LED

Qt小项目之串口助手控制LED前言最近刚学了一点Qt开发上位机,尝试着做个小软件练练手。查找了很多资料,做了一个简单的串口助手,可以实现串口基本发送和接收功能,支持中文显示,还可以控制STM32开发板上的两个LED。1.软件界面2.主要功能:启动自动搜索本机串口,或者手动点击搜索键扫描串口自定义波特率支持中文显示支持发送新行3.实际效果:花了大概3天时间吧,找了很多资料,功能很简单, 但想着是自己...

weixin_39642619的博客 1095

QT下的串口编程

QT下的串口编程 对串口进行读和写。编程实例:写一个自己的串口助手。 1.创建工程  依旧是选择qt widget application,然后再配置好相关操作,基类选择QWidget。创建后马上编译一下,验证一下初始工程没有问题。 2. 做好相关的UI界面 - 做一个文本接收界面,Plain Text Edit。 - 作一些相关的属性选择下拉框(诸如串口号,波特率,校验位等),使用Combo Box。双击控件就可以编辑相关的下拉选项。 - 做一个发送框,使用Line Edit,注意设置为readOnly。

tjh7808的博客 677

qt串口采用队列_基于STM32的RGB调色器——STM32程序和Qt上位机全开源

前言uFUN开发板1.0版本评测时,基于Qt写了个小上位机,可以通过串口来控制板子上的RGB灯,通过控制,可以混合出任意的颜色,今天整理了一下,开源这个Qt上位机和STM32代码。项目介绍基于uFUN开发板,实现通过Qt上位机控制uFUN开发板RGB灯亮度,主要包括STM32下位机程序和Qt上位机程序。Gitee项目地址:https://gitee.com/whik/uFUN_RGB_Contro...

weixin_39737317的博客 419

QT 串口QSerialPort + 解决接收数据不完整问题

类:QSerialPort 例程:Examples\Qt-5.9.1\serialport\terminal,该例子完美展示了qt串口收发过程,直接在这上面修改就可以得到自己的串口软件。核心方法 //读串口 QByteArray QSerialPort::readAll() //写串口 qint64 QSerialPort::write(const QByteArray &amp;data) 注

Kelvin_Yan的专栏 2万+

串口开源工具Serial Studio:15M波特率串口通讯乱码问题修复

本文记录了修复开源串口工具Serial Studio在15Mbps高速传输场景下的bug过程。针对WCH CH9111/CH9114芯片在Windows平台出现的乱码问题,分析发现根源在于:系统内核缓冲区仅4KB导致数据溢出,Qt接口无法配置底层参数,以及波特率枚举限制。解决方案包括:通过Win32 API将内核缓冲区扩容至300KB,提升应用层缓存至512KB,支持1-15Mbps全域波特率,并优化UI显示。经15分钟满速测试验证稳定性后,相关优化已提交PR至官方仓库。

qq_43010294的博客 355
上一篇: 工业相机网络通讯调试
下一篇: Qt Model/View教程——只读Table
Pou光明
博客等级 码龄12年 3701粉丝 398原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值