- 博客(69)
- 资源 (6)
- 收藏
- 关注
原创 QT学习笔记QserialPort类学习(一)
这篇博客记录一下QSerialPort类的学习成果,虽然用过多次了,但是从来没有仔细查看过官方的说明,所以这篇博客主要参考QT官方文档,给自己一个明确的,详细的使用方法,或许会发现点意外收获也说不定。1、概述QSerialPort类提供的是是一个接入串口的功能,它从QT的5.1版本之后才开始有,它继承自QIODevice。还有一个串口辅助的类QSerialPortInfo,它可以列举出系统...
2020-01-09 20:26:27
6997
1
原创 设备日志采集系统开源实现:环形缓冲与落盘机制详解
本文分享自研嵌入式日志系统 elog 的设计与踩坑经验。针对资源受限场景,舍弃格式化、运行时过滤等特性,采用无锁环形缓冲与定时落盘机制,实现低延迟、高可靠日志采集。重点剖析三大实战坑:掉电丢日志(通过定时刷盘+CRC校验解决)、多线程并发写冲突(依赖O_APPEND与原子操作)、以及日志解析崩溃(引入头校验避免脏数据)。代码简洁可移植,核心逻辑仅数百行,适用于Linux与RTOS环境,强调“可用性”而非架构优雅。
2026-11-06 09:34:59
331
原创 pip 安装 scikit-image 报错?用国内镜像源快速解决
安装skimage时报错多因网络不稳定导致下载失败。需注意:pip安装应使用scikit-image而非skimage。建议切换至国内镜像源(如豆瓣、清华源),命令为:pip install scikit-image -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com。使用pip3可避免Python版本混淆。配置镜像后,可大幅提升安装成功率。安装完成后用import skimage验证即可。长期使用可配置全局镜像源。
2026-11-06 09:31:49
163
原创 设备日志采集系统开源实现:环形缓冲与落盘机制详解
本文分享了自研嵌入式日志系统 elog 的设计与踩坑经验。针对资源受限场景,舍弃复杂功能,采用无锁环形缓冲、编译期级别过滤和极简格式支持,实现低延迟、高可靠日志采集。上线后暴露三大核心问题:落盘时机不当致断电丢日志、缓冲溢出处理不合理、多线程并发写文件冲突。通过引入定时刷盘、记录头校验、O_APPEND 模式等方案解决,最终保障日志完整性与系统稳定性。代码轻量(C 语言,<150 行核心逻辑),可直接移植至 Linux/RTOS 环境。
2026-11-06 09:30:55
329
原创 TVS选型的几个硬指标:ESD防护不是随便加
基于IMX6ULL的工控板因RS485接口频繁损坏,经排查发现为ESD问题。原因在于TVS选型不当:反向关断电压(VRWM)过低、接地走线过长导致钳位失效。整改后,采用15V VRWM、SMB封装双向TVS,靠近连接器安装,地线短粗,并加10Ω限流电阻;USB则选用结电容<1pF的专用ESD器件。最终通过±15kV空气放电测试。总结:防护设计重在布局与匹配,需兼顾VRWM、VC、Cj、功率及接地,实测验证不可或缺。
2026-11-05 15:53:22
300
原创 串口波特率误差的完整计算与工程验证方法
UART通信误差源于收发双方波特率偏差,由分频寄存器分辨率(1/16)导致量化误差。实际波特率 = fCK / (16 × USARTDIV),USARTDIV为定点数,小数部分仅能以0.0625步进。误差计算公式为:(实际 - 目标)/目标 × 100%。工程上容忍收发两端误差之和≤2.5%,否则易丢帧。晶振频率与系统时钟配置直接影响误差,如7.3728MHz、11.0592MHz等“串口晶振”可实现零误差。通过代码自动计算最优BRR及误差,可提前筛选不可行组合,避免样机阶段调试。
2026-11-04 17:57:36
338
原创 agent-desktop 与 Computer use CLI 原理详解
怎么让大模型稳定地看见屏幕、移动鼠标、敲键盘,还能在失败后重试?agent-desktop 就是为这个场景准备的 Computer use CLI。它不是一个庞大的 SDK,而是一套命令行接口,把屏幕截图、坐标点击、键盘输入、无障碍树读取这些原子动作暴露出来,让 Agent 通过 shell 调用即可完成桌面操作。这篇文章围绕它的工作方式、安装配置、可运行代码和常见坑展开,尽量把能直接抄走的部分写清楚。
2026-11-04 13:25:38
481
原创 去耦电容到底该放几颗:0.1uF 的真相
0.1μF 0402 电容高频去耦效果受走线电感主导,自谐振频率仅15~25MHz。实测显示,电容距芯片从2mm增至8mm,电源纹波由18mV升至41mV。封装越大,高频性能越差;走线与过孔电感会显著降低有效谐振频率。正确做法应基于目标阻抗反推电容数量,优先保证0.1μF距电源脚≤2mm、不换层,并用1μF填充反谐振峰,避免盲目“每脚一颗”。
2026-11-04 13:23:36
260
原创 设备树其实只描述三件事
调试IMX6ULL外挂SHT30传感器时,因设备树未配置正确引脚复用(pinctrl)导致驱动probe失败。虽硬件I2C通信正常,但内核无法识别设备。核心问题在于:设备树需明确回答“有什么设备、挂在哪、用什么引脚和参数”。补全pinctrl配置后仍无效,最终发现驱动未编译进内核(仅模块化)。解决方法:将驱动设为<*>编入内核,重新烧录。总结:probe失败需排查设备树、驱动、内核配置三方面,不可仅限于设备树。
2026-11-03 13:42:06
298
原创 上拉电阻取值:为什么 4.7k 是默认答案
4.7kΩ 上拉电阻是 5V/3.3V、100kHz~400kHz I2C 与 100~200pF 总线电容下的折中选择。其真正优势在 100kHz 标准模式,400kHz 下需 ≤2.2k 才能满足 300ns 上升时间要求。上升时间由 RC 决定(tr = 0.847RC),功耗和灌电流则限制电阻下限(建议单线电流 ≤1mA)。实际选型应结合电容估算、速率要求与电源电压,冲突时降速或减电容。推荐使用几何平均法并归一至 E24 系列,确保通信稳定。
2026-11-03 13:41:04
265
原创 ADC采样精度的几个隐形杀手
本文分享了在IMX6ULL平台使用12位SPI ADC进行温度监控时,因源阻抗过大、参考电压噪声及信号处理不当导致采样跳动严重的调试过程。通过降低源阻抗、优化采样电容、独立稳压参考电压、软件中位值滤波等措施,将静态跳动控制在±2 LSB以内,显著提升精度。强调了前端设计与系统级噪声管理的重要性,实测验证了硬件与软件协同优化的有效性。
2026-11-02 11:18:33
274
原创 晶振的负载电容怎么选:12pF 还是 20pF
负载电容选错会导致时钟频偏吃掉全部预算。以32.768kHz晶振为例,标称CL=12.5pF时,若误用20pF电容,实测频偏可达+20ppm,日误差超1.7秒;而按正确值(如18pF)配置,可控制在±5ppm内。关键在于:CL = C/2 + Cstray,需根据走线长度与包地情况估算杂散电容(3–8pF),再反推C1=C2值。过大的电容不仅影响频率,还会降低起振裕量,低温下可能导致不起振。布线应短且不跨层,避免包地。建议优先选用12–18pF电容,20pF仅用于标称CL≥16pF的晶振。
2026-11-02 11:17:44
517
原创 把日志和寄存器值喂给AI做故障定位,我的实际问法
AI无法直接定位故障,但能将复杂日志压缩为关键怀疑点。通过结构化整理现象、日志与背景信息,并使用精准提示词引导分析,可快速锁定空指针等可疑问题,大幅提升排查效率。但需注意:材料不全易误导,建议保留验证意识,避免盲目采纳。AI是加速器,而非替代者。
2026-10-31 22:32:58
150
原创 补码的来历与溢出判断全解
补码通过模运算统一加减法,实现“减法用加法器”与“零唯一表示”。8位下-1补码为0xFF,原码0x81,反码0xFE,三者不同;同一值在无符号下为255,差256。补码使负数范围扩展(如-128),提升编码利用率至100%,并避免循环进位,节省硬件开销。嵌入式中,理解补码关乎溢出判断准确性、优化后代码可靠性及边界处理正确性。溢出判定可用符号位异或、进位异或或加宽比较,各有优劣。关键点:-128取负仍为-128,标准库abs()对INT_MIN行为未定义,需特别处理。
2026-10-28 21:56:24
244
原创 RS485 终端电阻与偏置电阻的取值、位置与实测方法
RS485通信稳定性关键在于终端与偏置电阻的正确配置。终端电阻应仅在总线两端各加120Ω,实现阻抗匹配,避免信号反射;偏置电阻则需按公式计算,通常取560Ω(5V系统),确保空闲态差分电压≥250mV,防止接收器进入不定态。错误添加多点终端或偏置会导致负载失配、电流过大、共模抬升,引发误码甚至通信崩溃。实测与自检可验证差分电压是否在200–400mV范围内,保障链路可靠。
2026-10-28 21:54:27
368
原创 铂电阻二线制、三线制、四线制的误差计算与选型边界
1Ω引线电阻在PT100中引入约2.6℃误差,0.5mm²铜线10米双程电阻达0.7Ω,误差1.8℃。二线制误差随线长、线径显著增加,且受温度漂移影响,难以标定。精度要求≤0.5℃时,二线制适用长度仅约2.7米。三线制可抵消引线电阻,但需等长、同温、同材质,否则残留误差。四线制彻底消除引线影响,适用于高精度、长距离场景。选型应基于误差预算,而非习惯,核心是“能容忍多少度误差”。
2026-10-28 21:52:57
465
原创 详解铂电阻二线制、三线制、四线制的误差计算与选型边界
本文系统分析了PT100测温中引线电阻带来的误差,指出1Ω引线电阻导致约2.6℃偏差。基于0.385Ω/℃灵敏度,推导出导线电阻与温度误差的换算关系,明确二线制仅适用于短距离(≤3米)且容忍度高场景;三线制需同路径敷设以保证精度;超过30米或要求0.5℃以内应采用四线制。强调温度漂移不可标定,选型应依线长、精度需求科学决策,避免盲目使用二线制。
2026-10-27 20:52:35
154
原创 GUI智能体可见性约束评测与优化
截图那一刻元素还没渲染出来,脚本读 DOM 时它已经在了,于是判定"可见",但模型看到的截图里确实没有。归因那一步,AI 的分析有对有错。生成的代码我改了两处:遮挡检测原来用的是 elementFromPoint,我换成了对元素中心点取样,因为有些页面有透明遮罩,elementFromPoint 会返回遮罩本身。简单讲,就是智能体只能操作它"看得见"的东西,看不见的、被遮挡的、在视口外的,都不该碰。页面结构极度动态的,比如每秒都在重排的图表页,DOM 快照和截图对不上,可见性判定基本没意义,别硬套。
2026-10-27 13:56:29
262
原创 Python面试题精讲:把高频考点讲透
《Python面试题精讲》聚焦基础到中级知识点,按语言特性、内存管理、装饰器、生成器、并发等七大主题分类,帮助求职者精准定位薄弱环节。每题解析“面试官真正在考什么”,强调理解而非背诵,标注高频与加分项,合理分配复习精力。适合1-3年经验者系统梳理知识体系,配合自述复盘与代码实践,高效备战面试。不替代算法刷题,但能显著提升表达与应变能力。免费下载于优快云,建议结合实际动手验证,效果更佳。
2026-10-27 13:55:12
165
原创 如何测试LLM的逻辑推理可靠性
本文分享了判断大模型代码推理是否“真推理”的实用方法:通过换皮、改数字、加干扰项、自证验证等五步测试,检验模型是否具备真实逻辑推导能力。核心在于观察其在结构不变但表述变化时的稳定性,以及能否正确忽略无关信息、代回验证答案。实测发现,部分模型在除不尽或干扰项下会“一本正经胡说”,需多次测试确保一致性。结论:别轻信流畅推理,要以“换壳+验算”为标准,养成批判性使用习惯。
2026-10-26 18:38:32
799
原创 MCP故障下工具调用Agent的可靠性
本文分享了在使用MCP(Model Context Protocol)调用外部工具时,因接口不稳定导致Agent生成错误结果的实战问题。作者通过引入“结果信封”、明确失败处理规则、添加熔断机制等工程化手段,使Agent在工具失败时不再“自编答案”,而是准确上报错误、合理重试或停止任务。强调:真正决定Agent能否上线的关键,不是它能做什么,而是它做不成时会不会骗人。适用于长链路、有副作用的生产级场景,提醒开发者别忽视工程可靠性。
2026-10-26 18:38:01
131
原创 AI把写代码变便宜了,省下来的时间该花在哪
本文分享作者用AI辅助开发一个Excel校验功能的真实经历。通过三步法:先让AI拆解需求、再逐模块生成小函数、最后自动生成测试用例,显著提升效率。但亦暴露出AI对项目上下文理解不足、错误提示生硬、擅自引入依赖等“翻车”问题。作者总结出适用边界:适合需求拆解、小函数编写与测试生成,但不宜用于涉及内部结构或面向用户的文案。核心观点是:AI让“写代码”变便宜,省下的时间应投入“想清楚做什么”,而非盲目堆功能,真正价值在于提升思考深度。
2026-10-26 18:37:07
142
原创 KICAD规则优先级问题
Kicad 9.0中BGA封装间距不生效问题源于规则优先级。若仅修改封装焊盘重写间距而未设自定义规则,当全局最小间距大于重写值时,重写无效;反之则生效。若启用自定义规则(CustomRules),其优先级高于全局规则,重写间距仅在小于等于自定义规则值时才生效。结论:封装重写间距优先级最低,最终间距由自定义规则或全局规则决定,重写间距需满足更严格条件才能生效。
2026-10-23 17:20:08
92
原创 WSTQ724G开路检测使用问题
国产芯片WSTQ724G替换英飞凌BTS724G时,因手册未明确说明开路检测需外加上拉电阻,导致调试失败。技术支持最终确认需在OUT端加4V上拉才能实现开路检测功能,而原手册典型应用图未体现该设计要点。这一关键信息缺失迫使工程师不得不修改PCB设计重新打样,凸显了国产芯片文档完整性和技术支持的重要性。
2026-05-19 15:05:02
67
2
原创 铝合金表面处理方法调研总结
每种表面处理方法的具体工艺流程和优缺点可能因不同厂商和应用而略有差异。在实际应用中,选择适合的表面处理方法应根据产品的具体要求和预期效果进行综合考虑。
2023-08-25 16:13:46
3388
原创 Kicad7.0版本PCB新建布线快捷键失效问题记录
Kicad绘制PCB的时候,布线快捷键默认是“x”,在6.x版本上用的还比较顺手。经过以上排查,比较怀疑是软件bug,查看当前软件版本Kicad7.0.1,最新版本Kicad7.0.7,果断更新最新版本。关闭了电脑上其他所有前后台软件(不包括加密软件),测试依然没有效果。3、排查是否软件默认快捷键修改了。检查之后确认在PCB场景下,新建布线快捷键仍然是x。版本更新完成后,Kicad7.0.7测试PCB新建布线快捷键依然没有效果。测试打字正常,“xxxxxx”,输入也正常。修改快捷键,测试依然没有效果。
2023-08-22 15:47:19
597
原创 关于RISC-V的一些了解
RISC-V作为一种新兴的、开源的指令集架构,具有开放、自由、可扩展、灵活、简洁、高效、兼容和可移植等优势,未来有望成为一个具有广泛影响力和市场竞争力的通用指令集架构。
2023-06-14 15:15:09
2834
原创 一文了解Python
Python是一种非常流行的编程语言,它易于学习、使用和阅读,并且可以用于各种不同类型的应用程序开发。Python具有许多特点,包括易于学习、开源、跨平台、面向对象、动态类型、解释型和强制缩进等。Python还具有许多高级特性,例如列表推导式、生成器、装饰器和上下文管理器等。Python已经成为一种广泛应用于Web开发、数据科学、机器学习、人工智能和游戏开发等领域。
2023-06-09 10:29:30
1387
原创 详解“大端”模式和“小端”模式
计算机中的大端模式和小端模式是数据存储方式的两种不同表现形式。它们分别用于描述字节在内存中的排列方式,即如何存储多字节数据类型(例如整数、浮点数等)的字节序列。本文将详细介绍大端模式和小端模式的概念、区别、应用及其相关知识。
2023-06-08 15:01:28
17674
8
原创 C语言设计-观察者模式
观察者模式(Observer Pattern)是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象状态发生变化时,会自动通知所有观察者对象进行更新操作。观察者模式也被称为发布-订阅(Publish-Subscribe)模式。在观察者模式中,有两个核心角色:主题(Subject)和观察者(Observer)。主题维护一个观察者列表,并提供了注册、删除、通知观察者等接口;而观察者则通过实现更新(Update)接口来接收主题的通知并进行相应的处理。
2023-06-08 09:47:42
1086
原创 燃料电池系统控制技术的演进
电池控制器是燃料电池系统中至关重要的部分,它可以监测和控制燃料电池的运行状态,确保燃料电池系统的稳定运行。该算法通过测量燃料电池系统的输出电压、电流等参数,并根据设定的目标值来调整控制器的输出,从而控制燃料电池系统的运行状态。该技术通过建立燃料电池系统的数学模型,并根据模型预测出下一时刻的输出值,从而调整控制器的输出,实现对燃料电池系统的精确控制。控制器通过测量燃料电池系统各个部分的参数,如电压、电流、温度等,对燃料电池系统进行实时监测和控制,以保证系统的稳定性和安全性。
2023-05-25 11:32:15
2220
原创 OTA升级技术概览
OTA(Over-the-Air)升级技术是一种通过无线网络远程升级固件或软件的方法,已经成为现代工业、智能家居、汽车等领域中广泛应用的技术。本文将从背景、原理、方法和设计原则等方面进行详细阐述OTA升级技术。
2023-05-25 10:42:30
3109
原创 C语言查表设计和指针的指针
项目场景:最近在做一个控制器项目,在控制器开发过程中遇到一个动态查表的问题,需要采集传感器的值,通过判断传感器值所在区间来获取相关的阈值,这样就可以为后续代码提供动态阈值。问题描述: 这里遇到的问题是内存溢出,每次读取阈值的时候都提示内存溢出:Segmentation fault原因分析:看到这个问题,我大概猜出来应该是指针搞错了,因为我函数的参数本来就是指针,我本意是改变指针的指向,然而实际上,这种写法不能改变指针的指向,只...
2022-01-05 18:08:56
920
原创 NTC热敏电阻的时间常数
热时间常数这个参数在热敏电阻的手册上都会标注出来,是热敏电阻的一个重要参数,百科上说也叫热响应时间(thermal response time)。一般热时间常数越大表明此热敏电阻性能越好。1、热时间常数定义 实际上,热时间常数是用来衡量NTC热敏电阻对环境温度变化作出响应所需的时间长短的。热时间常数的技术定义是“当阶跃函数的温度变化时,NTC热敏电阻在零功率下改变其初始和最终体温之差的63.2%所需的时间”。...
2021-12-31 08:27:14
7856
2
转载 Linux交叉编译libmodbus库
一. 源码获取 打开modbus官网,https://libmodbus.org/ 在官网找到“Download”选项,点击进入,然后点击红色方框标志的“ v3.1.6”,即可下载当前最新的源码。二. 编译准备1.本人编译环境VMware® Workstation 15 ProUbuntu16.042.本人交叉编译工具arm-linux-gnueabihf-gcc三. 交叉编译1.将下载好的源码libmodbus-3.1.6.tar.gz拷贝到Ubuntu...
2021-11-20 17:18:21
2438
2
转载 编译器 cc、gcc、g++、CC 的区别
gcc是GNU Compiler Collection,原名为Gun C语言编译器,因为它原本只能处理C语言,但gcc很快地扩展,包含很多编译器(C、C++、Objective-C、Ada、Fortran、 Java),可以说gcc是GNU编译器集合。g++是C++编译器。cc 是 Unix系统的 C Compiler,一个是古老的 C 编译器。而 Linux 下 cc 一般是一个符号连接,指向 gcc;可以通过 $ ls -l /usr/bin/cc来简单察看,该变量是 make 程序的...
2021-11-11 10:54:41
880
原创 用QT在linux上编写无界面的imx6u程序
背景:最近在虚拟机上搭建了qt的交叉编译环境,计划后面可以用qt来开发imx6u的应用程序,环境搞定之后编译了一个helloworld程序,采用的是默认的Qt Widgets Application,结果imx6u的板子运行的时候会报错(如下所示)。tslib: Selected device is not a touchscreen (must support ABS event type)tslib: Selected device is not a touchscreen (must su
2021-07-26 10:44:41
2353
3
原创 imx6ull内存太小,用U盘打包文件系统
imx6ull在根目录下用U盘打包文件系统=========================================tar -vcjf /run/media/sda1/rootfs.tar.bz2 /bin /boot /dev /etc /home /lib /mnt /opt /sbin /tmp /usr /var /media /run --exclude=/run/media/sda1 /proc --exclude=/proc/* /sys --exclude=/sys/*...
2021-07-23 09:28:10
351
嵌入式与AI配套源码包
2026-10-27
公众号自动化运营系统源码
2026-10-26
儿童填色素材包全套打印
2026-10-26
Python原创教程合集精编
2026-10-26
Python实用技巧合集精讲
2026-10-26
Python基础学习篇
2026-10-26
Python面试题精讲
2026-10-26
最全面的qt面试题,保存下来,你能用上的!.zip
2020-01-09
一份就够!史上最全面Python面试题和详解(10个文件)看完啥都会了.zip
2020-01-07
最新更新!新增300+题目和github资源!史上最全python面试题搜集.zip
2020-01-20
mtk编译环境搭建指导.zip
2020-06-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅