自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(167)
  • 收藏
  • 关注

原创 自动化设备控制系统 / Qt + 嵌入式设备软件

大型软件架构其实是不断重构演化出来的简单代码↓模块化↓分层↓服务化↓完整架构。

2026-03-15 22:47:03 294

原创 工业级大型 Qt / C++ 项目中 EventBus 的实现方式

类型安全:每种事件是 C++ 类型线程安全:多线程系统必备同步 / 异步发布:不同事件需求不同模块自动注册:模块创建即可订阅事件易扩展:新增模块无需修改已有模块💡 工业项目实践经验:大型项目没 EventBus,模块耦合会快速失控。EventBus 是大型 Qt / C++ 工程的“血脉”,控制系统、机器人、工业设备几乎都离不开它。

2026-03-15 22:44:08 421

原创 QT 事件驱动架构

很多大型系统(工业软件、机器人系统、自动驾驶、复杂 Qt 应用)在规模变大以后,都会逐渐引入。原因很简单:当系统模块越来越多时,,最终变得无法维护。我用一个来解释。

2026-03-15 22:38:38 357

原创 Qt+C++ 控制软件架构实例

简单代码↓模块化↓分层↓服务化↓成熟架构是不断重构演化出来的。如果你愿意,我可以再给你讲一个真正非常关键但很多人不知道的东西👉为什么大型项目一定要做“事件驱动架构(Event Bus)”很多系统(机器人 / 自动驾驶 / 工业设备 / Qt大型软件)都是靠它解决模块耦合问题。理解这个,你基本就能看懂任何大型软件架构。

2026-03-15 22:19:31 385

原创 Qt/C++ 项目 pro` 文件管理办法

endif。

2026-03-13 20:48:21 246

原创 <C++学习>C++ 静态函数

静态函数用于处理“属于整个类、而不属于某个具体对象”的事情。初始化日志系统关闭日志系统logInfo()logError()这种依赖对象内部状态的函数,就必须通过对象调用。静态成员变量和静态成员函数的关系,以及它们在.h.cpp里应该怎么写。

2026-03-10 17:47:42 365

原创 QT构建构建DataBus总线

构建DataBus总线 怎么“用起来”。你照着做,跑通后你就会知道它到底在干啥。2)准备 DataBus(就是一个“广播器”)3)在 main.cpp 注册类型(Qt5 必须) 里:4)发布数据(emit):谁产生数据谁发比如你在采集模块里(或先用 QTimer 测试):5)订阅数据(connect):谁想用数据谁接比如在 或 里接收:6)把它接到 CSV 保存(你最想要的)你已经有 的话,订阅里这么写:你真正要记住的就两句话emit:产生数据的地方发出去c

2026-01-23 19:07:18 277

原创 QT 对话框(QDialog)中 accept、reject、exec、open的使用

方法作用是否关闭窗口是否阻塞结果exec()显示对话框否✅ 是返回 Accepted / Rejectedopen()显示对话框否❌ 否用信号获取accept()确认并关闭✅ 是Acceptedreject()取消并关闭✅ 是RejectedQ_OBJECTpublic:QPushButton *ok = new QPushButton("确定");QPushButton *cancel = new QPushButton("取消");

2026-01-09 09:53:24 954

原创 Ubuntu 上安装和配置 Samba

通过上述步骤,你可以在 Ubuntu 上安装并配置 Samba 以实现文件共享。通过 Samba,Windows 和其他 Linux 设备可以轻松地与 Ubuntu 共享文件。你需要为 Samba 创建一个用户,该用户将用于文件共享。现在,你可以从其他计算机(例如 Windows 或 Linux 机器)访问共享目录。首先,更新系统以确保所有包都是最新的。部分,并添加共享目录的配置。你可以编辑这个文件来设置共享目录和权限。这将安装 Samba 服务器及其依赖项。如果没有错误消息,则表示配置成功。

2025-12-10 12:45:09 1120

原创 QT TCP 源码结构框架

解耦干净UI ↔ 传输 ↔ 协议 ↔ 命令,每层都有清晰边界。想改协议,只动 ProtocolParser/Dispatcher,不动 UI/传输。想加 UdpService,只要再继承 ITransport 就行。扩展性强支持串口、TCP 只是换一个ITransport实现。JSON 协议解析(在某个 CMD 里用 QJsonDocument 解析)多协议并存(不同 CMD 对应不同解析方式)更多通信方式(UDP、WebSocket 等)可维护性好每个类职责很单一,文件长度可控。

2025-12-09 10:08:10 875

原创 QT 串口 源码结构框架

下面假设用 Qt Widgets,工程名叫SerialTool。(用 qmake 或 CMake 都行,这里用 qmake 举例。

2025-12-09 10:03:48 905

原创 QT QSerialPort 串口不稳定,串口是否使用独立线程

QSerialPort 默认不在独立线程,也不需要线程就能稳定工作。只有你自己写了耗时操作时才需要线程。综上如果没有使用独立线程,无法稳定工作是因为代码写的烂!!下面我给你一份完整的增强版串口工具设计方案,涵盖你提到的全部功能:✔ 自动重连✔ 时间戳显示✔ 自动换行、清空✔ 统计发送/接收字节数✔ 发送定时器(循环发送)✔ 协议命令管理器(按 CMD 分发)✔ JSON 协议解析✔ 多协议同时支持设计结构建议写法关键代码示例。

2025-12-08 20:26:10 707

原创 Qt 输入框: 数字/浮点/十六进制数值输入处理

内容结构清晰、代码可直接用,你可以复制到你的博客里。

2025-12-08 20:17:26 540

原创 QT的解耦方式

用户点按钮→ MainWindow 读取 lineEdit→ 调用 processor->processInput(text)→ processor 处理→ 发出 log(…) 信号→ 发出 resultReady(…) 信号→ MainWindow 接收信号并更新 UI[UI按钮] --> [MainWindow拿输入] --> [StringProcessor处理逻辑]↑ || v[展示结果] <-- signal ----- [结果]

2025-12-08 19:54:33 1224

原创 QT控件: 单选按钮、复选框、信号槽与 QButtonGroup

本文介绍了Qt C++中单选按钮(QRadioButton)和复选框(QCheckBox)的基础用法,以及如何通过信号槽机制实现交互功能。主要内容包括:1) 单选按钮和复选框的基本概念与创建方法;2) 使用信号槽监听按钮状态变化;3) 通过QButtonGroup管理多组单选按钮实现互斥选择;4) 一个完整的示例项目,结合单选按钮、复选框和提交按钮,演示如何获取用户选择结果。文章提供了可直接运行的代码示例,适合Qt初学者快速掌握按钮控件的核心用法。

2025-12-08 17:34:44 405

原创 QT控件:QTableWidget

Qt QTableWidget详解

2025-11-25 15:31:17 937 1

原创 统计算法:高斯朴素贝叶斯

高斯朴素贝叶斯(Gaussian Naive Bayes,简称 GNB)是一种基于贝叶斯定理的分类算法,特别适用于具有连续特征数据的任务。它假设数据的特征之间是条件独立的,并且每个特征都服从高斯分布(正态分布)。高斯朴素贝叶斯是一种非常简单且有效的分类算法,广泛应用于文本分类、疾病预测、环境监测等领域。高斯朴素贝叶斯是一种简单、高效的分类算法,适用于处理具有连续特征的分类问题。它通过贝叶斯定理结合特征的高斯分布假设进行分类,能够快速进行训练和预测。

2025-11-17 13:21:48 913

原创 【自适应滤波器】LMS算法(最小均方算法)

LMS(最小均方)算法

2025-11-14 10:23:56 945

原创 树莓派 Ubuntu 24.04 开机换源总结

本文介绍了三种在Ubuntu 24.04系统中更换APT软件源的方法:1)通过图形界面使用"软件和更新"工具手动选择镜像站;2)推荐使用命令行方式直接修改sources.list文件替换为清华源;3)提供自动化脚本方案,通过systemd服务实现开机自动换源并更新。三种方法均可有效解决国内用户访问官方源速度慢的问题,其中命令行方式最稳定可靠,自动化方案适合批量部署场景。操作完成后建议执行apt clean和apt update命令确保更新生效。

2025-09-08 15:06:01 744

原创 Ubuntu下把 SD 卡格式化为 FAT32

本文介绍在Ubuntu系统中将SD卡格式化为FAT32的详细步骤:1)使用lsblk命令确认设备名;2)卸载并清理原有分区;3)使用parted创建MSDOS分区表和FAT32主分区;4)执行mkfs.vfat格式化;5)通过lsblk验证结果。文中特别说明了大容量SD卡(>32GB)的兼容性问题,并提供了exFAT格式选项和常见问题排查方法。所有操作均需管理员权限,且会清除SD卡原有数据。

2025-09-03 20:17:32 1540

原创 Python之matplotlib 实战应用一:统计数据采集信息

摘要 本文介绍了使用Python的pandas库合并多个CSV文件的方法。核心代码通过glob和os模块查找并排序CSV文件,使用pd.read_csv逐个读取文件,添加来源列后合并为单个DataFrame,最后输出为统一文件。文章详细解析了代码各部分功能,包括路径处理、文件读取、数据合并等关键步骤。同时提供了优化建议:处理大文件时可使用流式合并或生成器;建议添加日期解析、异常处理、编码兼容等功能提高健壮性;并给出了包含日期过滤、多编码支持等增强功能的完整代码框架。该方案适用于需要整合分散数据集的场景,特别

2025-08-27 18:24:59 1197

原创 Python之matplotlib 基础六:绘制堆叠图

堆叠图(Stack Plot)是Matplotlib中用于展示多数据系列相对变化的图表类型。它通过逐层叠加显示各系列对总量的贡献,适用于时间序列数据和多类别比较。核心函数plt.stackplot()接收x轴数据、多个y轴系列及颜色、标签等参数。典型应用场景包括展示销售数据、部门贡献等。可通过调整透明度、使用颜色映射增强可视化效果,还支持动态展示变化趋势。堆叠图能直观呈现各部分的相对贡献和总体趋势变化。

2025-08-26 19:11:08 950

原创 Python之matplotlib 基础五:绘制饼状统计图

这段代码使用Matplotlib库绘制了一个专业风格的饼状图,展示5种编程语言的使用比例。关键实现包括:1) 设置TkAgg后端支持图形显示;2) 配置中文字体防止乱码;3) 采用fivethirtyeight预设样式;4) 定义突出显示Python和Java扇形区域;5) 添加阴影、百分比标签和黑色边框增强可视化效果。最终生成带标题的饼图,并支持保存为图片文件。该代码示例涵盖了数据可视化中常见的字体适配、样式定制和交互显示等实用技巧。

2025-08-26 19:03:23 449

原创 Python之matplotlib 基础四:绘制柱状统计图

这篇文章介绍了如何使用Python的matplotlib库绘制程序员使用语言的流行度条形图。文章首先展示了包含28位开发者编程语言使用情况的CSV数据样本,随后详细解析了实现代码。 代码解析部分包括: 数据读取与处理:使用pandas读取CSV文件,利用Counter统计语言出现频率 可视化设置:配置中文字体支持、图表风格 图表绘制:使用barh()创建水平条形图,展示前15种最常用语言及其出现次数 文章还提供了相关的语法解释,包括matplotlib后端设置、字体配置、数据可视化方法等。最终生成的图表保存

2025-08-25 19:00:12 681

原创 Python之matplotlib 基础三:绘制折线图

本文介绍如何使用Python的Matplotlib库绘制xkcd风格的薪资统计图表,展示不同年龄段下Python、JavaScript开发者及所有开发者的薪资变化趋势。代码通过plt.xkcd()启用漫画风格,设置Microsoft YaHei字体解决中文显示问题,并绘制三条折线图(Python开发者、JavaScript开发者及所有开发者)。图表包含年龄(x轴)和薪资(y轴)标签,使用不同颜色和线型区分各群体,最后通过plt.legend()添加图例说明。该可视化方法既保留了数据准确性,又通过手绘风格增强

2025-08-25 17:04:15 355

原创 Python之matplotlib 基础二:参数方程圆形

matplotlib是一个非常强大的 Python 绘图库,能够帮助您绘制各种各样的图形。在此教程中,您学习了如何绘制正弦和余弦曲线,并设置图形的标题、坐标轴比例和字体。您可以根据需要进一步扩展绘图功能,加入更多的图形元素和样式。

2025-08-25 14:28:01 1012

原创 Python之matplotlib 基础一:绘制圆形

该代码将在窗口中显示四个红色圆形,并在每个圆心处显示相应的汉字(“恭喜发财”)。每个圆的标题为“使用 patches.Circle()”。

2025-08-25 11:23:58 720

原创 Pycharm虚拟环境失效解决办法: Unable to creat process using , 设置python SDK。此SDK似乎无效 ,退出代码为 101

但是新创建的env中的python.exe 从哪里copy过来的就不知道了,现在每次新建虚拟环境中的python.exe 都是损坏的,需要手动的copy一下,这个目前不知道怎么解决,如果有解决办法的请留言!将本地安装Python的这个文件 python.exe和pythonw.exe 复制过来,替换掉即可,再试一下能否打开。这位大佬也发现了这个问题,这个问题的原因是虚拟环境的python.exe 损坏了。先确认本地安装Python环境是可以打开的,如果打不开,重装。如果可以打开,就好了!

2025-08-22 11:14:28 602 1

原创 EXCEL 常用的(采集)数据统计信息以及公式

数据的平均值。

2025-08-20 11:32:08 1245

原创 Python: configparser库 ini文件操作库

是一个 Python 模块,用于处理配置文件。这些配置文件通常用于以简单、可读的格式(通常是.ini文件)存储程序的设置和首选项。以下是如何使用。

2025-08-11 13:49:30 367

原创 拉格朗日插值法

是一种基于多项式的插值方法,用于通过给定的数据点(x, y)计算一个新的点的值。其基本思想是,给定一组数据点,通过构造一个多项式,使得这个多项式经过每一个数据点,从而可以用这个多项式来估计其他点的值。

2025-08-02 23:22:30 1214

原创 BIN手动增加信息头:BIN 配置生成器

这个 BIN 配置生成器 是一个网页应用,用户可以通过该应用配置前128个字节,作为Bin文件的信息头,并将其与导入的 BIN 文件合并,最终生成一个符合要求的 BIN 文件。应用还提供了字段配置、文件导入、文件导出等功能,以下是详细的功能介绍:添加字段:用户可以点击“添加字段”按钮,添加新的字段配置。每个字段需要配置以下内容:删除字段:每个字段右侧都有一个“删除”按钮,用户可以删除不需要的字段。导入 BIN 文件:导入字段配置:导出字段配置:用户可以点击“导出字段”按钮,将当前配置的字段导出为 JSON

2025-07-31 10:14:18 1039

原创 Qt项目串口控制平台实战代码的使用

QT串口控制平台实战

2025-07-28 15:19:19 268

原创 Qt项目中使用 FieldManager 实现多进程间的字段数据管理

使用场景:串口收到数据,会将所需要的字段写入FieldManager模块中即更新数据。可能多个接收的报文中分散多个不同字段的结果,实现了解耦。再一个定时进程中从FieldManager中调用数值,并将数值写入log中实现log的记录。

2025-07-28 14:42:57 480

原创 Qt项目中使用 CmdManager 实现高效的命令分发机制

在嵌入式、网络通信、串口通信、插件系统等场景中,通常会接收到各种命令编号(Command ID),并根据编号执行不同的逻辑处理。传统做法是使用switch或if-else语句来判断命令类型并调用对应函数。但这种方式维护困难,尤其当命令数量增多时,会造成代码臃肿、不易扩展。为了解决这一问题,我们设计了一个统一的命令分发器 ——CmdManager,它通过注册回调函数 + 执行分发命令的方式,提高了系统的模块化程度和可维护性。qDebug() << "收到 Hello 命令,数据是:" << data;

2025-06-09 17:06:25 730

原创 Cadence 中Cutout、Design_Outline 和 Outline的区别

摘要: 在PCB设计中,Cutout、Design_Outline和Outline都与电路板外形相关但用途不同。Cutout用于定义切割区域(如孔、槽),直接影响制造;Design_Outline仅标记设计边界,作为参考不影响切割;Outline则是实际切割轮廓层,用于制造。三者区别在于:Cutout针对具体切割区域,Design_Outline是设计参考,Outline是最终切割依据。设计时需根据需求选择合适层:外形参考用Design_Outline/Outline,切割区域用Cutout。

2025-05-31 19:44:07 1334

原创 适合单片机裸机环境的运行的软件定时器框架

该程序的hw_timer_ticks进行时基的累加,建议放在一个硬件的定时器中。使用硬件定时中断,例如1ms中断一次,每次中断hw_timer_ticks自增一次。它使用硬件定时中断(如1ms一次)来增加hw_timer_ticks,当hw_timer_ticks大于设定的延迟时间时,执行回调函数。这个模块提供了一个简单而有效的软件定时器解决方案,适用于裸机环境,通过硬件定时器中断实现精确的定时任务调度。:文档提供了完整的代码实现,包括头文件和主程序,以及如何启动和停止定时器,以及定时器的主循环处理。

2025-04-14 21:38:31 846

原创 【python】小工具 STM32内存数据4字节转换

stm32内存数据,转换如内存数据为0xCDCC0342 对应浮点数为32.95.

2025-03-24 10:50:13 327

原创 Python小工具:bin文件合成

bin文件合成工具

2025-03-24 09:19:25 865

原创 git忽略特定文件或者文件夹

目录之前已经被 Git 跟踪,即使你添加了。,它们仍然会被 Git 识别。或者在 VS Code 中手动创建。,不进行更新或提交,可以使用。如果你的项目目录下还没有。

2025-03-07 15:57:33 1751

123456522222222222njiojiaoodsjojdoj

你好的 睡觉哦零四九四 是

2026-01-30

QT测试代码困了困了就上课是

QT测试代码困了困了就上课是

2026-01-23

光功率计采集程序,PM100D,python

光功率计采集程序,PM100D,python

2025-09-07

使用TJC8048X350-011C控制索雷博衰减器DV1550AA

使用TJC8048X350-011C控制索雷博衰减器DV1550AA

2025-07-30

Qt项目串口控制平台实战代码

Qt项目串口控制平台实战代码

2025-07-28

qt6.0 QML 例程 qt6.0 QML 例程qt6.0 QML 例程

qt6.0 QML 例程

2024-10-16

安富莱的QT USB例程

安富莱的QT USB例程

2024-10-07

QT 调用最新的libusb库和stm32f407进行BULK进行通讯的DEMO

QT 调用最新的libusb库和stm32f407进行BULK进行通讯的DEMO。工程参考安富莱,但是库用的最新的库,该lib可以支持win下 VS2013 VS2015 VS2017 VS2019 VS2022 MinGW32 MinGW64 的编译器。因此不局限QT调用 VS也可以使用。

2024-10-07

开源免费PinPin1.5一款好用的截图软件

PinPin1.5一款好用的截图软件

2024-03-05

UMSD-V6.0.0

UMSD-V6.0.0

2024-02-20

智能硬件装调员 3级考试试题

智能硬件装调员 3级考试试题

2023-03-27

RTT 硬件IIC 例程程序

RTT 硬件IIC 例程程序

2023-02-01

《物联网安装调试员》三级考试材料

物联网安装调试员职业定义:利用检测仪器和专用工具,安装、配置、调试物联网产品与设备的人员。 物联网安装调试员职业技能等级:本职业共设五个等级,分别为:五级/初级工、四级/中级工、三级/高级工、二级/技师、一级/高级技师。 物联网安装调试员职业环境条件:室内、室外,常温。 物联网安装调试员职业能力特征:具备很强的学习、分析、推理和判断能力;具有一定的表达、沟通能力;具有相应的计算能力;具备很强的动手能力。

2022-11-22

牛逼的剪贴工具Snipaste-2.5.6-Beta

牛逼的剪贴工具Snipaste-2.5.6-Beta-

2022-11-20

AD9 精简版本 里面有license的很好的资源

AD9 精简版本 里面有license的很好的资源

2022-11-15

W5500 原理图.rar

W5500参考资料

2022-10-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除