<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LNN2022的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LNN2022</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LNN2022]]></copyright><item><title><![CDATA[半导体设备HMI软件架构]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/160859010</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/160859010</guid><author>LNN2022</author><pubDate>Thu, 07 May 2026 17:23:06 +0800</pubDate><description><![CDATA[本文介绍了四层软件架构的设计要点：1) UI层已实现Qt深色主题界面；2) 业务逻辑层部分完成，包括数据管理和待实现的配方引擎；3) 实时控制层需开发PID控制、联锁管理等核心功能；4) 通信层需定义协议适配器接口。建议实施顺序：先定义通信协议，再实现TCP/串口通信、PID控制和安全联锁，最后集成到UI。关键设计包括统一通信接口、抗积分饱和PID算法、组合联锁条件和带超时保护的状态机。所有代码基于Qt6，采用CMake构建，支持Windows和Linux平台。]]></description><category></category></item><item><title><![CDATA[SemiTool 半导体设备上位机系统 - 软件开发文档]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/160857502</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/160857502</guid><author>LNN2022</author><pubDate>Thu, 07 May 2026 14:21:34 +0800</pubDate><description><![CDATA[SemiTool是一款面向半导体制造设备的工业上位机控制系统，主要用于PECVD、蚀刻等工艺设备的实时监控与管理。系统采用C++17开发，基于Qt6框架，具备用户认证与权限管理、腔室状态监控、配方管理、报警处理等功能模块。文档详细介绍了系统架构设计，包括登录模块、主窗口框架、数据管理器等核心组件，以及数据模型、接口设计和数据库结构。系统支持三级权限控制（操作员/工程师/管理员），提供实时曲线显示、工艺控制、历史数据查询等功能，并采用SQLite进行数据存储。技术选型包含Qt Widgets GUI框架、Qt]]></description><category></category></item><item><title><![CDATA[半导体设备上位机 Qt 实现计划]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/160856183</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/160856183</guid><author>LNN2022</author><pubDate>Thu, 07 May 2026 13:42:34 +0800</pubDate><description><![CDATA[本项目基于Qt6/C++17开发半导体设备上位机系统，主要功能包括：1)多级权限登录验证；2)实时监控仪表盘（KPI卡片、腔室示意图、工艺曲线）；3)配方管理系统（参数编辑/曲线预览）；4)报警管理（三级报警/阈值配置）；5)运行控制（状态机可视化）；6)历史数据查询与导出（CSV/Excel/PDF）。系统采用模块化设计，包含8个功能页面，使用SQLite存储数据，QCustomPlot实现实时曲线，200ms刷新频率模拟传感器数据。开发周期5天，通过CMake构建，满足半导体设备监控的各项功能需求。]]></description><category></category></item><item><title><![CDATA[半导体设备 UI 开发工程师：完整工作执行手册]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/160850222</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/160850222</guid><author>LNN2022</author><pubDate>Thu, 07 May 2026 10:27:26 +0800</pubDate><description><![CDATA[本文介绍了半导体设备控制软件的开发要点，主要涵盖三大核心能力：行业知识、工程能力和规范标准。文章详细拆解了8个关键模块：1）符合SEMI标准的HMI界面设计，强调操作确认机制和视觉规范；2）基于Qt的多线程架构实现，重点说明Worker-Thread模式；3）Python/C++混合开发策略；4）跨平台适配方案；5）符合GMP要求的权限与审计系统；6）完整的测试体系；7）CI/CD自动化流程；8）AI技术预研方向。每个模块都包含具体的技术实现示例，如报警防抖逻辑、实时曲线优化、WebAssembly应用等。]]></description><category></category></item><item><title><![CDATA[STM32H7 + 迪文屏 DGUS 开发实战：从零构建工业级时间设置界面]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/160114354</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/160114354</guid><author>LNN2022</author><pubDate>Mon, 13 Apr 2026 15:17:27 +0800</pubDate><description><![CDATA[本文详细介绍了基于STM32H7与迪文屏(DWINDGUS)的嵌入式GUI开发方案。系统采用FreeRTOS分层架构，通过USART6的IDLE中断实现高效串口通信，设计状态机管理多输入框交互，并利用FreeRTOS任务实现光标闪烁效果。重点阐述了IDLE中断接收机制、迪文屏协议解析、输入状态机设计等关键技术，提供了线程安全解决方案和常见问题处理方法。该系统已成功应用于工业相机控制界面，具有中断轻量化、逻辑解耦、延时补偿等特点，为嵌入式GUI开发提供了实用参考。]]></description><category></category></item><item><title><![CDATA[.NET、C#基础知识学习（1）]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/155534712</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/155534712</guid><author>LNN2022</author><pubDate>Wed, 24 Dec 2025 15:58:50 +0800</pubDate><description><![CDATA[本文摘要： 访问修饰符：详细讲解public、private、protected等5种修饰符的作用范围及代码示例 枚举：介绍枚举的定义、基础类型指定及适用场景，通过订单状态案例展示枚举优势 WebAPI与WebService对比：从协议、数据格式、性能等方面分析两者差异，提供C#实现代码 HTTP与SOAP关系：解释HTTP作为传输协议与SOAP作为消息协议的区别，通过代码对比展示请求格式差异 WCF与WebAPI选型：通过双工通信、多协议支持等场景代码展示两者适用场景 HashTable与Dictiona]]></description><category></category></item><item><title><![CDATA[快速入门脑机接口：脑机接口基础（一）]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/156089795</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/156089795</guid><author>LNN2022</author><pubDate>Fri, 19 Dec 2025 17:17:03 +0800</pubDate><description><![CDATA[脑机接口（BCI）是一种实现大脑与机器直接通信的系统，通过采集、解析脑信号控制外部设备。BCI分为三类：侵入式（植入大脑皮质，信号质量高但风险大）、半侵入式（ECoG，需开颅手术但安全性较好）和非侵入式（EEG、fMRI等技术）。其中EEG因便携、低成本成为最常用方法，虽空间分辨率低但时间分辨率优异。不同脑成像技术各具特点：fMRI空间分辨率高，MEG时空分辨率均衡，PET需放射性示踪剂。当前BCI主要应用于医疗康复领域，技术选择需权衡信号质量与安全性。]]></description><category></category></item><item><title><![CDATA[Linuxfb+Qt 输入设备踩坑记：解决 “节点存在却无法读取“ 问题]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/155575111</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/155575111</guid><author>LNN2022</author><pubDate>Thu, 04 Dec 2025 17:15:05 +0800</pubDate><description><![CDATA[本文介绍了对QLinuxFbIntegration类进行增量增强的修改方案，重点解决嵌入式Linux系统中触摸屏设备失效问题。修改方案采用无侵入式设计，仅通过新增函数和成员变量实现以下功能：1) 设备可用性验证，解决节点存在但无法读取问题；2) 权限自动修复，避免权限不足导致的读取失败；3) 驱动状态检查机制；4) 重试机制兼容内核设备初始化延迟；5) 通过inotify实现实时监听补充原有定时检测。所有修改均保持原有代码不变，新增功能通过独立变量和函数实现，特别适用于解决EMC静电测试中静电释放导致的触摸]]></description><category></category></item><item><title><![CDATA[深入解析 Qt 中触摸屏热插拔的实现细节：m_notify 的生命周期管理(1)]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/155536972</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/155536972</guid><author>LNN2022</author><pubDate>Wed, 03 Dec 2025 17:32:14 +0800</pubDate><description><![CDATA[本文深入分析了Qt中evdevtouch插件处理触摸屏热插拔的关键机制。当检测到设备拔出(ENODEV错误)时，系统会执行三步清理：1)显式销毁QSocketNotifier对象(m_notify)并置空，终止监听；2)关闭设备文件描述符(m_fd)并置为-1；3)调用unregisterTouchDevice()彻底清理资源。这种设计有效防止了内存泄漏和无效事件触发，确保系统稳定运行。文章还指出，对于非设备拔出的错误(EINTR/EAGAIN)，系统会保持正常监听状态。该机制展现了Qt在嵌入式开发中完善的]]></description><category></category></item><item><title><![CDATA[Qt 5.8.0 下实现触摸屏热插拔功能的探索与实践（3）]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/155536915</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/155536915</guid><author>LNN2022</author><pubDate>Wed, 03 Dec 2025 17:30:25 +0800</pubDate><description><![CDATA[本文介绍了在Qt5.8.0的linuxfb平台插件中实现触摸屏热插拔功能的完整方案。通过修改QLinuxFbIntegration类，添加定时检测设备节点、清理旧驱动和重建输入处理器的逻辑，实现了触摸屏设备的动态插拔支持。方案采用3秒定时检测机制，通过QMutex保证线程安全，支持环境变量配置设备参数，并兼容原有的libinput/tslib/evdev输入驱动。该修改仅需调整linuxfb平台代码，无需重新编译整个Qt，具有低开销、高兼容性和配置灵活等特点。]]></description><category></category></item><item><title><![CDATA[Qt 5.8.0 下实现触摸屏热插拔功能的探索与实践（2）]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/155536664</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/155536664</guid><author>LNN2022</author><pubDate>Wed, 03 Dec 2025 17:26:03 +0800</pubDate><description><![CDATA[本文介绍了在Qt5.8.0的linuxfb平台集成中添加触摸屏热插拔功能的方法。通过定时检测/dev/input/eventX设备节点、清理旧驱动和重建新驱动等核心逻辑，实现了触摸屏的动态插拔支持。关键优化包括线程安全保护、延迟重建机制和环境变量配置，在保留原有输入驱动逻辑的同时，以低开销方式实现热插拔功能。该方案无需重新编译整个Qt，提高了嵌入式Linux系统中触摸屏的灵活性和用户体验，为开发者提供了实用的参考方案。]]></description><category></category></item><item><title><![CDATA[使用 QEvdevTouchManager 处理触摸屏输入：配置指南]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/155535252</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/155535252</guid><author>LNN2022</author><pubDate>Wed, 03 Dec 2025 17:02:12 +0800</pubDate><description><![CDATA[本文介绍了在Qt5.8中配置QEvdevTouchManager处理触摸屏输入的方法。主要包括设置关键环境变量：禁用libinput（QT_QPA_FB_NO_LIBINPUT=1）、禁用tslib（QT_QPA_FB_TSLIB=0），以及可选调试日志（QT_QPA_EVDEV_DEBUG=1）和触摸设备参数（QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS）。文章详细说明了在终端和QtCreator中的配置步骤，并强调了设备权限、驱动安装等注意事项。通过正确配置这些环境变量，可以确]]></description><category></category></item><item><title><![CDATA[Qt 5.8 中的 Qt Test：轻松实现自动化测试]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/154937914</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/154937914</guid><author>LNN2022</author><pubDate>Mon, 17 Nov 2025 09:27:34 +0800</pubDate><description><![CDATA[本文介绍了Qt5.8中QtTest单元测试框架的核心特性和使用方法。QtTest作为Qt内置轻量级测试工具，提供丰富的断言宏（如QVERIFY、QCOMPARE）、信号槽测试（QSignalSpy）、数据驱动测试和UI测试支持。文章详细说明了测试项目的创建步骤、测试用例编写规范（test开头的槽函数）、项目文件配置以及运行测试的方法。特别强调了数据驱动测试的优势和自定义类型测试的实现要求（需重载operator==和QDebug操作符），并提醒注意不同Qt版本间的兼容性差异。通过QtTest可有效提升Qt应]]></description><category></category></item><item><title><![CDATA[深入探索嵌入式Linux开发：从基础到实战]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/154690694</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/154690694</guid><author>LNN2022</author><pubDate>Tue, 11 Nov 2025 14:09:17 +0800</pubDate><description><![CDATA[本文系统介绍了嵌入式Linux开发的核心技术与实践方法。首先阐述了嵌入式Linux的模块化设计、实时性支持、广泛硬件兼容性等特性及其在消费电子、工业控制等领域的应用。其次详细讲解了开发环境搭建过程，包括虚拟机配置、Linux系统安装和交叉编译工具链设置。最后通过“Hello World”程序、串口通信和Qt图形界面三个实战案例，展示了嵌入式开发的具体流程。文章为开发者提供了从理论到实践的完整学习路径，有助于快速掌握嵌入式Linux开发技能。]]></description><category></category></item><item><title><![CDATA[《嵌入式 Linux 开发入门：从环境搭建到第一个程序》]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/154690424</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/154690424</guid><author>LNN2022</author><pubDate>Tue, 11 Nov 2025 14:03:16 +0800</pubDate><description><![CDATA[本文详细介绍了嵌入式Linux开发环境的搭建过程，从虚拟机的安装配置到交叉编译器的设置，并演示了如何编写和运行第一个嵌入式程序。内容包括：1）嵌入式Linux的特点与优势；2）在VMware中创建Ubuntu虚拟机；3）安装VMware Tools和配置共享文件夹；4）ARM交叉编译环境的搭建；5）编写简单C程序并分别编译PC和ARM版本；6）使用minicom进行串口调试。通过完整的环境配置和示例演示，为开发者提供了嵌入式Linux开发的入门指引，为进一步学习内核驱动和Qt开发打下基础。]]></description><category></category></item><item><title><![CDATA[软件开发模型——瀑布式模型：软件开发的经典范式及其现代实践]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/154531713</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/154531713</guid><author>LNN2022</author><pubDate>Fri, 07 Nov 2025 14:42:52 +0800</pubDate><description><![CDATA[摘要：瀑布式模型是一种线性顺序的软件开发方法，强调阶段划分和文档驱动，适用于需求稳定的项目。其核心阶段包括需求分析、系统设计、编码、测试、部署和维护，每个阶段都有明确的交付物。该模型优点是阶段清晰、文档完整、质量可控，但存在需求变更困难、用户反馈滞后等缺点。现代实践中可通过引入原型验证、V模型、敏捷结合等方式优化。瀑布模型特别适合政府、军工、医疗等强合规项目，以及嵌入式系统等需求稳定的场景。合理选择开发模型需考虑需求明确度、合规要求和变更预期等因素。]]></description><category></category></item><item><title><![CDATA[如何准确判断USB设备的热插拔状态]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/154488203</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/154488203</guid><author>LNN2022</author><pubDate>Thu, 06 Nov 2025 14:28:04 +0800</pubDate><description><![CDATA[本文介绍了Linux系统中判断USB设备热插拔状态的多种方法。重点包括检查挂载点和设备文件是否存在，注意设备文件名(/dev/sda1等)会随每次插入动态变化。推荐使用udev规则监听设备事件，通过解析ACTION=add/remove日志获取准确状态。提供了C语言示例代码，演示如何实时检查设备状态。正确判断USB状态需同时验证挂载点和设备文件，并处理设备名的动态分配问题，这对防止数据丢失和设备管理至关重要。]]></description><category></category></item><item><title><![CDATA[实现 QButtonGroup 的即时互斥性：提升按钮切换的流畅度]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/154390686</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/154390686</guid><author>LNN2022</author><pubDate>Tue, 04 Nov 2025 12:01:28 +0800</pubDate><description><![CDATA[本文介绍了在Qt中使用QButtonGroup实现按钮即时互斥性的优化方法。默认情况下，QButtonGroup的互斥性会导致按钮切换延迟，影响用户体验。作者通过创建继承QPushButton的自定义按钮类CustomPushButton，重写mousePressEvent方法，在按钮按下时立即取消其他按钮选中状态并设置当前按钮选中。同时需要确保按钮组设为互斥模式(setExclusive(true))，并在方法中调用基类事件处理。这种方法解决了按钮切换的视觉延迟问题，提升了交互流畅度，适用于需要快速响应的]]></description><category></category></item><item><title><![CDATA[Qt creator +Valgrind检测内存泄漏（linux)]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/154115877</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/154115877</guid><author>LNN2022</author><pubDate>Thu, 30 Oct 2025 10:18:04 +0800</pubDate><description><![CDATA[现在，当您在 Qt Creator 中运行 Valgrind 时，它应该能够读取到您设置的环境变量，并使用正确的库文件路径。： 在“运行设置”部分，选择您想要配置的环境（例如，Debug 或 Release），然后点击“编辑”按钮。如果您的 Valgrind 安装在不同的路径下，或者您使用的是交叉编译环境，您需要相应地调整环境变量的值。： 在菜单栏中，选择“项目”>“项目设置”或者在左侧边栏中点击“项目”视图。： 完成环境变量的添加后，点击“确定”或“应用”按钮保存您的设置。]]></description><category></category></item><item><title><![CDATA[valgrind安装及使用]]></title><link>https://blog.youkuaiyun.com/LNN2022/article/details/154115463</link><guid>https://blog.youkuaiyun.com/LNN2022/article/details/154115463</guid><author>LNN2022</author><pubDate>Thu, 30 Oct 2025 10:07:39 +0800</pubDate><description><![CDATA[本文介绍了Valgrind工具的安装、配置和使用方法。首先从GNU镜像站下载源码并解压，然后通过autogen.sh和configure脚本进行配置，使用make命令编译安装。安装完成后，需设置VALGRIND_LIB环境变量解决库文件路径问题，并将安装目录添加到PATH变量中。使用示例展示了如何调用memcheck工具检测程序内存泄漏，并提供了常见错误的解决方案。最后强调了官方文档的重要性，并附上完整的安装检测流程代码示例。]]></description><category></category></item></channel></rss>