- 博客(1245)
- 资源 (5)
- 收藏
- 关注
原创 文章发布说明
2023-12-23 - 【Shell - 学习笔记 第1章 Shell基础】系列。2024-01-27 - 【书籍-《华杉讲透孙子兵法》】系列。2023-12-29 - 【休闲娱乐 - 直排轮滑教程】系列。1,本博客发布的文章内容,如果侵权,请私信我删除。
2024-01-23 10:13:39
474
原创 工程师 - Bit Mask
摘要:嵌入式软件中,寄存器mask操作是利用位运算(与、或、异或等)有选择地修改特定位而保持其他位不变的技术。主要包括四种操作:置位(通过|操作)、清零(通过&和~)、翻转(通过^)以及位检测(通过&)。其原理类似遮罩,通过构造特定位模式(如1<<n)来精准控制寄存器位。这种操作广泛应用于GPIO控制、中断管理、状态检测等底层编程场景,是嵌入式开发的基础核心技能。实际应用中常使用宏定义提高代码可读性。
2025-10-18 10:23:47
1049
原创 工程师 - Detecting Short to Battery and Ground Conditions with TI
摘要:德州仪器(TI)电机栅极驱动器通过VDS监测器检测过流保护(OCP)条件,防止电机系统损坏。VDS监测器连接在FET的漏极和源极,可根据电压设置保护阈值。驱动器能识别三种短路故障:对地短路、对电源短路以及相间短路,并通过SPI接口快速定位故障位置。不同工作模式下,特定FET的VDS监测器会触发OCP事件,帮助设计者采取保护措施。该技术简化了故障诊断,有效预防系统损伤。(149字)
2025-10-18 10:21:06
1258
原创 VSCode - 设置MSYS2终端
VS Code终端配置指南:本文介绍了如何在VS Code中配置终端配置文件,包括Windows和Linux系统下的设置方法。通过修改settings.json文件,用户可以自定义终端路径、参数、图标和颜色等属性。文中详细展示了MSYS2终端的配置示例,并说明如何设置默认终端。此外,还介绍了终端右键菜单的功能,如分割终端、更改颜色/图标、调整宽度等操作。这些配置可帮助开发者根据需求定制个性化终端环境,提升开发效率。
2025-10-18 10:17:21
1135
原创 工程师 - 项目管理知识体系的九个知识领域
项目管理涵盖九大知识领域:范围管理(启动、计划、定义、确认和变更控制);时间管理(活动定义、排序、估算、时间表制定和控制);成本管理(资源计划、估算、预算和控制);质量管理(计划、保证和控制);人力资源管理(组织计划、人员获得和团队建设);沟通管理(计划、信息发布、绩效报告和管理结束);风险管理(计划、识别、分析、响应和监控);采购管理(计划、邀请、选择、合同管理和结束);集成管理(项目计划制定、执行和变更控制)。这些领域协同确保项目在范围、时间、成本和质量等方面达到目标。
2025-10-18 10:13:24
501
原创 Git - 比较两个分支
To find common commits between two Git branches, use git merge-base to identify their most recent common ancestor. For the single latest shared commit, run git merge-base branch1 branch2 to get its hash. To view all shared commits, store the merge base in
2025-10-18 10:10:57
427
原创 VSCode - 空格和Tab
VSCode缩进设置指南 本文详细介绍了如何在VSCode中配置空格和Tab键的缩进行为。核心设置包括:editor.tabSize(定义Tab显示宽度)、editor.insertSpaces(控制是否用空格替代Tab)和editor.renderWhitespace(控制空白字符显示)。文章提供了全局设置、语言特定设置和工作区设置的具体步骤,并给出了推荐配置示例。同时介绍了查看缩进级别、快速调整缩进和解决混合缩进问题的实用技巧,最后解答了几个常见问题。建议团队协作时通过工作区设置或格式化工具统一缩进规则
2025-10-18 10:09:54
888
原创 GNU/Linux - GCC编译的静态库
GCC编译的静态库文件(.a)本质上是ar格式的归档文件,其文件头以"!<arch>\n"作为魔数标识。文件开头包含时间戳(如1760596994对应2025年10月16日),表示库文件的创建时间。即使内容相同的.o文件,因打包时间不同会导致最终.a文件的二进制差异。这种时间戳机制使得即使代码完全一致,在不同时间编译生成的库文件也会存在差异。
2025-10-18 10:08:53
220
原创 工程师 - Raspberry Pi Pico程序:读取SPI数据后从串口输出
本文介绍了使用Raspberry Pi Pico板通过SPI接口接收数据的多种实现方案。初始版本采用16位数据格式读取并输出十进制数值,但存在节奏控制问题。随后改为8位格式直接输出字符,但出现数据丢失和乱码。尝试在中断中直接发送数据会引发不稳定问题。最终采用环形缓冲区方案,在中断中读取数据并存入缓冲区,在主循环中统一发送,提高了稳定性。文中还提到接地线对信号稳定的重要性,未连接时可能出现乱码问题。
2025-10-07 08:21:55
1010
原创 工程师 - 配置Raspberry Pi Pico W 开发板
摘要:Raspberry Pi Pico W是树莓派推出的低成本RP2040开发板,在Pico基础上增加了2.4GHz无线功能。采用双核Cortex-M0+处理器(133MHz),配备264KB SRAM和2MB Flash,支持MicroPython和Arduino编程。产品具有丰富的I/O接口(26个GPIO、SPI/I2C/UART等)和8个可编程PIO状态机。文档详细介绍了MicroPython和Arduino两种开发环境的搭建步骤,包括固件下载、IDE配置和示例程序上传方法,特别针对国内用户提供了
2025-10-06 22:11:44
689
原创 工程师 - What Is A Closed Loop Control System?
这篇文章介绍了闭环控制系统的基本原理和工作流程。闭环系统与开环系统的区别在于其输入会受输出影响,通过反馈机制实现自动调节。文章以储罐温度控制为例,说明了设定点(40℃)、传感器(热电偶)、误差计算、执行器(调节冷却液流速)等关键组件如何协同工作,使实际温度趋近设定值。文中还解释了干扰因素的存在以及简化的闭环系统模型。最后,作者邀请观众互动并支持频道。该视频适合控制系统初学者理解闭环控制的基本概念和应用。
2025-09-16 08:32:39
1216
原创 Books - Domain-Driven Refactoring - 6
本章介绍了重构的核心原则与实践方法,重点讲解了如何通过设计模式创建更清晰、可维护的代码架构。文章系统阐述了CQRS+ES架构模式(命令查询职责分离+事件溯源)的工作原理,并强调通过小步迭代而非一次性重构的重要性。关键部分详细解析了SOLID原则中的SRP(单一职责)、OCP(开闭原则)和DIP(依赖倒置)原则,结合销售订单系统的具体案例,展示了如何运用策略模式实现折扣计算逻辑的解耦。作者指出良好的代码组织(如分层编号)能显著提升团队协作效率,而完善的测试覆盖则能有效降低重构风险。最后章节预告了下一阶段工作:
2025-09-15 08:56:12
1244
原创 工程师 - Facade and mediator patterns
门面模式和中介者模式是两种常用的设计模式,分别属于结构型和行为型模式。门面模式通过统一接口简化子系统调用,降低客户端与子系统的耦合,适用于复杂系统交互的场景。中介者模式则通过协调对象间的交互,将多对多关系转化为中介者统一管理,适合对象间通信复杂的场景。两者的主要区别在于:门面模式关注系统与客户端的交互简化,而中介者模式侧重于系统内部对象间的解耦与协调。
2025-09-15 08:54:48
981
原创 工程师 - Fitness function
适应度函数是进化算法中的核心评估机制,通过量化个体优劣指导优化过程。其设计需与优化目标一致(如路径长度倒数为适应度值),具备可计算性和区分度。在遗传算法中,适应度函数贯穿种群初始化、选择、交叉变异等步骤。设计时需注意目标一致性、避免欺骗性、归一化处理等问题。良好的适应度函数能有效引导算法逼近全局最优解,其合理性直接影响算法效率和解的质量。
2025-09-15 08:54:08
608
原创 工程师 - 门面模式 vs 包装器模式
摘要:门面模式(Facade)和包装器模式(Wrapper/Adapter)是两种结构型设计模式,核心目标不同。门面模式通过统一接口简化子系统交互,降低客户端复杂度(如智能家居的一键操作);包装器模式则解决接口不兼容问题,适配新旧接口(如旧支付系统适配新接口)。关键区别在于:门面关注流程简化,包装器关注接口适配。实际项目中可结合使用,门面可能调用包装器以兼容子系统旧接口。
2025-09-15 08:53:31
1049
原创 Git - Difftool
Git difftool 是 Git 提供的可视化差异对比工具,支持多种第三方工具如 meld、kdiff3 等。通过 git difftool 命令可调用配置的对比工具,常用选项包括:-d 执行目录差异对比,-y 跳过提示直接启动工具,-t 指定工具类型。配置可通过 diff.tool 和 difftool.<tool>.path 设置默认工具和路径。在 Linux 系统(如 Ubuntu)中,可通过 .deb 包或 .tar.gz 安装 Beyond Compare 等工具,安装后需注意符号
2025-09-11 09:37:17
580
原创 工程师 - Onion Architecture in Domain-Driven Design (DDD)
Onion Architecture (OA) is a layered software design pattern that complements Domain-Driven Design (DDD) by organizing applications into concentric circles with the domain model at the core. The architecture enforces dependency inversion, ensuring outer la
2025-09-10 09:15:47
569
原创 工程师 - Onion Architecture in Software Development
本文介绍了软件架构中的洋葱架构模式。洋葱架构通过将应用程序划分为核心层、应用层、基础设施层和表示层等同心层,实现关注点分离。其核心是依赖倒置原则,使内层独立于外层实现松耦合。文章通过Python代码示例展示了各层实现方式,分析了洋葱架构的模块化、可测试性等优势,但也指出其可能增加小型项目的复杂性。此外,还解答了洋葱架构的常见问题,说明其适合复杂应用但不一定适合所有项目。最后强调实施时需明确各层职责,合理使用依赖注入。
2025-09-10 08:32:27
662
原创 Books - Domain-Driven Refactoring - 5
本文摘要:第5章介绍了重构原则和模块化架构的重要性。文章通过分析一个包含销售和仓库服务的耦合代码示例,展示了紧耦合系统的问题。作者强调需要通过测试金字塔(单元测试、集成测试和E2E测试)来建立安全网,确保重构过程中不破坏现有功能。文中提供了具体的测试代码示例,包括使用Mock库进行单元测试和模拟HTTP调用的集成测试,为后续解耦服务和实现模块化架构奠定基础。
2025-09-03 08:34:46
975
原创 Books - Domain-Driven Refactoring - 4
《遗留系统重构实战指南》文章摘要 本书第二部分聚焦遗留系统重构,提供从原则到实践的完整解决方案。首先强调重构前的系统理解与分析,通过建立自动化测试和CI/CD管道构建安全网。核心重构方法包括:模块化架构拆分、领域驱动设计模式应用、CQRS和事件驱动架构实施。重点解决数据库重构、服务解耦等典型挑战,提出通过消费者驱动契约(CDC)管理模块间交互。重构过程中强调渐进式改进而非重写,遵循"简单系统演化"原则,避免过早引入复杂模式。书中还强调可观测性建设,通过日志、指标和追踪确保重构后的系统稳定
2025-09-03 08:33:50
1085
原创 Books - Domain-Driven Refactoring - 3
通过明确定义的模块,不同的团队可以同时处理系统的不同部分,而无需踩到彼此的脚趾,从而促进协作。这也提高了理解力,因为清晰的模块边界可以更轻松地理解系统的结构和行为,从而促进更有效的调试和问题解决。这是可能的,因为聚合构造过程,尤其是那些涉及依赖项或状态设置的过程,是从客户端中抽象出来的。在这一部分,我们将探讨领域驱动设计(DDD)中的战术层面,不同的模式根据子域的复杂性和战略重要性扮演着不同的角色。这是可能的,因为存储库可确保对整个应用程序中的数据访问作的一致处理,从而促进数据访问的单一事实来源。
2025-09-03 08:32:18
709
原创 Excel - 如何创建一个Named Range (Name manager)
摘要:在Excel中,可以通过"公式>根据所选内容创建"来快速创建名称范围(选择包含标题的单元格区域)。名称范围支持工作簿级作用域,可通过"名称管理器"进行管理维护。在公式中直接输入名称或使用"公式>在公式中使用"来引用名称范围。VBA中可用Range("名称")引用,如Range("teams").Value="Team"。此外,OFFSET函数可动态引用名称范围相邻列(=O
2025-08-31 14:39:22
781
原创 知识见闻 - 苹果无线键盘A1314说明书
苹果A1314蓝牙键盘使用指南:电池耗尽时指示灯会慢闪(需更换电池,注意负极朝外);匹配时快闪,成功连接后亮3秒熄灭。匹配失败3分钟后自动关机,需重新开机连接。在Mac系统可查看电量,建议不用时关闭电源或取出电池。短按开机/长按5秒关机,开机后灯亮5秒。已连接状态下按电源键会亮3秒。注意:非苹果系统下特殊功能键无效。
2025-08-22 09:04:33
991
原创 工程师 - VSCode安装
VSCode安装指南:官网提供桌面版和网页版两种选择,安装过程包含6个步骤:1)接受MIT开源许可协议;2)选择默认安装路径(C:\Programs\MicrosoftVSCode);3)创建开始菜单快捷方式;4)可选功能配置(如添加右键菜单选项、关联文件类型、添加PATH环境变量);5)确认安装信息;6)完成安装。注意安装后需重启使PATH变更生效,详细许可信息可参考GitHub仓库和官方FAQ。
2025-08-07 07:57:50
436
原创 VSCode - 设置Python venv
摘要:本文介绍在VSCode中创建Python虚拟环境的完整步骤。首先安装Python扩展和Python解释器,然后通过命令面板或命令行创建venv(如python -m venv .venv)。激活环境后,可在VSCode中选择解释器路径或设置默认解释器。文章还说明了自动激活环境的设置选项,并对比了venv与Conda的适用场景。注意事项包括Debian系统需安装python3-venv包,以及conda更适合数据科学项目等要点。
2025-08-07 07:57:06
1249
原创 编程参考 - 常量指针和指针常量
C语言中常量指针和指针常量是两种重要的指针类型。常量指针(const int* ptr)保护指向的数据不被修改,但允许改变指针指向;而指针常量(int* const ptr)则固定指针地址,但允许修改指向的数据。前者常用于保护数据不被意外修改,后者适用于硬件寄存器操作等需要固定地址的场景。两者还可结合为const int* const ptr,同时保护指针和指向的数据。理解其语法差异(const位于*左侧或右侧)及适用场景,对嵌入式开发等底层编程尤为重要。
2025-08-06 09:07:33
1557
原创 编程参考 - 无符号整数减法时溢出
该程序演示了无符号整数的溢出特性。当UINT_MAX(0xFFFFFFFF)加1时,结果会回绕为0。通过计算0x100000000与0xFFFFFFFF的差值(1),说明即使发生溢出,相邻两个值的减法运算仍能获得正确的时间差。这在嵌入式系统中常用于处理计数器溢出的情况,如系统tick计时,通过比较当前和上次tick值的差值来判断时间间隔是否有效。
2025-08-06 09:06:49
224
原创 VSCode - IntelliSense
本文介绍了如何在VSCode中配置C/C++扩展以实现C++智能感知功能。主要内容包括:1)智能感知的核心功能如代码补全、参数提示等;2)自动检测GCC、Clang等编译器的方法;3)通过UI界面或直接编辑c_cpp_properties.json文件进行配置;4)针对Linux系统的GCC配置示例;5)高级配置选项如跨平台编译支持。文章还说明了如何验证智能感知是否正常工作,并提供了状态栏标识的解读方法。
2025-08-05 08:47:20
1137
原创 知识见闻 - YubiKey
YubiKey 是由瑞典安全公司 Yubico 开发的一款硬件安全密钥(Hardware Security Key),旨在通过物理设备为用户提供高强度的身份验证(Authentication),解决传统密码认证的脆弱性问题(如泄露、钓鱼、中间人攻击)。
2025-08-04 08:15:02
1186
原创 工程师 - 延迟单元
延迟单元是数字信号处理中的核心元件,主要用于存储信号的历史值。在IIR滤波器中,前向路径的延迟单元保存输入信号历史值(x(n-1),x(n-2)...),用于当前输出计算;反馈路径的延迟单元保存输出信号历史值(y(n-1),y(n-2)...),实现递归反馈。硬件实现采用寄存器,软件通过变量保存历史数据。延迟单元使IIR滤波器能够利用过去时刻的输入/输出信息,形成无限脉冲响应特性,是数字滤波器实现时序处理的基础元件。
2025-07-25 08:48:24
880
原创 知识见闻 - RH%是什么意思?相对湿度
相对湿度(RH)是实际水汽压与饱和水汽压的百分比(RH=P实际/P饱和×100%),反映空气饱和程度,0%表示无水汽,100%为饱和状态。RH随温度变化,温度升高时RH降低。其应用广泛:健康领域,30%-60%RH最舒适;工业中需精准控制RH保证产品质量;环境方面,RH影响PM2.5和气候。RH与绝对湿度(单位体积水汽质量)共同描述湿度特性。通过调控RH可优化生活环境、提升工业效能并缓解气候影响。
2025-07-25 08:18:58
2005
原创 工程师 - 卷积的数学定义
卷积是数学、信号处理和深度学习中关键的运算方法,通过"翻转-平移-叠加"操作描述函数间的相互作用。连续卷积对两个函数进行积分运算,离散卷积则简化为序列间的求和运算。核心步骤包括:翻转其中一个函数,进行平移后与另一函数逐点相乘并叠加结果。这一运算在信号处理、图像分析和神经网络等领域有广泛应用,能有效提取特征并建立系统响应模型。
2025-07-22 06:07:34
416
原创 工程师 - 模拟滤波器和数字滤波器
摘要:数字滤波器通过离散信号处理实现精确频谱控制,采用软件算法或硬件(如DSP芯片)实现,具有高稳定性和可编程性。其核心是对离散信号进行数学变换,关键参数包括截止频率、通带波纹和阻带衰减。相比模拟滤波器,数字滤波器灵活度高但依赖计算资源。模拟滤波器基于电路元件(RLC或运放)实现连续信号处理,分为无源和有源两类,具有实时性优势但易受温度漂移影响。二者在信号处理领域互补应用,数字滤波器适合后期处理,模拟滤波器更适用于高频实时系统。
2025-07-22 05:47:20
993
原创 工程师 - 无源RC滤波器
本文介绍了无源RC低通滤波器的基本原理和应用。通过电阻和电容组成的简单电路,RC滤波器能够通过低频信号并抑制高频噪声。文章解释了时域与频域的区别,滤波器类型(低通、高通、带通等)以及截止频率的概念(定义为信号幅度下降3dB的频率点)。通过分压器原理分析了RC滤波器的频率响应特性,并给出了设计实例(160Ω电阻与10nF电容组合实现100kHz截止频率)。文章还比较了一阶和二阶滤波器的性能差异,指出二阶滤波器能提供更陡峭的40dB/decade滚降,但存在过渡区域响应"下垂"的局限。最后强
2025-07-14 08:44:43
1282
原创 工程师 - 计量单位:分贝dB
两个具有 1 分贝差异的信号,他们功率量的比值为(大约1.26),场量的比值为(大约 1.12)。在电子学中,放大器的增益、信号的衰减和信噪比常用分贝表示。分贝(decibel)是表示两个相同单位的物理量数量比例的单位或一个物理量相对于参考值的比例的计量单位,,主要用于度量声音强度或电信号的功率级别,常用dB 表示。在光路中,如果已知功率(使用 dBm 单位,参考值为1mW)的光注入光纤,每个电子元件(例如连接器、接头器、光纤长度)损失的分贝值也是已知的,整个光路损失可以通过加、减分贝值而快速求得。
2025-07-08 08:52:19
719
原创 Books - Domain-Driven Refactoring - 2
这是因为我们可能谈论的是同样的事情但使用不同的名称,或者我们可能关注的是完全不同的事情,这可能属于不同的限界上下文。同样地,如果贵公司的目标是酿造最好的啤酒,拥有一个良好的仓库系统对于在销售前储存啤酒很重要,但比拥有一个完美的生产部门要次要。在处理旧项目的重构时,识别这些边界非常重要,因为在发现它们之后,你首先要做的是消除属于不同限界上下文的对象之间的耦合。因此,正如你已经发现的,用一个模型来描述整个业务是不可能的,当你开始重构时,这很可能是你面临的情况。你必须在正确的位置使用正确的工具。
2025-07-02 08:34:43
1169
原创 Books - Domain-Driven Refactoring - 1
《领域驱动设计(DDD)实战指南:从理论到重构》摘要 本书系统介绍了领域驱动设计(DDD)的核心概念与实践方法,重点阐述了如何通过DDD应对软件系统复杂性。主要内容包括: DDD核心原则: 通用语言(Ubiquitous Language)建立统一业务术语 限界上下文(Bounded Context)划分领域边界 战略模式与战术模式的应用场景 复杂性管理方法论: 区分本质复杂性(业务固有)与偶然复杂性(技术引入) 运用Cynefin框架分析不同复杂度场景 残余性理论指导系统演进决策 领域探索技术: 事件风暴
2025-07-02 08:33:42
1064
原创 Motor - A Short Illustrated Primer On Brushed DC Motors - Precision Micro drives
摘要:本文介绍了有刷直流电机的基本构造和工作原理。电机主要由外壳、轴承、定子磁铁、电机轴、电枢/转子、换向器和电刷等部件组成。文章通过图解展示了一个Ø12mm振动电机的内部结构,并详细说明了电枢、定子和换向器的几何布局。重点分析了三极电机的优势,能避免两极电机存在的启动问题和短路风险。最后对比了铁芯和无芯两种小型有刷电机的结构特点,指出无芯设计在10mm以下电机中的优势,包括更低电感、更好散热和更紧凑结构。(150字)
2025-06-30 09:03:24
1076
原创 Shell - Here Document
摘要:Bash中的Here Document(Heredoc)是一种多行输入重定向方式,用于向命令传递多行文本或代码。基本语法为[COMMAND] << 'DELIMITER',支持变量和命令扩展(使用未加引号分隔符),或禁止扩展(加引号分隔符)。高级用法包括:输出重定向至文件(>file)、管道传输(| command)、SSH远程命令执行以及函数参数传递。Heredoc特别适用于脚本自动化、远程操作和多行文本处理场景,如cat、tee和sftp等命令,通过EOF等分隔符保持代码可读性。
2025-06-27 08:25:47
807
原创 Motor - 什么是3绕组结构微型直流电机
摘要:3绕组结构微型直流电机是一种永磁式直流电机,采用3个线圈绕组和整流子结构。其工作原理是通过电刷与整流子的交替接触,使转子绕组在不同旋转角度获得供电。当磁极相互作用产生排斥和吸引力时,转子持续旋转。该结构通过整流子与电刷的配合,实现了直流电源对3个绕组的有序供电,从而形成电机的连续运转。这种微型电机结构紧凑,适用于小型设备应用。(149字)
2025-06-27 08:00:47
450
电子电气工程师使用的单位和符号
2024-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅