自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(574)
  • 收藏
  • 关注

原创 Ubuntu 22.04 搭建全志 T113-i 编译环境:完整步骤与踩坑记录

硬件:创龙 TLT113‑i 评估板SDK版本:T113‑i_v1.0,Buildroot‑2019.02 + Linux5.4 + gcc‑linaro‑5.3.1宿主环境:Ubuntu 22.04。系统新版本glibc、gcc、Python版本过高,和老SDK存在大量兼容性问题。

2026-09-08 14:18:31 130

原创 STM32 + DAC 正弦波生成方案详解:从入门到高频优化

是一种用数字方式精确控制输出频率的技术。核心思想是用一个相位累加器按固定步长递增,每次溢出时完成一个周期。查表法用空间换时间,是嵌入式高频正弦波的首选方案。256 点查表是工程最佳平衡点。用 32 位累加器实现亚像素级频率精度,比简单的sin(2πft)循环精确得多。死循环 + 延时 = 阻塞所有任务。必须用定时器中断或DMA来驱动输出。通用场景 →方案①:定时器中断 + DDS 查表固定频率 →方案②:定时器 + DMA + 预计算简单低频 →。

2026-08-24 15:47:31 255

原创 积分、微分与 PID —— 从直觉到公式

目标值 ──→(+)──→ e(t) ──┬──→ ×Kp ──────────────→(+)──→ 输出│ │└──────── 实际值 ←──── 被控对象 ←───────┘(反馈回路)项数学直觉管什么风险PKp × e偏多少纠多少响应速度稳态误差IKi × ∫e dt偏了多久补多少稳态精度过冲/振荡/饱和DKd × de/dt快到了就刹车阻尼/平稳噪声放大🟢一句话记住 PID:P 看现在(偏了多少),I 看过去(偏了多久),D 看未来(正在以多快速度偏)。

2026-08-21 15:55:39 159

原创 AI辅助Linux驱动开发指南

理解什么是驱动,为什么需要驱动。:实现第一个可运行的驱动。:理解驱动的基本结构。

2026-08-21 11:37:11 180

原创 Linux驱动开发完整教程!!!!!!!!!!!框架-重要

驱动是内核空间和用户空间用户程序 → 驱动 → 硬件设备让内核能够识别和控制硬件提供统一的接口给用户程序✅这样做先理解基本概念用AI获取模板和解释分步提问,逐步完善每写一段代码就理解原理测试、调试、修改、再测试记录遇到的问题和解决方法❌不要这样做直接复制粘贴不问原理不测试就认为完成了遇到错误就全部重来不查看内核日志不理解API就乱用。

2026-08-21 11:24:42 193

原创 【Linux驱动开发完全指南】从零开始搞定IMX6ULL驱动开发——小白入门 + 完整流程 + 面试攻略

多动手、多看内核源码。这篇文章从环境搭建到ADC/PWM子系统,基本覆盖了嵌入式Linux驱动入门所需的核心知识。但真正的理解必须来自实际敲代码、碰到报错、翻内核源码解决问题的过程。hello驱动→ LED驱动(GPIO子系统)→ 设备树重构LED驱动→ GPIO中断(按键)→ 中断消抖(定时器)→ 阻塞/非阻塞/poll/异步通知→ input子系统→ PWM/ADC子系统每一步都要真正跑通,不只是复制代码。🚀参考资料《Linux设备驱动程序》(LDD3)

2026-08-21 11:12:19 199

原创 音频总线协议与接口全解析:小白入门指南

协议(Protocol)是一种通信规则,规定了数据是如何在两个设备之间传输的。你可以把它理解为两个人对话时使用的“语言”和“语法规则”。协议关注的是数据格式、时序要求、信号含义等逻辑层面的东西。举例来说:I2S协议规定了音频数据应该如何打包、时钟和帧同步信号如何配合、每个bit应该在哪个时刻传输。接口(Interface)是硬件层面的连接通道,是实现协议所需的物理电路。你可以把它理解为“电话机”——虽然两人用普通话(协议)交流,但需要通过电话机(接口)来传输声音。

2026-08-21 10:28:50 172

原创 EDMA3详解:OMAP L138的高速数据传输引擎

不要怕复杂:EDMA3看起来复杂,但用起来很简单从简单开始:先实现单次传输,再尝试高级功能理解原理:明白"为什么"比记住"怎么做"更重要动手实践:写代码、调试、优化,实践出真知立即行动:不要只看不练!下载代码示例在开发板上运行修改参数,观察效果设计自己的小项目记住:每个嵌入式高手都是从"小白"开始的!💪。

2026-08-21 10:20:29 164

原创 嵌入式IAP/OTA升级方案全景综述:从串口到5G,从裸写到工业级安全

IAP/OTA不是一个单一技术,而是一个技术栈传输层选什么通道(串口/WiFi/4G/…)存储层怎么放固件(单分区/A/B/外部Flash)安全层怎么防攻击(签名/加密/安全启动)可靠性层怎么防变砖(校验/回滚/断点续传)入门用串口Ymodem,半天就能跑通;工业级方案需要A/B+差分+签名+回滚,可能需要几周甚至几个月。不要一上来就做最复杂的,根据产品阶段和可靠性需求,逐步迭代。先跑通基础升级,再加安全,最后加A/B和差分。你现在用的是哪种升级方案?遇到了什么坑?欢迎评论区交流。

2026-08-13 13:35:02 225

原创 STM32 底层原理详解:从硅片到代码的完整旅程

STM32 的本质是 ARM Cortex-M 内核 + ST 设计的外设矩阵 封装在一块硅片上。关键总线说明:STM32 的时钟系统极其复杂,这是理解底层的关键。时钟源层级:为什么需要这么复杂的时钟树?当你按下复位键,发生了一系列硬件级别的操作:内存映射关键点:二、软件层面:代码是怎么"跑"起来的2.1 编译链接的幕后你写的 C 代码要变成芯片能懂的机器码,经历以下过程:链接脚本(.ld)的关键作用:链接器根据脚本决定:Cortex-M 内核内置了 NVIC(Nested Vectored

2026-08-10 11:23:59 230

原创 McASP 音频接口详解:从小白到能配寄存器

/ 释放帧同步复位,启动 McASP// 帧同步发生器启动// 再确认串行器释放// 使能 TX/RX// 清状态// McASP 开始跑了!① GBLCTL = 0 (全局复位)② 设置 PLL 和 AUXCLK (时钟源)③ 配 SRCTLn (引脚功能)④ 配 TXFMT / RXFMT (数据格式)⑤ 配 ACLKXCTL / AHCLKXCTL / AFSXCTL (时钟和帧同步)⑥ 按顺序释放 GBLCTL 各子模块复位 (使能硬件)

2026-08-10 10:34:54 241

原创 电源电路设计从入门到精通:LDO 与 DC-DC 完全指南

稳定:负载突变后,输出电压很快回到设定值不稳定(振荡):输出电压以某个频率持续正弦波动,幅值几十到几百 mV原因:反馈环路的相位裕度不足→ 输出变化 → 反馈检测 → 芯片调整 → 传递到输出→ 如果每一步的延迟累积使得"负反馈"在某个频率变成了"正反馈"→ 振荡!1. 输入是什么?范围多大?→ 定拓扑(Buck / Boost / Buck-Boost / LDO)2. 输出需要多少电压、多少电流?→ 定功率等级,判断 LDO 能否扛住3. 噪声要求多高?

2026-08-06 10:50:43 225

原创 GD32单片机开发实战:从STM32/CubeMX 迁移到快速上手

从 STM32/CubeMX 切换到 GD32,最大的变化不是技术栈,而是心态不要期待 100% 对等的图形化工具标准库开发反而更贴近底层,更可控GD32 Embedded Builder 在快速进步,可作为辅助核心口诀下库 → 建工程 → 配路径 → 写 GPIO → 加延时 → 扩外设 → 看手册按照这个流程,3 天内你就能从 STM32 开发者变成 GD32 开发者。

2026-08-03 16:09:10 236

原创 UIO 驱动 vs 传统内核驱动

传统内核驱动UIO 驱动内核代码行数~200 行~40 行用户态代码行数~20 行(应用层)~40 行(就是驱动本身)总代码量~220 行~80 行需要理解的概念ioremapiowrite32、字符设备注册、主次设备号openmmap、指针操作硬件寄存器操作方式(和普通 C 变量一样)每次 I/O 的系统调用每次read()write()都走只在mmap时走一次调试printkdmesgprintfgdb传统内核驱动 = 住在内核里,性能高但开发难、崩了死系统。

2026-07-29 14:46:21 244

原创 嵌入式调试技巧:影子寄存器——不靠 printf,也能看清芯片“脑子里“被写了什么

/ 覆盖写入,只保留最新值适合:排查"最终配置是什么"、“哪个值被覆盖了”维度printf影子寄存器性能开销大(串口 IO)无(RAM 写入)对时序的影响严重无信息量单次全量历史回溯能力无随时查看开关成本改代码、重编译一行注释/宏适用场景慢速业务流程硬件寄存器配置、时序敏感代码核心思想:用 RAM 空间换调试可见性。1KB 的 RAM 在 STM32 上可能不算小,但比起"花两天时间排查一个时序 bug",这 1KB 的代价太值得了。

2026-07-27 17:49:57 20

原创 CAT24C16 EEPROM 驱动开发指南:从数据手册到工程代码

CAT24C16 的 11 位地址 = I2C 设备地址的低 3 位(A10~A8)+ Word Address 的 8 位(A7~A0)I2C 总线上实际发送:└── I2C 设备地址 ──┘ └──── Word Address ────┘│ CAT24C16 EEPROM 驱动开发要点 ││ ││ 1. 2KB = 2048 字节 = 128 页 × 16 字节 ││ ││ 2. I2C 地址 = 0xA0 | ((addr >> 7) & 0x0E) │。

2026-07-23 17:18:52 339

原创 STM32 IAP + Modbus 踩坑日记:四天四夜,腱鞘囊肿都犯了

STM32 + FreeRTOS 项目,强烈建议勾选 Micro LIB内存分配都走 FreeRTOS,不需要 C 库堆printf只用来打调试日志,Micro LIB 足够用省代码体积,少出问题printf即使是调试日志,也可能在运行时被调用即使只有出错重试才会打,那也是会被调用的第一次调用就触发 stdio 初始化,就可能出问题不用就注释掉,用了就要考虑后果启动文件堆大小检查一下默认 512 字节真的不够标准库用如果非要用标准库,至少改成0x2000(8KB)

2026-07-06 15:34:11 36

原创 从数据手册到代码:MCU 外设驱动开发指南

数据手册 C 代码时序图(Figure) ──翻译──→ read() / write() ← 第2层寄存器表(Table) ──翻译──→ .h 宏定义 ← 第0层上电时序 ──翻译──→ init() ← 第5层传输函数(公式) ──翻译──→ set_value() ← 第4层量程参数 ──翻译──→ set_range() / priv ← 第4/1层换一颗芯片,变的只是第0层和第2层,第3~5层的结构完全不变。

2026-06-24 16:52:23 33

原创 FPGA比特流(Bitstream)深度解析:从门电路到硬件配置的魔法

FPGA比特流(Bitstream)是一个二进制数据文件,包含了配置FPGA(现场可编程门阵列)内部所有可编程元素的完整信息。简单来说,它就是FPGA的"DNA"——决定了FPGA将实现什么具体的数字电路功能。FPGA比特流是连接软件设计和硬件实现的桥梁,它不仅仅是简单的二进制文件,而是包含了FPGA所有可编程资源的完整配置信息。设计优化:了解比特流结构有助于优化资源利用率调试加速:直接分析比特流可以快速定位硬件问题安全加固:正确使用加密和认证保护知识产权动态重构:利用部分重配置实现灵活的系统架构。

2026-06-15 18:00:46 322

原创 (K12)static 局部变量什么时候会出问题?

static 安全性判断该函数是否可能被多个执行上下文同时调用?│┌──── 否 ─┤──── 是 ──┐│ │ │▼ │ ▼✅ 安全 │ ❌ 不安全可用 static │ 会数据竞争│ │ ││ │ ▼│ │ 必须选择以下方案之一:│ │ │ 方案A: 改回局部变量 ││ │ │ 方案B: 加互斥锁 ││ │ │ 方案C: 每个任务各持一份 ││ │▼ ▼"同时调用"的具体含义:│ 1. 两个不同任务调用同一函数 ││ 2. 任务 + 中断调用同一函数 │。

2026-06-12 10:49:47 25

原创 (K12)嵌入式 FreeRTOS 堆栈配置与 static 优化实战指南

核心原则一句话栈配置先估算调用链,再分配栈,最后用 WaterMark 验证static 优化> 64B 且在深层调用链且单任务调用的局部变量 → 改 static + memset溢出检测方法2 全程开启,Hook 函数做安全停机,不要关Heap 配置按需计算 × 1.5~2.0 安全系数记住:嵌入式系统中,栈溢出不会报编译错误,但它会在你最不希望的时候,以最难调试的方式杀死你的系统。预防远比调试重要。

2026-06-12 10:34:35 22

原创 [特殊字符] 嵌入式开发踩坑记:一个全局变量引发的血案

与发送次数相关:问题与配置命令的发送次数强相关,与运行时间弱相关无硬件故障迹象:所有硬件信号测量正常软件层面卡死:系统在函数调用中"消失",无崩溃、无重启难以稳定复现:增加了调试的难度和成本这个问题的诡异之处在于,它既不像典型的硬件故障(信号异常),也不像常见的软件错误(内存溢出、死锁有明显特征)。下一节我们将深入分析这个问题的根本原因。简单说,就是两个或多个执行路径同时访问同一份数据,导致数据被意外覆盖。问题点修复方案效果全局变量冲突使用局部静态变量txPack隔离发送数据状态被破坏。

2026-06-08 15:51:58 31

原创 【嵌入式开发】FreeRTOS 性能优化与调试技巧

优化方向技巧任务调度合理优先级、减少任务数、精确周期内存管理静态分配、内存池、合理堆大小中断处理保持简短、合理优先级代码优化高效数据结构、减少浮点运算调试工具SystemView、GDB、栈检测核心原则测量先行:优化前先测量性能指标定位瓶颈:找到性能瓶颈再优化循序渐进:小步优化,逐步验证希望这些技巧能帮助你打造更高效、更稳定的 FreeRTOS 系统!系列文章回顾FreeRTOS 实战入门:从项目代码学起FreeRTOS 任务调度原理与优先级设置实战FreeRTOS 内存管理策略与实战。

2026-05-11 15:01:29 749

原创 【嵌入式开发】FreeRTOS 实战项目架构设计

架构要素设计要点分层架构应用层 → 服务层 → 驱动层任务划分单一职责,合理优先级通信机制队列传递数据,事件组同步状态错误处理分类处理,看门狗保护资源管理静态分配为主,动态分配为辅可扩展性命令注册机制,状态机模式架构设计 checklist✅ 是否遵循单一职责原则?✅ 模块间耦合是否最小化?✅ 任务优先级是否合理?✅ 通信机制是否选择恰当?✅ 是否有完善的错误处理?✅ 是否有监控和调试手段?一个好的架构能让你的项目事半功倍。希望这篇文章能帮助你设计出优秀的 FreeRTOS 项目!

2026-05-11 14:58:23 485

原创 【嵌入式开发】FreeRTOS 任务间通信方式全解析

通信方式核心用途关键字队列固定大小数据传递事件组多事件同步信号量资源计数互斥锁临界区保护任务通知轻量级通知消息缓冲区变长消息流缓冲区流式数据选择建议简单通知→ 任务通知数据传递→ 队列多条件等待→ 事件组资源保护→ 互斥锁资源池→ 计数信号量变长数据→ 消息缓冲区流式数据→ 流缓冲区掌握这些通信方式,你就能灵活地设计任务间的协作机制了!下一篇预告:FreeRTOS 实战项目架构设计📝作者注:任务间通信方式的选择需要结合实际需求,没有绝对的优劣之分。

2026-05-11 14:49:22 535

原创 【嵌入式开发】FreeRTOS 中断管理与临界区保护实战

临界区是一段代码,在执行期间不能被中断打断,否则会导致数据不一致。// 临界区示例:共享资源访问// 临界区开始// 读取temp++;// 修改// 写回// 临界区结束如果在执行这段代码时被中断打断,可能会导致计数器值错误。概念要点中断安全函数使用xxxFromISR版本临界区保护或互斥锁中断优先级低于才能调用 APIISR 原则保持简短,快速退出核心原则中断中只能调用中断安全的 API临界区代码要尽可能短使用队列实现 ISR 与任务的通信合理设置中断优先级。

2026-05-11 14:45:54 283

原创 【嵌入式开发】FreeRTOS 内存管理策略与实战

内存分配方式优点缺点适用场景动态分配灵活,按需分配内存碎片,不确定时间复杂系统,需要动态创建静态分配安全,确定时间不灵活,编译时确定资源受限,实时性要求高最佳实践建议优先静态分配:任务、队列、信号量等优先使用静态方式合理估算内存:根据任务复杂度设置栈大小启用检测钩子:栈溢出、内存分配失败检测定期检查内存:使用监控掌握内存管理是嵌入式开发的必修课。合理的内存管理策略能让你的系统更加稳定可靠。下一篇预告:FreeRTOS 中断管理与临界区保护实战📝作者注。

2026-05-11 14:39:09 431

原创 【嵌入式开发】FreeRTOS 任务调度原理与优先级设置实战

概念要点调度策略抢占式,高优先级优先优先级数值越大优先级越高任务函数必须是,包含初始化和主循环上下文切换保存/恢复寄存器,实现任务切换关键函数vTaskDelay优先级设置原则紧急任务高优先级:如协议解析、中断处理周期性任务中优先级:如数据采集、通信后台任务低优先级:如状态监控、日志记录掌握任务调度原理和优先级设置,是成为优秀嵌入式开发者的必经之路。希望这篇文章能帮助你!📝 :任务优先级设置没有绝对标准,需要根据项目实际需求调整。建议从简单的优先级划分开始,逐步优化。

2026-05-11 14:35:33 330

原创 【嵌入式开发】FreeRTOS实战入门:从项目代码学起

/ 用位表示不同事件1// 用位表示不同事件 # define PROTOCOL_EVENT_ERR(1 << 0) // 第0位:错误事件 # define PROTOCOL_EVENT_OK(1 << 1) // 第1位:成功事件<<// 用位表示不同事件 # define PROTOCOL_EVENT_ERR(1 << 0) // 第0位:错误事件 # define PROTOCOL_EVENT_OK(1 << 1) // 第1位:成功事件0// 第0位:错误事件1。

2026-05-11 14:26:45 602

原创 奈奎斯特采样定理实战复盘:1kHz采样率采1kHz正弦波,为啥采出来全是0?

作为一名振动测试、数据采集行业的工程师,本以为奈奎斯特采样定理是本科数字信号处理入门基础,早已刻在脑子里。直到前几天现场调试数据采集仪,默认设置兰了采样率1kHz,去采集标准1kHz正弦波信号,结果上位机波形全程是一条零电平直线,完全看不到波形变化。我第一反应是传感器故障、接线接触不良,折腾半天找不到原因。奈奎斯特采样定理都忘了?瞬间尴尬到无言以对。理论背了无数遍,一到工程实操直接踩坑。为了彻底吃透原理、避免以后再犯低级错误,我把。

2026-05-08 09:27:22 123

原创 字节序问题分析:不同数据构建方式导致的结果差异

不同的数据构建方式会导致不同的结果。理解字节序的原理,选择合适的数据构建方法,对于确保通信协议的正确性至关重要。通过这个案例,我们可以看到,即使是看似简单的数据构建操作,也需要考虑字节序等底层细节,这正是嵌入式开发的魅力所在。正确的选择取决于目标设备或协议所要求的字节序格式。对于ADS125H02芯片,根据注释和测试代码,应该使用。存储数据,因为数组元素在内存中是连续存储的。构建数据,每个字节的位置都是固定的。

2026-04-24 11:37:02 275

原创 嵌入式Web服务器CGI机制深度解析:从浏览器请求到Linux板卡执行全流程

││──────────────────▶ │嵌入式Linux板卡││用户浏览器││┌────────────────────────────┐ │││◀────────────────── ││嵌入式Web服务器 (HTTPD)│ │└─────────────────┘HTTP响应││• 监听80端口│ │││• 解析HTTP请求│ │┌─────────────────┐││• 执行CGI程序│ ││客户端││┌──────────▼─────────────────┐ │。

2026-04-21 11:15:46 476

原创 我的创作纪念日

在有限的精力下,我选择轻量化、高质量的创作节奏:白天专注本职开发工作,利用夜晚、周末的碎片时间,梳理当天的实战案例、调试踩坑点与学习笔记。对我而言,写博客不仅是内容分享,更是自我复盘、梳理知识体系的绝佳方式,让碎片化的开发经验形成系统化沉淀。,精进 STM32 裸机开发、嵌入式Linux驱动开发、工业实时通信、硬件底层优化等核心能力,持续打磨寄存器操作、内核并发、外设驱动等硬核技术,拓宽技术深度与广度。,整理文章的过程,让我对底层硬件、代码逻辑、协议原理的理解更加扎实,实现了技术与认知的双向提升。

2026-04-16 11:33:00 358

原创 指针使用详解:从基础到实践

指针是地址:存储的是内存地址,不是实际值解引用获取值:使用操作符获取指针指向的实际值取地址获取指针:使用操作符获取变量的地址类型匹配:确保指针类型与指向的数据类型一致空指针检查:使用指针前检查是否为NULL内存安全:避免野指针和越界访问指针是C语言的强大特性,正确使用可以提高代码效率和灵活性,特别是在嵌入式系统开发中。通过理解指针的基本概念和常见用法,你可以写出更高效、更可靠的代码。

2026-04-16 09:24:12 246

原创 STM32 开发Modbus必看基础:寄存器、功能码、踩坑点全梳理

Modbus单个寄存器16位,STM32定义缓存必须用uint16_t数组存储;32位变量(uint32_tfloat),需要强制转uint8_t*拆分字节,再组合两个16位寄存器解析;不要用32位变量直接接收Modbus 16位数据,会出现数据错位。Modbus寄存器固定16位,是通信协议标准,和STM32 32位硬件寄存器无关;四大寄存器+对应功能码,是Modbus通信的核心,绝对不能混用;手册地址从1开始,代码地址从0开始,-1偏移是必做步骤;

2026-04-15 16:13:45 522

原创 Keil5调试避坑:函数return值监控全攻略(附实际问题解决)

很多开发者会遇到「断点打不上」「return值显示」「R0寄存器值异常」等问题,本文结合实际调试场景,总结return值监控的正确方法、常见坑及解决方案,帮你高效定位问题。「现象」:断点触发后,查看R0寄存器,显示值为0x08009634这类以0x0800开头的地址,而非HAL_OK(0x00)、HAL_ERROR(0x01)等预期返回值。「根本原因」:断点触发时,变量尚未创建。跳出后,直接查看R0寄存器,值即为函数return值(此时函数已执行完毕,R0稳定存储return值)。

2026-04-13 15:47:56 78

原创 从Linux小白到驱动开发者:为什么我必须在驱动中使用private_data

基于我的经验,我总结出了使用总是在open函数中设置private_data在其他操作函数中通过private_data获取设备信息配合适当的锁机制保护共享数据为多设备实例设计合适的数据结构在release函数中清理资源从最初的困惑到现在的熟练运用,机制让我深刻理解了Linux内核设计的精妙之处。它不仅仅是技术实现,更是一种设计哲学的体现。希望我的经验能够帮助更多开发者理解并正确使用这个重要的机制。记住:好的驱动代码,从正确使用private_data开始!

2026-04-09 14:39:57 252

原创 深入理解CRC校验算法:从CRC-8-ATM到通用实现原理

CRC校验算法是数据通信和存储中不可或缺的错误检测机制。CRC-8-ATM算法原理:多项式x⁸+x²+x+1,初始值0xFFADS125H02 CRC-2实现:基于CRC-8-ATM,取高2位作为2位CRC多种实现方法:位操作法、查表法、切片查表法其他常见CRC算法:CRC-8、CRC-16、CRC-32及其应用场景性能优化技巧:查表法提升性能,硬件加速方案实际应用案例:SPI通信、Modbus、以太网等错误检测能力:CRC位数越多,检测能力越强计算复杂度:嵌入式系统需要权衡性能与资源。

2026-04-08 10:55:05 545

原创 数电模电核心概念梳理:从基础到共模/差模

差模信号 (Differential Mode)定义:两个输入端信号大小相等、相位相反的分量物理意义:有用的信号,希望被放大数学表示电路符号:通常用Vin+和Vin-表示共模信号 (Common Mode)定义:两个输入端信号大小相等、相位相同的分量物理意义:噪声或干扰,希望被抑制数学表示例子:电源噪声、温度漂移、地线干扰模电处理连续世界,讲究精度、带宽、噪声数电处理离散世界,讲究速度、时序、逻辑共模/差模是连接两者的重要概念:,差模信号承载信息,共模信号承载噪声。

2026-04-02 19:03:50 313

原创 三极管详解

1.核心本质:三极管是电流控制型器件(B极小电流控制CE极大电流),这与MOSFET(电压控制型)不同。2.三种状态截止(关)、放大(线性控制)、饱和(开)。务必理解!3.两大用途开关和放大。4.NPN更常用:先吃透NPN型,PNP原理类似,只是电流方向和电源极性相反。5.动手是关键:用电路仿真软件(如EveryCircuit、LTspice)或买一个三极管套件(如S8050, 9013),按照开关电路接一下,用万用表测测各点的电压变化,理解会深刻十倍!

2026-04-02 18:57:54 561

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除