- 博客(127)
- 资源 (1)
- 收藏
- 关注
原创 【避坑实录】Qt 4.8.6 + Paho MQTT C客户端 + OpenSSL静态链接的血泪史
摘要: 本文记录了在嵌入式ARM环境下,使用Qt 4.8.6、Paho MQTT C客户端和OpenSSL静态链接时遇到的典型问题及解决方案。核心问题包括: TLS连接失败(rc=-8):因临时对象生命周期问题导致空指针,需持久化QByteArray数据; 符号缺失(OPENSSL_sk_pop_free):静态链接OpenSSL时未正确嵌入符号,需检查编译参数确保完整链接; 动态库冲突:开发环境与目标板OpenSSL版本不一致,需统一静态库版本或彻底静态编译。通过分析二进制符号表(nm/strings)和
2026-04-28 20:43:40
644
原创 嵌入式LINUX QT 开发 .gitignore 文件编写指南
Git .gitignore 文件编写指南摘要 .gitignore 文件用于指定Git不应跟踪的文件和目录。关键原则: 必须跟踪的文件:源代码、项目配置文件等核心文件 应该忽略的文件:编译产物、临时文件、IDE配置文件等 判断标准:文件是否为新电脑运行/编译所必需 常见需要忽略的文件类型: 编译生成文件(.o, .a等) IDE配置文件(.vscode/, .idea/) 第三方库源码(如openssl-1.1.1w/) 系统/环境相关文件(如.pro.user) 正确编写.gitignore可保持仓库清
2026-04-28 20:42:40
483
原创 CAN数据池设计全解析 - 多路CAN通信统一管理实战
CAN数据池设计摘要 本文详细介绍了多路CAN通信的统一管理方案。针对传统CAN通信数据分散、难以维护的问题,提出了一种集中式的CAN数据池架构。该架构包含接收缓存、发送缓存和状态管理三大核心模块,通过统一数据接口实现各CAN通道数据的集中管理。文章以480KW充电桩项目为例,展示了CAN网络拓扑结构、设备地址分配和通道配置,并对比了传统方式与数据池方案的优劣。数据池设计实现了协议解析与数据使用的解耦,提供了清晰的数据流向追踪,显著提升了多CAN通道系统的可维护性和调试效率。核心代码包含在Obj_CanDa
2026-04-23 19:33:18
411
原创 FLASHDB实战详解 - 嵌入式KV/TSD数据库开发全攻略
FlashDB是一款专为嵌入式系统设计的轻量级数据库,提供KV键值存储和时序数据(TSD)存储两种模式。它解决了嵌入式存储中的三大痛点:配置参数管理、日志存储和Flash坏块处理。FlashDB具有掉电安全、坏块管理、高效缓存等特性,支持FAL模式和文件系统模式。其架构分为应用层、数据库核心层和存储抽象层,核心功能包括KV管理和TSL管理。FlashDB采用模块化设计,提供丰富的API接口,适用于嵌入式系统中的配置参数存储和操作日志记录等场景,能有效简化嵌入式开发中的数据存储管理。
2026-04-23 19:21:17
696
原创 Git高频问题速解:ignore失效、提交注释修改、GUI操作全攻略(嵌入式工程师版)
3个Git高频问题(.gitignore失效、提交注释写错、提交后想回滚),连带着Git GUI的可视化操作,一次性讲透。全程干货+代码实操
2026-04-22 10:20:26
424
原创 嵌入式直流充电桩控制板开发实战(三)——充电策略与功率分配深度实践
本文是嵌入式直流充电桩控制板开发系列最后一篇,重点解析充电策略与功率分配的核心实现。文章采用策略模式设计,支持120kW-360kW不同功率等级的充电桩部署。详细介绍了充电全流程状态机,包括握手、辨识、预充、充电和结束等阶段。特别深入讲解了预充电控制原理:通过调节充电模块电压低于电池电压10V并分步闭合继电器,避免瞬时大电流冲击。代码示例展示了预充阶段的实现逻辑,体现了嵌入式系统在充电桩控制中的关键作用。
2026-04-20 09:30:00
649
原创 嵌入式直流充电桩控制板开发实战(二)——CAN通讯协议与BMS交互深度解析
嵌入式直流充电桩控制板开发实战(二)——CAN通讯协议与BMS交互深度解析 摘要 本文深入解析了直流充电桩控制板开发中的CAN通讯协议与BMS交互流程。首先介绍了CAN总线在充电桩中的三大通讯任务和网络拓扑结构,详细说明了不同CAN通道的用途和通讯速率。文章重点阐述了PGN报文标识系统及其在国标中的定义,展示了关键的数据结构设计。通过共享内存式的"CAN数据池"架构和消息路由机制,实现了高效的数据交换。最后详细描述了充电握手阶段的代码实现,包括250ms周期的握手报文发送和BMS响应处理
2026-04-20 09:00:00
883
原创 【嵌入式进阶】环形FIFO缓冲区从理论到实现,一文讲透
本文深入讲解了嵌入式系统中环形FIFO缓冲区的设计与实现。主要内容包括: 需求分析:指出直接处理DMA接收数据会导致数据覆盖问题,提出生产者-消费者模型解耦方案。 数据结构:详细解析环形缓冲区核心结构体设计,包括volatile关键字的使用场景和空/满判断的优化技巧。 实现细节:重点介绍了初始化流程中2的幂次方自动扩展算法,以及掩码运算对性能的优化作用。 关键特性:强调留一空间法的设计思想,使空满判断统一为简单的减法运算。 文章通过图示和代码片段相结合的方式,清晰展示了环形缓冲区的核心原理和实现要点,适合嵌
2026-04-19 10:00:00
408
原创 嵌入式直流充电桩控制板开发实战(一)——硬件平台与工程架构解析
文章摘要 《嵌入式直流充电桩控制板开发实战(一)》深入解析了直流充电桩控制板的硬件平台与工程架构。文章首先介绍了直流充电桩的技术背景,重点分析了基于STM32F207VET6主控芯片的硬件平台,包括512KB Flash和128KB RAM的内存布局设计。工程架构方面,详细解读了三段式存储设计(Bootloader、App、Upgrade)和模块化代码组织,展示了40多个功能模块的协同工作,如充电管理、BMS通讯、故障处理等。文章特别强调了工业级嵌入式开发的关键要素:看门狗机制、实时任务调度和OTA升级能力
2026-04-19 09:00:00
437
原创 Linux动态库软链接详解:从现象到本质,嵌入式老鸟手把手教你避坑
本文详细解析了Linux动态库软链接的设计原理与实用场景。通过实际案例展示了一个MQTT动态库的完整链接结构,包括核心文件(libMqttServer.so.1.0.0)、三个层级软链接(不带版本号、主版本号、主次版本号)以及备份文件。重点阐述了这种设计的多重目的:短名链接(libMqttServer.so)供编译器使用,主版本号链接(libMqttServer.so.1)确保运行时ABI兼容,完整版本号文件便于版本管理。文章结合嵌入式开发实际经验,特别强调了这种机制对系统稳定性和升级维护的重要性,帮助开发
2026-04-18 09:30:00
408
原创 Git多分支+多平台同步实战教程(嵌入式工程师版)
这篇文章为嵌入式工程师提供了Git多分支和多平台同步的实战教程。文章从嵌入式开发的实际痛点出发,包括分支混乱、多设备同步困难、多平台推送繁琐等问题,给出了具体的解决方案。 教程分为三个主要部分:首先介绍了Git的核心概念和分支管理策略,强调主线分支与个人开发分支的区分;然后详细解析了嵌入式开发中高频使用的Git命令及其应用场景;最后通过实际案例演示了如何实现跨分支功能合并、多平台同步推送等操作。 文章特别针对嵌入式开发中常见的30KW/40KW双分支场景,提供了可直接复用的代码示例,并标注了注意事项和常见错
2026-04-18 09:00:00
433
原创 SLCAN工程搭建与实现教程(下)
本文详细介绍了SLCAN工程搭建与实现的全过程。主要内容包括:1)工程测试与使用方法,涵盖编译下载、设备识别和CAN通信测试;2)调试与故障排除技巧,提供常见问题解决方案和调试建议;3)代码优化与功能扩展方向;4)实际应用案例展示;5)项目总结与未来展望。教程针对基于STM32F072C8Tx的SLCAN设备开发,详细讲解了USB-CAN转换的实现方法,并提供了丰富的实践经验和专业建议,适合嵌入式开发工程师参考学习。
2026-04-17 09:00:00
708
原创 SLCAN工程搭建与实现教程(中)
本文介绍了SLCAN协议的实现细节,重点解析了SLCAN命令集及其在嵌入式系统中的实现方法。文章详细列出了常用SLCAN命令格式和功能,包括通道控制、波特率设置、帧发送等操作。通过代码示例展示了命令解析的具体实现,包括ASCII转换、帧类型判断、ID和数据处理等关键步骤。特别强调了波特率设置时需要考虑时钟频率和预分频器参数,并提供了不同波特率下的预分频器配置表。这些内容为开发基于STM32的SLCAN适配器提供了实用参考。
2026-04-17 08:00:00
365
原创 SLCAN工程搭建与实现教程(上)
本文介绍了SLCAN工程的搭建与实现方法。SLCAN(Serial CAN)是一种将CAN总线通信转换为串行通信的协议,特别适合CAN总线调试。教程使用STM32F072C8Tx微控制器作为硬件平台,详细说明了硬件连接、开发环境搭建和核心代码实现。内容包括系统初始化、CAN初始化和SLCAN协议实现的关键代码片段,提供了波特率计算公式等实用技巧,适合嵌入式开发人员参考使用。
2026-04-16 08:00:00
381
原创 肝了三天!把STM32 USB CDC这破事儿彻底讲透了
STM32 USB CDC数据传输机制解析 摘要 本文深入剖析了STM32 USB CDC(通信设备类)的数据传输实现机制,以CANable开源项目为例,重点分析了其环形缓冲区和双缓冲队列设计。 核心要点: CDC协议本质:将USB设备伪装成虚拟串口,底层使用Bulk端点进行高速数据传输 环形缓冲区设计: 采用6个64字节缓冲槽的环形队列 通过head/tail指针实现中断安全的生产者-消费者模型 牺牲一个槽位实现简单有效的溢出检测 双缓冲队列: 软件队列(28个槽)暂存CAN发送请求 硬件邮箱(3个)负责
2026-04-16 07:30:00
315
原创 Git高频问题速解:ignore失效、提交注释修改、GUI操作全攻略(嵌入式工程师版)
Git高频问题速解:嵌入式工程师必备指南 本文针对嵌入式开发中的三大Git痛点提供解决方案: .gitignore失效问题 根本原因:Git只对新文件忽略生效 解决方案:git rm --cached取消追踪+提供嵌入式专用.gitignore模板 调试技巧:git check-ignore定位忽略规则 提交注释修改 最近提交:git commit --amend快速修改 历史提交:谨慎使用git rebase -i改写历史 强制推送:推荐--force-with-lease安全选项 GUI可视化操作 推荐
2026-04-15 07:45:00
362
原创 STM32 Keil 调试断点加不上?看这篇就够了! 十年嵌入式老鸟排查全攻略
STM32 Keil调试断点失效问题排查指南 本文总结了Keil调试时断点失效的常见原因及解决方法。主要问题包括:未开启调试信息(Debug Information)、编译器优化等级过高(需设为-O0)、调试器Cache未启用、未执行Rebuild操作、工程路径含中文或特殊字符等。特别指出一个易被忽视的致命错误:在输出文件名中手动添加".hex"后缀会导致调试符号表丢失。文章提供了一分钟快速排查清单,强调调试阶段必须开启调试信息、关闭优化、保持路径简洁。这些配置细节往往是断点失效的主因,
2026-04-15 07:30:00
394
原创 STM32实战进阶:DMA+空闲中断实现高效串口数据接收(附为什么需要延时判帧的解析)
STM32串口高效接收方案:DMA+空闲中断 摘要:本文介绍了STM32串口通信中DMA+空闲中断的高效接收方案。传统轮询和字节中断方式存在CPU占用率高、效率低下的问题。DMA(直接内存访问)作为"搬运工"自动完成数据搬运,空闲中断在数据接收完成后通知CPU,实现CPU资源的高效利用。文章对比了四种接收方案,详细剖析了DMA+空闲中断的工作原理,并提供了STM32F4的实战代码实现。该方案特别适用于变长帧和高速通信场景,能显著降低CPU占用率,提升系统整体性能。文中还解答了关于空闲中断
2026-04-14 09:45:00
290
原创 零基础小白必看!ARM Linux 熵池查询全教程(附命令详解+避坑指南)
摘要: 本文为ARM Linux新手提供熵池查询全指南,通过4条核心命令(entropy_avail、poolsize、/dev/urandom、/dev/random测试)解析熵池状态。关键结论: 熵池=0≠程序卡死:SSL/Qt/MQTT等依赖伪随机数(/dev/urandom),即使真随机数枯竭仍可运行; 命令详解: entropy_avail查剩余随机数(<100需警惕); urandom测试伪随机数(正常输出则程序无碍); random测试会阻塞(仅参考,不影响多数应用)。 避坑:勿手动修改只读文
2026-04-14 09:30:00
1037
原创 嵌入式MCU与迪文屏通信:DMA+环形FIFO+变长队列+状态机完整手册
本文介绍了一种基于STM32F429和HAL库的迪文串口屏通信解决方案,采用四层缓冲架构实现高效可靠的数据接收。系统通过DMA+空闲中断接收数据,依次经过环形FIFO缓冲、变长队列存储,最终由状态机解析迪文DGUS协议帧。该方案有效解决了传统阻塞式接收的性能瓶颈,实现了CPU低占用率下的稳定通信,适用于工业控制等对可靠性要求较高的场景。文章详细讲解了各层实现原理,包括DMA配置、环形FIFO设计、变长帧队列管理以及协议状态机解析流程,为嵌入式开发者提供了完整的串口屏通信参考方案。
2026-04-13 18:29:48
1417
原创 嵌入式踩坑实录:小心你的PATH在“捣鬼”
摘要: 嵌入式Linux开发中,修改程序路径后即使重启仍调用旧版本,根源在于PATH环境变量未更新。本文通过实际案例(MQTT工具路径变更问题),解析which、ls -la、echo $PATH等关键命令的作用,揭示PATH固化在配置文件中导致旧路径优先调用的原理。提供三步解决方案:临时修改PATH、永久修改配置文件(如/etc/profile)及暴力重命名法,并强调嵌入式系统无需频繁重启。延伸知识点包括PATH设计原则、Mosquitto版本差异及调试方法论,帮助开发者高效避坑。核心结论:Linux依赖
2026-04-13 18:18:00
257
原创 嵌入式 ARM 设备交叉编译 mosquitto 2.0.20 (完整 TLS 支持) 详细教程 TRAE全程辅助,没敲一行代码
文章摘要文章详细介绍了如何借助TRAE AI完成编程任务的全过程,突出展示了无需手动编写代码即可实现复杂功能的能力。TRAE AI通过自然语言交互理解用户需求,自动生成完整的代码逻辑和实现方案。用户仅需描述功能目标,系统即可完成从架构设计到调试优化的全流程。案例中演示了数据分析和可视化模块的开发,所有代码均由TRAE AI生成并验证。这种模式显著降低了技术门槛,使非技术人员也能快速构建专业级应用。最终成果表明,AI驱动的无代码开发在效率和质量上均达到预期标准,为敏捷开发提供了创新范式。
2026-04-10 19:26:37
416
原创 ESP32-C2近端调试蓝牙开发过程中问题实录
ESP32-C2蓝牙开发问题实录摘要 本文记录了ESP32-C2开发板在蓝牙开发过程中遇到的三个典型问题及解决方案: 头文件缺失问题:编译时提示"uart.h"缺失,通过修改为完整路径/root/esp-idf/components/esp_driver_uart/include/driver/uart.h解决。 数据传输截断问题:当发送超过MTU大小(默认23字节)的数据时会出现截断,通过调整发送逻辑确保数据量不超过MTU限制。 手机端接收异常:因未开启"接收通知数据&quo
2025-08-27 18:38:45
709
原创 嵌入式linux主板搭建nps内网穿透访问服务
本文介绍了在嵌入式Linux主板上部署NPS客户端实现内网穿透的方法。主要内容包括:NPS服务的特点和功能、关键术语解释、Web界面模块说明,以及具体部署步骤:1)在服务器端配置NPS服务;2)下载ARM架构的NPS客户端;3)修改配置文件填写服务器地址和验证密钥;4)将客户端文件拷贝到Linux主板并设置自启动。通过该方案,开发者可远程Telnet访问嵌入式设备,解决内网设备无法直接外网访问的问题。
2025-08-27 16:45:28
876
原创 线阵CCD驱动实战指南:以TCD1304与STM32F103C8T6为例
本文介绍了线阵CCD TCD1304与STM32F103C8T6微控制器的驱动方案。首先讲解了CCD的工作原理,包括其MOS电容结构、光电效应和电荷转移过程。接着分析了线阵CCD的通用驱动要求,包括供电、时钟信号和控制脉冲等接口需求。最后详细给出了基于TCD1304和STM32F103C8T6的硬件选型方案和时序控制逻辑,该方案成本控制在40元以内,适合初学者快速搭建CCD应用系统。重点阐述了TCD1304的SH、ICG和ϕM三个关键信号的控制时序,为相关应用提供了实用参考。
2025-08-26 15:18:44
2416
10
原创 ESP32开发WSL_VSCODE环境搭建
本文介绍了在Windows WSL1环境下搭建ESP32开发工具链的完整流程。主要内容包括:启用WSL功能、安装Ubuntu系统、配置开发环境(更新apt工具、安装必要软件包)、下载esp-idf和配套工具链、激活ESP-IDF环境等步骤。文档详细记录了每个环节的具体操作命令和可能遇到的问题(如rich模块缺失的解决方法),并配有截图说明。该环境允许开发者在Windows系统中通过Linux子系统进行ESP32固件开发,避免了复杂的双系统或虚拟机配置。
2025-08-25 21:13:52
1375
原创 一个软开关,长按开机,自动关机的实现。
当按下开关键的时候, ON/OFF_KEY接入7.4V电池电压, Q8导通 进而Q7导通此时整个系统上电,接入电池电压。单片机也上电了,单片机上电后,控制ON/OFF_CTRL一直输出高电平,控制Q8 Q7一直导通。系统一直供电。
2024-03-24 16:22:02
2583
原创 百模大战:AI行业的新趋势
百模大战让我们看到了AI行业的新趋势。从AI在游戏中的表现到普及和应用的推动,再到人机合作和伦理问题的探讨,这些趋势都将引领AI行业的未来发展。让我们拭目以待,期待AI为我们带来更多的惊喜和改变!
2023-12-25 16:39:25
1091
原创 LTspice 电路仿真软件教程--基础篇
LTspice是一款高性能Spice III仿真软件、原理图采集和波形查看器,集成增强功能和模型,简化了开关稳压器的仿真。与常规Spice仿真器相比,我们对Spice的功能改进使开关稳压器仿真速度非常快,用户只需几分钟的时间便可查看大多数开关稳压器的波形。下载内容包含Spice、宏模型、200多个运算放大器模型,以及电阻、晶体管和MOSFET模型。本视频概述了在模拟设计中使用LTspice的优势。主要介绍使用LTspice的好处、如何轻松入门以及在哪里下载LTspice。
2023-12-22 16:59:48
12268
原创 正负电压测量电路 双极性电压测量电路 绝对值电路 加法器 保姆级仿真实测 --电路四库全书系列
想要搭建一个输入电压范围-150~ +150 V的测量电路,计划后级部分使用绝对值电路,将负电压转换为正电压,再进ADC。本文介绍了常用的测量正负电压的方式。这次的文章主要讨论其中的绝对值电路。整理了2个绝对值电路,通过仿真测试电路精度效果。**
2023-12-22 14:12:28
7060
1
原创 STM32单片机SPI从机通讯程序故障和解决
公司开发的产品,需要主机和一个从传感器设备进行SPI通讯,自己编写SPI从机的单片机程序,然后让主从机通讯。可以实现主机SPI挂载最多2个流量计模块。我编写的程序之前1对1通讯已经好用了,后来新项目要使用两个我开发的模块,就发现了问题,只插入一个模块的时候可以读取。插入两个后都异常了。
2023-12-20 17:06:30
2408
3
原创 迪文屏开发保姆级教程4—弹出键盘录入ASCII字符
本篇文章主要介绍了在DGBUS平台上使用文本录入键盘的步骤。迪文文本录入键盘是什么?通过迪文官方的DGUS工具,导入一张带有按键的背景图片,以此页面为按键,后面录入数据的时候,都是跳到这个页面进行数据录入。比组态键盘开发过程更简单,但是复用性不如组态键盘。文本录入键盘只能录入ASCII字符。选中之前导入的键盘素材页面。拖动出来我们实际要显示的键盘范围,点击确定完成。选中键盘素材所在的页面完全按键定义这里 Return 就相当于确定,确认当前输入 然后返回原界面7.保存、导出、验证。
2023-12-20 16:43:19
5159
原创 迪文屏开发保姆级教程2——页面键盘
本篇文章主要介绍了在DGBUS平台上使用页面键盘的步骤。选中键盘素材所在的页面添加基本触控控件。如下图,设置一下键值,参考DGUS界面上的要求设置。重复完成所有按键的设置。老规矩,养成好习惯,三连走一波,保存、生成、导出。然后就大功告成了~~ 用SD卡拷贝 DWIN_SET文件夹到SD卡根目录,去烧写屏幕程序验证。GOOD LUCK~还是老规矩,文末来个福利图养养眼,放松一下 ~~
2023-12-19 17:46:20
4380
3
原创 STM32 CAN多节点组网项目实操 挖坑与填坑记录2
CAN线性组网项目开发过程中遇到的数据丢包问题,并尝试解决的记录和推测分析。开发了一个多节点线性组网采集数据的项目。系统包含1个供电和数据网关板还有最多10个节点。节点之间和网关之间通过CAN通讯。硬件环境节点软件开发环境节点IAR 8.32.1VSCODE软件支持包ST HAL 库硬件环境网关板软件开发环境节点KEIL5.14VSCODE软件支持包ST HAL 库PC上位机环境windows10USB-CAN PC上位机CANAGAROOPC串口助手。
2023-12-18 16:56:41
2305
2
原创 迪文屏开发保姆级教程1- -组态键盘
本篇文章主要介绍了在DGBUS平台上使用组态键盘的步骤。首先需要在DGBUS中添加一个图标变量控件,并设置图标的属性,包括大小和图标文件的引用。然后生成图标库ICL文件,选择要生成的图标文件并命名ICL文件,将生成的ICL文件引用到图标变量属性中。最后,在单片机程序中编写显示图标的函数,并在主循环中调用该函数即可实现图标的切换显示。文章还提到了一些容易踩到的坑,建议参考者注意避免。按键定义规则设置键值界面依次将所有的字符定义完成。
2023-12-18 16:41:32
3306
4
查询电脑中大文件,清理电脑中大文件的利器
2025-12-29
QT编写的TCP自动发送测试工具
2025-12-29
免费的串口监听工具,监听串口,多视图
2025-12-29
光学光谱仪-线阵CCD-STM32F4驱动+读取光谱然后USB传输
2025-08-28
迪文屏开发指南T5LDGUS开发指南
2023-12-20
STM32CAN通讯程序
2023-12-21
Quectel-EC200x&EC600x&EG912Y系列-FTP(S)-应用指导-V1.0
2023-12-20
Quectel-EC200N-CN-LTE-Standard-模块产品介绍
2023-12-20
Quectel-EC200x&EC600x&EG912Y系列-MQTT-应用指导-V1.1
2023-12-20
TCS3200颜色传感器51例程
2023-12-20
STM32F103控制步进电机和迪文屏显示的压力校准仪工程
2023-12-20
基于STM32F0读取PM2.5浓度、红外遥控器控制、手机WIFI控制、涂鸦物联网平台、SHT30读取温湿度
2023-12-20
LsCron Java定时任务小工具,适用于指定时间修改状态等场景 软件架构使用DeplayQueue延时队列实现
2023-12-19
基于STM32F407的TCS230颜色识别的程序
2023-12-15
Cangaroo USB-CAN上位机
2023-12-11
转换当前目录下图片为jpg
2023-12-11
cangarooUSB-CAN上位机源码
2023-12-11
电子电路计算器.apk安卓APP
2022-11-17
热式气体质量流量计工作原理和使用说明书
2022-07-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅