- 博客(28)
- 收藏
- 关注
原创 c#在关闭串口时卡死
SerialStream实例执行Close()方法时会lock实例自身当辅助线程调用DataReceived事件处理程序处理串口数据但还未更新界面时,点击界面“关闭”按钮调用SerialPort实例的Close()方法,UI线程会在lock(stream)处一直等待辅助线程释放stream的线程锁。处,直接关闭软件时也会卡死,即使在关闭窗口的回调函数中增加了串口中断回调函数的解绑,串口缓存区的清除,串口资源的释放等操作,依然会导致软件卡死。此时,线程死锁发生,两边都执行不下去了。
2024-04-29 10:56:01 623
原创 GD32F450 USB ADC DMA IIC FLASH GPIO
【代码】GD32F450 USB ADC DMA IIC FLASH GPIO。
2023-12-06 17:21:41 2539
原创 qt输出excel文档,linux window下均可使用
使用耳熟能详的第三方库 QtXlsxWriter,直接将源码添加到工程里,在头文件声明后可以直接在CPP中调用相应的API函数,源代码的添加参考添加.Pri文件的方法。
2023-11-27 13:50:53 646
原创 QT项目管理 添加共享项目到工程
qt项目代码量增加后,如果不进行项目管理的话会出现在一个文件夹下多个cpp文件,甚至多达10多个,那么一般大型项目或者多模块项目一般使用主项目+子项目的方式,也有将子模块编译为lib库的方式,直接供主项目调用,但是配置方式繁琐,本文提供使用共享文件的方式进行文件划分。.pri文件的新建可以使用新建文本文件,直接修改后缀名实现,但是部分系统不支持此方式。在主项目的.pri文件中添加 include(path+.pri)注意path是指你.pri文件的相对地址,.pri是指实际的文件名。
2023-11-27 13:43:52 437
原创 qt switchbutton Qcustomplot 源码+应用
代码是主函数,不仅仅使用了switchbutton 还使用了绘图十分方便的Qcustomplot。
2023-11-27 11:25:00 486
原创 QtConcurrent框架的优势 和使用细节
函数需符合一定规范:使用QtConcurrent::run()函数时,被调用的函数必须是静态成员函数、全局函数或lambda表达式,并且参数列表不能包含QObject*类型的对象。高效可靠:QtConcurrent采用了现代化的并行编程技术,包括线程池、Futures和Promises等,可以充分利用多核CPU资源,提高程序的运行效率和性能。,可以将任务提交给线程池进行执行。使用适当数量的线程:在创建线程池时,应该考虑任务的类型、数量和复杂度等因素,选择适当数量的线程来保证程序的性能和稳定性。
2023-11-27 11:14:27 1040
原创 qt使用openGauss数据库
在上述代码中,首先使用 QSqlDatabase::addDatabase 函数创建一个数据库连接,并指定使用 "QPSQL" 驱动(用于连接 OpenGauss 数据库)。然后,设置连接的详细信息,例如主机名、端口、数据库名称、用户名和密码。qDebug() << "查询失败:" << query.lastError().text();// 设置数据库名称。请根据实际的数据库配置信息,修改相应的主机名、端口、数据库名称、用户名和密码。// 设置数据库端口。qDebug() << "无法连接到数据库";
2023-08-15 13:25:11 377
原创 GD32F407实现usb通讯
/ 可以将数据发送回上位机或进行其他操作。// 在这里可以处理其他任务。// 在这里处理接收到的USB数据。// 处理USB中断。// 配置USB时钟和中断。// 配置USB端口。// USB传输缓冲区大小。// USB设备端口配置。// USB中断处理函数。
2023-07-18 20:48:49 866 1
原创 QT的usb通讯,热插拔检测
/ 设置流控制,根据实际情况修改。// 设置波特率,根据实际情况修改。// 设置停止位,根据实际情况修改。// 设置校验位,根据实际情况修改。// 设置数据位,根据实际情况修改。// 设置串口名字,根据实际情况修改。// 安装事件过滤器,监听USB插拔事件。// 检测到USB插拔事件。
2023-07-18 20:34:23 1785 1
原创 Qt实现usb通讯
/ 连接USB设备监视器的设备变更信号。// 创建UsbSerialBridge对象。// 关闭当前已打开的串口。// 关闭当前已打开的串口。// 检查是否是目标USB设备。// 设置新的串口名称。// 检查是否是目标USB设备。// 开始监听USB设备变更。// 槽函数:处理USB设备添加事件。// 槽函数:处理USB设备移除事件。// 创建USB设备监视器。// 连接串口数据读取信号。// 槽函数:接收数据并转发到串口。// 发送数据到USB设备。
2023-07-18 20:20:08 4550 3
原创 Qt不使用外部库的实现modbus RTU
/ 等待一段时间,确保数据发送成功和响应准备就绪。// 槽函数:接收数据并处理Modbus RTU响应帧。// 发送Modbus RTU请求帧。// 处理Modbus RTU响应帧。// 函数:接收Modbus RTU响应帧。// 函数:发送Modbus RTU帧。// 读取所有可用数据。// 读取寄存器数据的请求帧。// 连接串口数据读取信号。// 创建ModbusRTU对象。// 等待数据发送完成。// 等待数据接收完成。
2023-07-16 23:43:00 241 1
原创 Qt串口源码
QString fileName = fileDialog.getSaveFileName(this,tr("保存文件到"),"/Receivedata",tr(" File(*.cpp/*.txt/*.h)"));
2023-07-16 23:37:07 251 1
原创 直接在子类中启动串口子线程
QMessageBox::information(NULL,"提示","串口已经连接",QMessageBox::Yes);// qDebug()<<"构造串口线程ID为:"<<QThread::currentThread();// qDebug()<<"串口接收线程ID为:"<<QThread::currentThread();// qDebug()<<"串口发送线程ID为:"<<QThread::currentThread();// qDebug()<<"串口发送 "<<datas;
2023-07-16 23:31:53 51 1
原创 qt多ui界面切换
用户可以通过选择不同的选项卡来切换不同的界面。以上是一些常见的方法,您可以根据具体需求选择适合的方式来实现多个界面。使用多个窗口: 可以创建多个独立的窗口,并通过手动控制它们的显示和隐藏来切换不同的界面。使用多个窗口的好处是可以将每个界面的逻辑和布局分开管理,但需要手动处理窗口的显示和隐藏状态。使用QStackedWidget可以方便地切换并管理多个界面,只需设置当前页面的索引即可。使用QTabWidget可以通过选项卡来切换不同的界面,适合于具有固定数量的界面。
2023-07-16 23:23:14 3787 1
原创 qt加密和解密
/ 创建QAESEncryption类对象,并指定加密模式和填充方式。// 创建QAESEncryption类对象,并指定加密模式和填充方式。
2023-07-16 23:20:24 1981 1
原创 利用INI存储用户信息
注意,QSettings类默认使用INI格式进行读写操作,但也可以选择其他格式(如XML)。在实际应用中,可以根据需要扩展代码以适应更复杂的用户信息存储需求,例如使用不同的节、键和值来保存多个用户的信息。另外,如果需要加密用户信息或保护敏感数据,可以使用Qt的加密功能或其他加密算法对用户信息进行处理。// 创建QSettings对象并指定INI文件路径。// 创建QSettings对象并指定INI文件路径。// 创建QSettings对象并指定INI文件路径。
2023-07-16 23:18:11 88 1
原创 linux平台下的QT基于arm平台的zeroMq应用控制台
步骤4:将ZeroMQ库添加到项目中 将ZeroMQ库的头文件和库文件添加到Qt项目中。步骤2:创建一个新的Qt项目 使用Qt Creator或任何其他喜欢的文本编辑器创建一个新的Qt控制台项目。步骤5:编写代码 在Qt项目中的主.cpp文件中编写代码以使用ZeroMQ。请注意,要使用ZeroMQ的功能,您需要包含相应的头文件并使用适当的命名空间。在Qt项目的源代码文件中编写使用ZeroMQ的代码。在编写代码时,确保正确设置ZeroMQ的上下文和套接字对象,并使用适当的函数发送和接收消息。
2023-07-11 20:08:36 282
原创 ZEROMQ SUB
/ 初始化 ZeroMQ 上下文。// 创建 SUB(订阅者)套接字。// 销毁 ZeroMQ 上下文。// 设置订阅的频道。
2023-07-11 19:39:16 43
原创 zeroMq pub
/ 发布间隔为1秒。// 初始化 ZeroMQ 上下文。// 创建 PUB(发布者)套接字。// 销毁 ZeroMQ 上下文。// 绑定套接字到特定地址。
2023-07-11 19:36:19 48
原创 zeroMq的pub sub
/ 发布间隔为1秒。// 初始化 ZeroMQ 上下文。// 初始化 ZeroMQ 上下文。// 创建 PUB(发布)套接字。// 销毁 ZeroMQ 上下文。// 创建 SUB(订阅)套接字。// 销毁 ZeroMQ 上下文。// 绑定套接字到特定地址。// 设置订阅的频道。创建子线程/发布者线程。
2023-07-11 19:34:49 126
原创 qeroMq sssss
/ 设置订阅的频道,例如网络摄像头的地址。// 初始化 ZeroMQ 上下文。// 创建 SUB(订阅)套接字。// 销毁 ZeroMQ 上下文。// 连接到网络摄像头。
2023-07-07 20:50:32 121 1
原创 Qt使用zeromq连接网络摄像头
/ 替换为实际的网络摄像头地址。// 将地址转换为字节数组。// 设置订阅的频道,例如网络摄像头的地址。// 初始化 ZeroMQ 上下文。// 创建 SUB(订阅)套接字。// 销毁 ZeroMQ 上下文。// 连接到网络摄像头。
2023-07-07 20:47:12 225
原创 Qt上位机,多线程,网络,串口,曲线拟合,scpi
涉及多线程,线程池,串口,socket,SCPI协议的程控仪表,图像绘制,excel表格,最小二分法曲线拟合
2023-05-05 10:56:53 779 4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人