- 博客(423)
- 资源 (89)
- 收藏
- 关注
原创 Qt KDReports详解与使用
KDReports是基于Qt的报表生成库,由KDAB公司开发,支持创建数据驱动的复杂报表。主要特点包括: 提供灵活的报表设计方式,支持通过代码或XML定义报表结构 支持表格、图表、文本格式化等丰富元素 可实现动态数据绑定,自动填充数据库内容 提供页眉页脚、模板化设计等高级功能 支持导出为PDF、HTML等多种格式 安装方式包括源码编译或使用预编译库,需与Qt版本兼容。核心功能包含: 基础报表创建 表格数据展示 XML报表定义 图表嵌入 动态数据绑定 适用于商业应用、数据分析等需要专业报表输出的场景,完全集成
2025-06-12 10:12:25
420
原创 rt-thread嵌入式操作系统自动初始化详解
RT-Thread的自动初始化机制通过INIT_EXPORT宏将初始化函数分配到特定内存段,按照6个优先级等级(硬件初始化→外设驱动→组件→应用等)有序执行。该技术采用宏定义和链接脚本实现,通过在链接脚本中使用SORT指令对段名排序来控制初始化顺序。系统启动时,rt_components_board_init()和rt_components_init()函数会遍历这些段并按序执行初始化函数。这种设计实现了模块化、可扩展的初始化管理,有效解决了嵌入式系统中组件初始化顺序的依赖问题,无需手动调用初始化函数,大大
2025-06-12 07:47:51
493
原创 QML完整项目源码分享
这是一篇关于Qt Quick应用开发的代码展示文章。文章主要展示了两个QML文件:App.qml和SplashWindow.qml。App.qml定义了应用主窗口结构,包含透明背景、自定义标题栏/页脚、托盘图标、通知视图和菜单/堆栈视图布局。SplashWindow.qml则实现了启动屏幕窗口,显示加载进度和状态信息。文章通过代码片段展示了Qt Quick应用的UI构建过程,包括窗口组件创建、启动进度管理以及关闭确认对话框等功能实现。整体呈现了一个现代化桌面应用的开发框架和视觉效果。
2025-06-11 14:31:12
692
原创 Qt绘制温度计源码分享
本文分享了一个基于Qt的温度计控件实现源码。该控件通过继承QWidget类,实现了温度计的可视化效果,包括刻度显示、温度值填充和动画效果。主要特性:1)支持设置温度范围(-20~100);2)实时显示当前温度值;3)包含刻度线和数值标记;4)底部圆形设计。使用方法简单,只需将QWidget提升为该控件类即可。源码提供了完整的.h和.cpp文件,包含温度设置、绘制逻辑和动画控制等功能,适合作为Qt自定义控件的开发参考。
2025-06-11 11:42:21
290
原创 Qt绘制电池图标源码分享
摘要:这是一个Qt电池控件实现代码,包含CellWidget类定义和实现。该控件通过自定义绘制实现电池图形显示,支持背景色、边框色、电量色和警告色设置,可显示当前电量值、最大值和警告阈值。核心功能包括:1) 使用Q_PROPERTY定义属性接口;2) 通过paintEvent实现电池图形绘制;3) 电量低于阈值时自动切换警告颜色。代码结构清晰,包含完整的属性访问方法和信号槽机制,适合嵌入Qt应用程序中显示电池状态。
2025-06-10 11:20:54
460
原创 STM32+rt-thread判断是否联网
摘要:本文介绍了三种检测网络连接状态的方法。第一种通过NETDEV_FLAG_INTERNET_UP位判断网络接口是否可用;第二种基于DHCP状态检测是否获取到有效IP地址;第三种使用Ping命令实现完整的网络连通性检测,通过向8.8.8.8发送ICMP包并等待响应来判断网络连接状态。每种方法都提供了详细的代码实现和说明,适用于不同场景下的网络连接检测需求。 (字数:149)
2025-06-10 10:21:58
205
原创 IIC(I2C)通信隔离电路分享
NSI8100NQ I²C隔离器应用摘要 NSI8100NQ是一款高性能I²C总线隔离芯片,提供5kVrms电气隔离,支持100kHz/400kHz通信速率。芯片采用电容隔离技术,具有双向数据通道和低功耗特性(1.5mA),工作温度范围-40℃至125℃。设计时需注意两侧独立供电、2.2kΩ上拉电阻及良好的PCB布局。该器件可实现电平转换功能,通常需配合电源隔离方案使用,适用于工业、医疗等对电气隔离有严格要求的应用场景。
2025-06-09 09:30:35
317
原创 nmeaLib内存泄漏问题及其解决方法
摘要:nmeaLib内存泄漏问题分析与修复 在解析NMEA协议的nmeaLib库使用过程中发现内存泄漏问题。经排查,问题根源位于nmea_parser_real_push()函数中,该函数用于解析NMEA数据包并分配内存存储解析结果。当解析特定类型的数据包(如GPGGA、BDGGA等)失败时,虽然释放了数据包内存(node->pack),但未释放节点结构体(node)本身的内存,导致内存泄漏。修复方案是在每个数据包解析失败的分支中,同时释放node->pack和node结构体。修改后的代码确保了
2025-06-09 09:13:20
400
原创 单片机0-10V电压输出电路分享
GP8101是一款PWM转模拟信号的专用DAC芯片,可线性转换0-100%占空比的PWM信号为0-5V/10V模拟电压输出,精度优于1%。该芯片支持50Hz-50kHz的PWM输入频率,3-5.5V高电平,工作电压10-15V,功耗低于2mA,启动时间<2ms。GP8101M版本需配合高频调制APC芯片实现信号隔离。设计时需在输出端添加0.1uF去耦电容,长距离传输建议增加缓冲电路,输出电压范围可通过外接电阻调整。芯片采用SOP8封装,工作温度范围-40℃至85℃。
2025-06-06 17:25:25
372
原创 单芯片电流采用电路分享
CC6900SO是一款高精度线性霍尔效应传感器芯片,适用于电流检测和位置测量。它具有3.0V-5.5V宽工作电压、5mV/Gauss高灵敏度和2.5mA低功耗特性,支持线性磁场测量并内置温度补偿。典型应用包括电流检测、电机控制和位置传感器。使用时需注意输出特性:无电流时输出50%VCC,电流方向不同时输出在0%-100%VCC范围内变化。布局需考虑去耦电容和ESD防护,实际应用需进行校准。选型时需根据参数规格选择合适型号。
2025-06-06 17:20:44
159
原创 Qt多线程访问同一个数据库源码分享(基于Sqlite实现)
Qt多线程数据库访问实现方案 本文分享了基于SQLite的Qt多线程数据库访问实现方案,主要解决以下关键问题: 线程安全设计: 使用单例模式管理数据库连接 每个线程拥有独立数据库连接(QSqlDatabase) 通过线程ID映射维护连接池(QHash<Qt::HANDLE, SqliteHelper*>) 同步机制: 采用QMutex保护关键操作(mutexCreateSql/mutexUpdateSql) 使用QMutexLocker确保资源_O锁 实现特点: 提供lockExec()方法封装
2025-06-05 16:01:56
596
原创 Qt实现一个悬浮工具箱源码分享
Qt悬浮工具箱组件实现 该代码实现了一个可悬浮、可扩展的Qt工具箱组件,具有以下特性: 基础功能: 无边框窗口,支持透明背景 始终置顶显示 初始为75x75的方形图标 交互功能: 左键拖动可移动位置 右键点击展开为3x3按钮网格 自动检测边界防止超出父窗口范围 实现细节: 使用事件过滤器处理鼠标交互 支持样式表绘制 按钮点击发射信号传递功能标识 展开时自动调整位置保持可见 效果展示: 默认显示工具箱图标 展开后显示8个功能按钮(代码显示部分按钮连接示例) 图标会在展开/收起状态切换 组件采用Qt框架实现,具
2025-06-05 15:38:02
345
原创 IR2104电机H桥驱动电路分享
IR2104STRPBF是一款高压半桥驱动器芯片,用于控制功率MOSFET/IGBT。核心特点包括:600V高侧浮置电压、±290mA驱动电流、高频工作支持及内置死区保护。需注意12V供电但兼容3.3V逻辑电平,PWM占空比不能100%(因自举电路限制),电机电源可达600V。典型应用需关注自举电容选型、散热布局和噪声抑制。该芯片通过高/低侧驱动通道配合电平移位器实现安全可靠的功率开关控制,适用于电机驱动和逆变器等高压场合。
2025-06-05 14:01:35
333
原创 电源双路径自动切换电路(具有优先级)分享、UPS电路分享
本文介绍了一种基于LTC4418芯片的电源双路径自动切换电路设计方案。该方案采用ADI公司的LTC4418IUF#TRPBF电源管理IC,具有4.5V-36V宽电压输入范围,支持双电源优先级切换(1通道优先)、理想二极管控制和负载共享功能。电路采用3mm×3mm DFN封装,内置MOSFET控制实现低导通损耗,并具备快速切换响应和过流保护特性。适用于UPS、便携设备、工业控制系统等需要高可靠性电源切换的场合,通过PMOS管搭建外围电路实现双电源自动切换,其中VALIDEx引脚为开漏输出设计。
2025-06-05 13:53:39
919
原创 2-6S锂电池充电(升降压一体式)电路分享
本文分享了基于英集芯IP2366芯片的2-6S锂电池升降压充电电路设计。该芯片支持PD/QC等主流快充协议,最大5A充电电流和100W输出功率,集成同步升降压和多重保护功能。设计要点包括:选用SGT类型MOS管、电流采样走差分线、优化大电流走线布局。原理图和详细设计注意事项可通过文首链接获取。该方案适用于移动电源等需要宽电压范围充放电的锂电池应用场景。
2025-06-04 10:33:52
499
原创 中颖SH367309制作1-17串锂电池保护板(BMS)原理图、源码分享
本文分享了基于中颖SH367309芯片的1-17串锂电池保护板(BMS)设计方案,包含原理图与源码实现。BMS核心功能包括电池状态监测、均衡管理、过充/过放保护及通信接口。硬件设计采用模块化布局,提供电池负极、负载地、热敏电阻等接口连接。源码部分展示了IIC驱动实现,涵盖初始化、起始/停止信号、字节收发等底层操作。该方案适用于电动汽车、储能系统等领域,具有高精度监测、智能均衡和多重保护机制,可有效提升电池组安全性与使用寿命。
2025-06-04 07:45:49
961
原创 Qt 仪表盘源码分享
Qt仪表盘控件源码分享 摘要:本文分享一款基于Qt开发的仪表盘控件源码,该控件具有以下特点: 可视化效果好 - 采用圆形表盘设计,支持刻度线、数值显示和指针指示 功能完善 - 可设置数值范围、当前值、危险阈值和单位显示 实时更新 - 通过setCurrentValue()方法可动态更新指针位置 定制灵活 - 支持调整表盘半径、起始角度、刻度颜色等参数 轻量易用 - 代码简洁(仅200行左右),采用纯QPainter绘制,不依赖第三方库 控件采用分层绘制策略,包括背景圆环、刻度线、数值标记、指针和中心文本等元
2025-06-03 15:36:01
744
原创 STM32+腾讯物联网平台OTA升级详细教程
本文介绍了STM32通过腾讯物联网平台实现OTA(Over-The-Air)升级的详细教程。首先,文章解释了OTA升级的定义及其在智能手机、汽车和智能家居等领域的应用场景,并详细描述了OTA升级的四个步骤:检测更新、下载更新
2025-05-23 17:10:26
1323
原创 修改nmeaLib库增加北斗(BD)和格洛纳斯(GNSS)解析
本文介绍了NMEA协议及其在导航设备中的应用,并详细说明了如何下载和使用nmealib库进行NMEA数据解析。NMEA协议由美国国家海洋电子协会制定,主要用于标准化海上电子设备之间的通信,广泛应用于航海、航空和汽车导航等领域。NMEA数据以ASCII字符串形式传输,通常以“$”开头,以“*”和校验和结束。文章还介绍了NMEA的常见消息类型、数据格式、通信方式及其优势。此外,提供了Python代码示例,展示了如何解析NMEA句子并提取有用信息。最后,文章介绍了如何修改nmealib库以支持更多协议类型,并提供
2025-05-23 11:13:49
1090
原创 STM32+rt-thread使用MQTT协议连接腾讯物联网平台
选rt-thread平台就行,这都是人家写好的,可以直接使用。只复制图中4个文件夹就可以。SDK文章顶部下载。
2025-05-22 14:10:36
598
原创 Qt 最新版6.9.0使用MQTT连接腾讯云详细教程
1. 概述2. 特点3. 架构4. 工作流程5. 应用场景点击链接Qt MQTT选择Qt版本下载将下载的源码解压后用Qt打开。直接点击左下角编译编译成功后会出现下图中的几个文件夹:1、首先将lib文件夹中的和拷贝到自己工程中2、将下载源码中目录中的头文件全部拷贝到自己工程对应目录中:完成如下:3、在自己工程中添加库:右键工程选择库和对应头文件目录:点击确定就OK了。2、定义一个mqtt客户端3、实例并连接相关信号与槽4、连接服务器对应的参数在腾讯云上查看
2025-05-22 09:03:24
875
原创 rt-thread+STM32H7移植lwip出现问题解决方法
在处理STM32H7系列芯片的网络问题时,主要遇到三个问题:ping不通或丢帧、Keil优化后无法联网、网络断断续续。这些问题主要与MPU配置和drv_eth驱动相关。通过调整MPU配置,确保ETH DMA描述符和RX缓冲区的正确缓存设置,可以解决这些问题。MPU配置中,ETH相关区域被设置为不可缓存且可缓冲,以确保数据传输的稳定性。此外,drv_eth驱动中的调试选项和PHY状态检测过程也进行了优化,以提升网络连接的可靠性。通过这些调整,网络问题得到了有效解决。
2025-05-10 09:17:04
261
原创 C++ algorithm详解
是 C++ 标准库中的一个头文件,提供了许多用于处理序列和容器的通用算法。这些算法通常接受迭代器作为参数,使得它们可以应用于各种类型的容器。头文件提供了丰富的算法,可以帮助你高效地处理数据。通过使用这些算法,你可以编写更简洁、更高效的代码。希望以上内容对你有所帮助!
2025-04-27 09:57:16
435
原创 C++ STL容器详解
C++ 标准库提供了多种容器类,用于存储和管理数据。这些容器类分为两大类:序列容器和关联容器。选择合适的容器类取决于具体的应用场景和性能需求。需要随机访问且频繁增删操作时,使用或std::deque。需要高效插入和删除操作时,使用std::list或。需要有序集合时,使用std::set或std::map。需要快速查找时,使用或。需要栈或队列功能时,使用std::stack或std::queue。
2025-04-27 09:09:31
664
原创 Qt QWidget介绍及学习方法路线分享
QWidget 是什么?QWidget是 Qt 框架中最基本的图形用户界面组件类。所有的可视控件都直接或间接继承自QWidget。重写绘图事件通过重写paintEvent方法来自定义控件的绘制。protected:QWidget是Qt中的基本控件类,用于创建用户界面的各种元素。它是所有用户界面控件的基类,包含了各种属性和方法,可以用来创建和管理各种用户界面元素。一些常见的QWidgetQLabel:用于显示文本或图像的标签控件。:用于触发操作的按钮控件。QLineEdit。
2025-04-19 07:17:51
827
原创 C语言select函数详解
select是一个用于多路复用 I/O 的系统调用,它允许程序监视多个文件描述符(file descriptors),等待其中任何一个变为就绪状态。
2025-04-18 07:35:25
394
原创 Qt QWidget实现自己的桌面萌宠源码分享
在Qt中,QLabel被广泛用于显示静态文本、图标和图片,并且可以与其他Qt控件一起使用,以及支持一些基本的交互功能。显示图像:可以使用setPixmap()方法设置QLabel显示的图像。总的来说,QLabel是一个简单而灵活的显示控件,可以通过多种方法来设置显示内容和样式,适用于各种Qt应用程序中用于展示信息的场景。显示文本:使用setText()方法设置QLabel显示的文本内容。文本对齐:可以使用setAlignment()方法设置文本在QLabel中的对齐方式,包括水平对齐和垂直对齐。
2025-04-17 11:10:15
720
原创 正则表达式详解
正则表达式是一种用来描述字符串模式的工具,用于匹配、搜索和替换文本中的特定模式。它是由字符和操作符组成的表达式,可以用来检查字符串是否符合某种模式或进行字符串的匹配和替换操作。正则表达式在文本处理、数据提取、字符串匹配等领域都有广泛的应用。\d:匹配任意一个数字,等同于 [0-9]。\D:匹配任意一个非数字,等同于 [^0-9]。\w:匹配任意一个字母、数字或下划线,等同于 [a-zA-Z0-9_]。\W:匹配任意一个非字母、数字或下划线,等同于 [^a-zA-Z0-9_]。\s。
2025-04-16 08:02:45
1225
原创 LVGL Video控件和Radiobtn控件详解
video是 LVGL 提供的一个用于播放视频的控件。依赖:需要外部的视频解码库(如 FFmpeg)来处理视频文件。功能lv_radio控件用于在多个选项中选择一个。特点:单选按钮,一次只能选择一个选项。
2025-04-16 00:13:57
950
原创 LVGL Lottie控件和Carousel控件详解
Lottie是一种用于在应用中显示动画的格式。LVGL Lottie 控件允许在LVGL项目中使用Lottie动画。Carousel是一个用于展示多个页面或卡片的控件。用户可以通过滑动或点击导航按钮在不同的页面之间切换。
2025-04-15 08:25:13
1234
2
原创 LVGL Barcode控件和Qrcode控件详解
条形码控件用于生成和显示条形码。用途:适用于需要生成和显示条形码的应用场景,如产品标签、库存管理等。功能:QR码控件用于生成和显示二维码。用途:适用于需要生成和显示二维码的应用场景,如支付、登录验证等。
2025-04-15 07:55:11
922
原创 LVGL AnalogClock控件和Dclock控件详解
时钟是LVGL中的一个基本控件,用于显示当前时间。使用时钟控件,开发人员可以在界面上显示当前时间,并根据需要自定义时钟的外观和行为。
2025-04-13 07:45:35
587
原创 LVGL Button matrix和LED控件详解
按钮矩阵是 LVGL 提供的一种控件,用于创建一组按钮。这些按钮可以是文本或图标形式,并且可以分组显示。按钮矩阵是一种灵活的控件,适用于需要多个按钮的场景。通过设置按钮文本、样式和事件处理,可以实现丰富的交互功能。功能:LVGL LED控件用于模拟现实世界中的LED灯。用途:常用于状态指示、UI装饰等。
2025-04-13 07:45:19
887
原创 LVGL Arc控件和Roller控件详解
1. 介绍Arc 控件是 LVGL 库中的一个基本图形控件,用于显示圆形或弧形。常用于进度条、仪表盘等场景。2. 主要属性角度范围 (start_angle, end_angle)定义弧的起始和结束角度。旋转方向 (dir)指定弧的绘制方向(顺时针或逆时针)。宽度 (width)设置弧线的宽度。背景 (bg_color, bg_opa)设置背景颜色和透明度。线条颜色 (color, opa)设置弧线的颜色和透明度。Roller是 LVGL 中的一种控件,用于显示一个滚动选择列表。
2025-04-12 09:02:27
805
原创 LVGL Colorwheel控件和Canvas控件详解
Colorwheel是 LVGL 中的一种控件,用于让用户通过旋转色轮来选择颜色。色轮通常显示为一个圆形,用户可以通过触摸或鼠标操作来选择颜色。可以通过添加自定义样式。样式属性包括背景颜色、边框、指示器颜色等。Canvas是 LVGL 中的一个对象,用于在屏幕上绘制自定义图形。它提供了一个缓冲区,可以在其中进行像素级别的操作。
2025-04-12 09:01:57
1341
原创 LVGL Meter和Spinbox详解
LVGL Meter是 LVGL 库中的一个组件,用于显示各种类型的仪表盘。它可以用来表示进度、数值范围、多个指针等。是 LVGL 库中的一个控件,用于输入和选择数字值。用户可以通过点击上下箭头来增加或减少数值。
2025-04-11 08:42:20
727
中颖SH367309制作1-17串锂电池保护板(BMS)原理图、源码分享
2025-06-03
修改nmeaLib库增加北斗(BD)和格洛纳斯(GNSS)解析
2025-05-23
Qt实现一个漂亮的、动态的登录、注册界面源码分享
2025-04-16
QML 开发完整工程逻辑分享,包含与c++交互
2025-02-20
STM32H743 外部QSPI接口Flash下载算法
2023-07-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人