- 博客(86)
- 收藏
- 关注
原创 【无标题】
QGCTool是QGC架构中基于单例模式设计的核心组件,具有三大优势:1) 生命周期与程序一致,确保后台通信稳定不中断;2) 全局可访问,避免重复实例化;3) 符合插件化设计规范。相比QML实例化,QGCTool能维持TCP长连接、处理高频数据更高效,并保证全局状态同步。改造步骤包括头文件修改和在QGCToolbox中注册初始化,最终实现跨界面切换时通信不中断、数据持续解析的稳定效果。
2026-04-02 17:34:15
263
原创 [特殊字符] RK3576 卫星通信网关开发技术手册
本文档详细介绍了RK3576卫星通信网关的开发实现方案。系统采用RK3576作为嵌入式网关,通过卫星路由设备实现远程MQTT服务器与本地飞控串口的双向透传。核心内容包括:网络路由配置要点、MQTT客户端集成方法、串口原始模式优化技巧,以及常见问题排查指南。文档还提供了模块化代码框架和后续优化方向,如心跳机制、断线重连等。特别强调了串口规范模式与原始模式的差异,以及数据过滤的重要性,为卫星通信网关开发提供了完整的技术参考。
2026-03-23 18:27:23
222
原创 瑞芯微3576网络共享问题排查
为什么用电脑给瑞芯微3576共享无线网到网口。之前正常使用,昨天晚上电脑关机今天就无法使用了?这种情况在 Windows 开启“Internet 连接共享 (ICS)”时非常常见。从你的ifconfig输出看,关键问题在于 eth0。通常是因为电脑关机重启后,共享机制未能自动恢复或 DHCP 服务挂掉了。
2026-03-12 10:57:35
261
原创 vscode快速验证和团队协作
文章摘要:本文探讨了开发过程中避免仅靠拖动文件的必要性,指出版本覆盖、代码不同步和换行符污染三大风险。推荐冯博士的"双轨制"工作流:快速验证时直接拖动,团队协作时使用Git管理。进阶技巧建议通过VSCode的SSH远程直接编辑板子代码,实现原生开发。最后提出开发铁律:小改动远程直接修改,大功能本地调试后拖动,团队协作必须通过Git管理,并建议在VSCode终端进行编译测试。
2026-03-10 15:40:55
328
原创 RK3576 开发起飞指南:从串口盲操到 VS Code 丝滑流
本文介绍了一套高效的嵌入式开发方案,采用"本地化编辑+远程化编译"工作流,解决Windows环境下RK3576开发的痛点。方案基于Ubuntu22.04系统,通过配置WiFi连接、VSCode Remote-SSH和MobaXterm工具链,实现代码秒同步、多核快编译和串口实时监控。重点包括:1)无线网络配置;2)自动扫描模块的智能Makefile;3)SSH免密登录设置;4)8线程编译优化。这套方案将开发效率从"小时级"提升到"秒级"
2026-03-10 11:30:36
435
原创 鲁班猫(LubanCat)RK3576 开发板的 Ubuntu 镜像烧录
本文介绍了RK3576开发板系统镜像烧录方法。烧录到eMMC需使用RKDevTool(v3.30+)和DriverAssitant驱动:1)安装驱动和工具;2)按住REC键连接OTG接口进入烧录模式;3)选择镜像文件升级。烧录到SD卡可使用SDDiskTool或balenaEtcher。烧录完成后重新上电即可启动系统,默认账号为lubancat/lubancat或root/root。
2026-03-09 16:16:46
346
原创 飞控sdk封装-有源蜂鸣器/LED闪烁
本文探讨了SDK架构优化和蜂鸣器驱动问题解决方案。在SDK设计上,采用"内部实现与外部声明分离"策略,将接口定义与实现分离,确保专业性和易用性。针对蜂鸣器声音微弱问题,分析发现是硬件驱动冲突导致:系统后台高频运行的LEDRefresh函数不断重置蜂鸣器状态,使其无法持续发声。提出了三种解决方案:切换手动控制模式、强制夺权或触发系统预设音效。最终通过封装专业接口,将底层硬件细节抽象化,既解决了蜂鸣器问题,又为客户提供了简洁易用的SDK接口。
2026-01-28 17:00:42
621
原创 C/C++编译原理生动解释
摘要:CPU只识别内存地址而非文件名,编译和链接过程将分散的.cpp文件整合为连续的二进制代码。编译期通过extern声明建立函数联系;链接期由链接器解析函数地址并替换调用指令;运行期CPU通过跳转指令执行不同文件中的函数,使用同一线程栈空间。最终所有代码在Flash中融为一体,CPU只需跳转地址即可跨文件调用函数。
2026-01-28 14:17:06
349
原创 keil工程编译报错6242E
摘要:Keil AC6编译中出现两类关键错误:1)属性不兼容错误(L6242E),因库文件和工程在枚举/宽字符处理指令不一致导致,需在工程和库中统一添加-fno-short-enums和-fno-short-wchar编译选项;2)内存不足错误(L6406E),因分散加载文件(sct)配置不当,需调整内存分配策略,建议将STM32H743的AXI SRAM(512KB)和SRAM1/2(256KB)全部纳入分配范围,并优化Target选项卡的IRAM设置。解决步骤包括:修改sct文件内存布局、对齐Targe
2026-01-27 15:48:23
645
原创 飞控STM32H7配置无bootloader
摘要:当前飞控代码直接从STM32H7的Flash起始地址0x08000000运行,未使用Bootloader。这种"裸奔"模式使SDK封装更简单,客户可直接烧录完整固件运行,无需额外配置Bootloader或地址偏移。虽然原厂曾有过双分区升级设计(ACFly_Prophet.sct指向0x08100000),但当前工程配置(ACFly.sct)已采用0x08000000标准地址。建议删除冗余的ACFly_Prophet.sct文件,保持现有简洁可靠的交付方案,确保客户能直接编译运行独立
2026-01-27 14:33:19
237
原创 Scatter File选择
摘要:库文件不包含内存地址信息,需通过.sct文件或Keil内存设置配置地址分配。建议使用标准ACFly.sct文件作为SDK交付,因其具有三大优势:标准启动地址(0x08000000)、通用性强(.ANY)和合理的内存分配(RW_IRAM1用于DTCM,RW_IRAM2用于AXISRAM)。避免使用特殊的ACFly_Prophet.sct,其非标准地址(0x08100000)和特殊区域映射可能导致客户无法启动或出现HardFault。最终应将优化后的.sct文件重命名为ACFly_SDK.sct并归档到S
2026-01-27 14:29:19
521
原创 配置keil工程 target生成黑盒子(.lib)
为了让你的代码知道“我现在是在生成库”,可以加个宏。依然在Target B下,点击魔术棒。点击C/C++(或者 C/C++(AC6)) 选项卡。在Define栏中,添加(如果有其他宏,用逗号或空格隔开)。点击 OK。
2026-01-27 13:51:06
541
原创 “硬盘里有文件夹” 不等于“Keil 工程里有这个分组
Keil 不会自动扫描你的硬盘,你需要手动把它们“挂载”进来。在 Keil MDK 中,你可以把它理解为**“歌单”**:你的电脑硬盘里,歌曲可能放在。但在播放器的“我的最爱”列表里,这首歌就在第一行。
2026-01-27 13:41:22
306
原创 Git Rebase 之后出现大量未暂存文件的问题与解决方案
摘要:本文记录了Git执行pull --rebase后出现24976个未暂存文件的异常现象,主要表现为大量二进制文件被错误标记为修改。经分析主要原因是子模块状态不一致或换行符问题。推荐解决方案是:先执行git fetch origin && git reset --hard origin/branch强制同步远程分支,再通过git submodule update --init --recursive更新子模块。预防措施建议团队协作时优先使用普通git pull(merge)而非rebase
2026-01-04 17:45:43
461
原创 QT打包Release后,点击exe文件报错dll缺失
这是 Qt 程序发布的常见问题。你的电脑有 Qt 环境,DLL 在系统路径中;同事电脑没有,所以找不到。解决方案:使用 windeployqt 打包。
2025-12-17 16:08:07
644
原创 MAVLink 数据解析工具使用指南:实时解析与过滤
本文介绍了一款高效解析MAVLink数据的工具,支持串口实时接收、文件加载、剪贴板读取等多种数据源输入方式。该工具提供十六进制数据解析、消息过滤、字段详细解析、统计信息显示和CSV导出等功能,特别优化了大容量数据的处理效率,显著提升了无人机和嵌入式系统中MAVLink协议数据的分析速度。通过交互式界面和实时反馈机制,用户可快速调试和分析数据,适用于开发调试和日常监测场景。
2025-12-03 15:29:14
938
5
原创 收藏好的项目
bin_android_demo 安卓综合应用示例 https://qtchina.blog.csdn.net/article/details/123940153。bin_httpserver 网络请求客户端服务器 https://qtchina.blog.csdn.net/article/details/104538186。bin_linux_other 其他项目linux运行。
2024-09-18 14:35:43
387
原创 qtpri是干什么的?如何创建pri项目?
PRI` 文件在 Qt 项目中是一种项目包含文件(Project Include File),它通常用于组织和复用项目配置,以便在多个 `.pro` 文件中共享相同的设置、源代码文件或资源文件。`PRI` 文件的主要用途是将通用配置、路径、库引用、编译选项等抽象出来,减少冗余代码,使得项目维护更为简洁和模块化。
2024-08-20 16:49:28
1014
原创 为什么不使用anchors而使用Layout.alignment
**用途**: `Layout.alignment` 主要用于 `RowLayout`、`ColumnLayout`、`GridLayout` 等布局管理器中。在你提供的 QML 代码中,使用 `Layout.alignment` 是因为 `ColumnLayout` 是一个布局管理器,它管理了子组件的位置,因此需要使用 `Layout.alignment` 来控制组件在布局中的对齐方式。- **用途**: `anchors` 用于设置组件在其父组件中的位置,通常用于不涉及布局的场景。
2024-08-06 14:12:35
589
原创 QtObject是干什么的?
你可以把 `QtObject` 看作是 QML 中的一个基础组件,用于创建和管理不需要显示的对象。`QtObject` 可以用来定义属性、信号和槽,以及处理逻辑,特别适用于需要在应用程序中共享的数据和功能的场景。与 `Rectangle`、`Text` 等 QML 元素不同,`QtObject` 不具有视觉呈现,它不会在用户界面中显示任何内容。- `QtObject` 本身不渲染任何内容,它的主要作用是作为其他 QML 元素的基础或用于封装功能和数据。// 可以使用上面定义的属性、方法和信号。
2024-08-06 13:43:20
515
原创 Opengl 安装
下载glad,选择version3.3 Core --Generate生成。然后点击glad.zip文件下载。在cmake配置glfw:config-generate。
2024-08-05 13:44:45
1549
原创 软件部署方案-容器化
Kubernetes + Docker Matrix 指的是使用 Docker 来创建和管理容器,使用 Kubernetes 来编排和管理这些容器化应用程序。这种组合提供了强大的功能来支持现代化的微服务架构和 DevOps 实践,使开发和运维团队能够更加高效地工作。蓝绿部署(Blue-Green Deployment)和金丝雀部署(Canary Deployment)是两种常见的应用程序部署策略,旨在减少应用程序更新过程中对用户的影响,确保系统的高可用性和稳定性。
2024-08-01 17:23:52
1013
原创 线程池模板-面试必备
线程池(Thread Pool)是一种预先创建一组可用线程的技术,这些线程可以重复使用以处理任务。线程池的主要优点是减少了线程创建和销毁的开销,提高了应用程序的性能,特别是在需要频繁创建和销毁线程的情况下。
2024-08-01 17:21:28
820
原创 QT-脚手架 搭建
如果需要更高级的定制或自动化流程,可以开发自定义脚手架工具。这通常涉及以下步骤:- **定义模板**:创建代码模板和项目结构的定义文件。- **开发生成器**:编写脚本或程序,根据模板生成代码和项目文件。- **集成**:将生成器集成到开发环境中(例如,通过命令行工具或 IDE 插件)。例如,可以使用 Python、Shell 脚本或 C++ 编写脚手架工具来自动生成 Qt 项目文件和代码。```pythonimport os# 创建项目目录# 创建主文件\n")\n")\n")
2024-07-26 16:54:12
697
原创 必需掌握的Qt图表绘制库!!!!
QCustomPlot` 是一个功能强大且灵活的 Qt 图表库,适合需要高度自定义和高性能图表的应用程序。通过简单的配置和代码编写,您可以轻松地在 Qt 项目中创建和展示各种图表。
2024-07-26 15:59:09
996
原创 Component.onCompleted: 是做什么的,怎么用?
Component.onCompleted` 是 QML 中一个特殊的信号处理器,它在组件及其所有子组件完成初始化后触发。这个信号处理器非常适合在组件完成布局和创建之后执行一些初始化任务或操作。
2024-07-26 13:22:05
1731
原创 QML-DelayButton、Repeater多组件重复
如果你想要了解具体的 `DelayButton` 实现或者在你的项目中使用它,可以检查你的项目中的 QML 文件或搜索项目文档,找到 `DelayButton` 的定义和用法。如果是一个自定义组件,通常会在项目的某个文件中进行定义和导入。通常情况下,`DelayButton` 可能指的是一个带有延迟功能的按钮,即点击按钮后会延迟一段时间再执行相应的操作。2. **动画效果**:可能会伴随按钮按下时的动画效果,如透明度、大小变化等。1. **延迟执行**:点击按钮后,会等待一段时间再执行指定的操作。
2024-07-23 17:25:49
502
原创 QML-Rectangle的两个上边角变圆角
由于Rectangle组件的radius属性只能统一设置四个角的半径,而没有直接支持不同角半径的功能,通常的做法是使用组合组件(如上面的第一个示例)或自定义绘制(如使用或)来实现不同角的半径效果。根据你的需求选择最适合的方案。
2024-07-23 16:33:57
1458
原创 Qt线程池--面试必备
线程池是一种预先创建一定数量的线程并将它们放入池中,供后续任务使用的机制。通过使用线程池,应用程序可以减少线程的创建和销毁开销,同时控制并发任务的数量,从而提高性能和资源利用率。
2024-07-23 13:15:04
916
1
原创 QML-添加透明背景、边框和阴影效果、Column和ColumnLayout区别?
添加透明边框、背景和阴影效果;Column和ColumnLayout区别;Button的flat效果
2024-07-23 09:08:19
1338
原创 关于RowLayout/ColumnLayout的margins
关于在 RowLayout 上使用 anchors.margins 可以起到作用,而 Layout.topMargin 等属性则不会生效。
2024-07-22 11:32:51
521
原创 【C++】深刻基础笔记
程序如何从源文件变成exe可执行文件?首先是预处理器#include <...>,获取...文件的全部内容并将其粘贴到main.cpp文件中。在此阶段,编译器将所有的c++代码转换到实际的机器代码中。图片中1是项目配置,2是平台 配置1菜单:调试和发布2菜单: x86 x64配置是构建项目时应用的一组规则,平台是编译所针对的平台的设置。x86是在winow32位下编译,生成32位应用程序。所以win32和x86相同。项目右键->属性可以生成exe,还可以生成库文件。
2024-07-19 16:42:18
949
原创 油管大佬的Visual Studio 软件自定义设置--建议码住!!!
链接:https://pan.baidu.com/s/1K_TJlZ6pKM1gzu-k9cNLdA?将下载的文件先复制到下图的路径下去。打开工具-> 导入和导出设置。导入选定的环境设置(I)
2024-07-18 16:34:09
317
原创 线性图标设计
按键A,创建一个24x24的背景。矢量图形绘制:箭头、圆、三角...... 绘制箭头和矩形双击矩形选中要删除的点调整一下即可得到下载的图标。 按快捷键O画个圆,L加两条线变成一个时钟。调整好位置之后点击联合,图标变成一个整体。后期修改更容易。选择五角星矢量图形,根据点的位置调整五角星角度。1圆角:inside 1.5调整好位置: 4.收藏图标(心形):两个矩形拼凑 原角处理:合并Flatten是真正的合并,看不见图像的组成。
2024-07-01 17:09:18
422
原创 Figma-ui设计学习APP Store
打开标尺,设置左右内边距参考线(左21 右356),win:按住ctrl放大标尺。shift+R 显示或隐藏标尺。点击圆形框右击-插件-avadar 会自动插入图片。头像创建-快捷键:O,大小为4的倍数,32/28。按L键画条直线,修改颜色:0、0、90;添加投影:模糊40,y轴8,透明度15。打开浏览器安装扩展,解压加载进去即可。设置蒙版 ctrl+Alt+M。按R键,创建一个矩形,添加圆角。选择Chorme汉化版离线包。去社区安装插件:avatar。添加蒙版去除不需要的部分。
2024-07-01 15:11:22
1024
Beyond Compare3
2024-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅