红外接收头这类器件很多做单片机开发的朋友都是“拿来就用”真正到了要在仿真软件里把它跑起来的时候才发现事情没那么简单。Proteus自带的元件库里翻个底朝天也找不到一个能直接对红外遥控信号做出响应的接收头模型。TSOP系列红外接收头内部集成了光电二极管、前置放大、带通滤波、解调、施密特触发输出这么一整套信号链而Proteus的模拟/数字混合仿真引擎并不会自动帮你把这些环节“脑补”出来。所以红外接收头TSOP封装建模这件事本质上就是自己动手用一个等效的电路模型去替代真实器件的行为让仿真环境里的单片机能够收到和真实硬件一致的解调后波形。这篇内容适合正在做红外遥控相关课程设计、毕业项目或者产品原型验证的朋友不管你是刚接触Proteus的新手还是已经画过几块板子但没在仿真里折腾过接收头的老手下面这些拆解和实操细节应该都能直接拿去用。1. 先搞清楚TSOP到底在做什么1.1 从光信号到电平跳变接收头的内部信号链要建模先得把真实器件的行为吃透。TSOP系列红外接收头的典型工作过程是这样的一体化的封装内部有一个PIN光电二极管它把38kHz附近调制的红外光脉冲转换成微弱的电流信号这个电流信号进入前置放大器经过自动增益控制AGC放大到合适的幅度然后送入中心频率为38kHz的带通滤波器把环境光干扰和其他频率的噪声滤掉滤波后的信号再做包络检波恢复出调制前的基带脉冲最后经过施密特触发器整形输出干净的数字电平。关键点在于输出极性。绝大多数TSOP型号在收到有效红外脉冲串时输出端拉低没有信号时保持高电平。这个“低有效”的特性是建模时最容易搞反的地方。你在Proteus里搭模型如果输出极性搞反了单片机的解码程序会一直解不出正确的引导码排查半天以为是时序问题其实是模型行为反了。从建模角度看我们不需要在Proteus里真的去模拟光电转换和38kHz载波调制因为仿真里的信号源本身就是电信号。我们要做的是让模型在接收到“代表红外脉冲串”的输入激励时输出与真实TSOP一致的解调波形。换句话说模型的核心是一个脉冲串到电平包络的转换逻辑外加必要的电气特性模拟。1.2 为什么Proteus原生库满足不了需求Proteus的元件库里有红外发射二极管、有各种通用运放和比较器但红外接收头这种“专用集成电路光学前端”的复合器件官方库并没有收录可直接仿真的模型。你可能会想那用个普通的光敏二极管加运放搭一个理论上可行但实际做起来非常麻烦光敏二极管的SPICE模型参数在Proteus里并不完整运放搭建的带通滤波器和检波电路在瞬态仿真下收敛性很差仿真速度慢到让人抓狂而且最终输出的波形和真实TSOP的时序对不上。更实际的做法是走数字模型路线用Proteus支持的Digital Model或基于VSM的脚本模型把接收头抽象成一个“输入脉冲串、输出解调包络”的黑盒。这样仿真速度快、时序可控、行为可预测对于验证单片机解码逻辑来说完全够用。我试过用纯模拟方式搭接收链路一个简单的遥控解码仿真跑了十几分钟还没出结果换成数字行为模型之后秒级出波形效率差距不是一点半点。1.3 建模目标的边界划定动手之前得明确这个模型要模拟到什么程度我的经验是围绕你的验证目标来定边界。如果你只是要验证单片机的红外解码程序比如NEC协议解码那模型只需要做到接收代表引导码、地址码、数据码的脉冲串输出对应的解调后电平序列时序参数引导码9ms低4.5ms高、位码0.56ms低0.56ms高或0.56ms低1.69ms高与真实器件一致即可。如果你还想验证接收头对载波频率的敏感性、对连续脉冲串的响应延迟、或者输出端的驱动能力那就需要额外加入带通滤波特性、传输延迟、输出级驱动模型等。但对于绝大多数Proteus项目应用场景来说时序行为正确是第一优先级电气特性做到“电平兼容、驱动能力合理”就足够了。把边界划清楚后面搭电路的时候才不会陷入“什么都想模拟”的泥潭。2. 模型方案选型与核心逻辑设计2.1 三种可行方案对比在Proteus里实现TSOP行为模型我实际尝试过三条路线各有优劣方案实现方式优点缺点适用场景模拟等效电路光敏二极管运放带通检波比较器电路直观接近真实信号链仿真收敛慢参数调试繁琐时序难精确控制教学演示信号链原理数字行为模型用Proteus Digital Model或VSM脚本仿真快时序精确可控需要写模型代码或配置逻辑单片机解码验证、系统级仿真混合模型数字核心模拟输出级兼顾时序与电气特性实现复杂度中等需要验证输出驱动能力的场景对于“Proteus项目应用实例”这个定位我推荐数字行为模型为主必要时在输出端加一个简单的模拟缓冲级。原因很直接项目应用的核心诉求是让整个系统接收头单片机执行机构在仿真里跑通验证的是系统逻辑而非器件物理。数字模型在这个目标下性价比最高。2.2 数字行为模型的核心状态机设计数字模型的核心是一个状态机它要完成的事情可以拆成三步检测输入脉冲串的有效性、按协议时序生成解调包络、驱动输出引脚。输入侧我们用一个数字信号源模拟“经过红外调制后的脉冲串”。注意这里有两种建模思路一种是把38kHz载波也模拟出来输入是高频脉冲串模型内部做包络检波另一种是直接把载波调制“抽象掉”输入就是基带脉冲串即已经检波后的波形模型只做极性转换和时序整形。前者更真实但仿真步长要求高后者更简洁。我的选择是输入基带脉冲串理由是这样可以把仿真步长设得比较宽松比如1us仿真速度快而且对于验证解码逻辑来说载波是否存在并不影响结果。真实TSOP的输出本来就是解调后的基带信号我们直接从这个层面入手逻辑上完全自洽。状态机的状态定义如下IDLE空闲态输出高电平等待输入脉冲串的下降沿。BURST脉冲串处理态检测到输入下降沿后进入根据输入脉冲的宽度和间隔判断是引导码还是数据位并在内部计时。OUTPUT输出态按照判定结果驱动输出引脚拉低或保持高电平持续时间与输入脉冲串的时序对应。这里有个细节要处理好真实TSOP对脉冲串的响应有大约5到10个载波周期的延迟换算到基带层面大概是几百微秒量级。在数字模型里我通常给输出加一个固定的传输延迟参数比如200us让波形在时间轴上稍微滞后于输入这样更接近真实器件的表现。如果你的解码程序对时序容差很敏感这个延迟参数可以调小甚至设为零但建议保留一个小延迟避免仿真中出现“输入输出完全对齐”这种现实中不可能的情况掩盖掉潜在的时序竞争问题。2.3 输出极性与驱动级的处理前面提过TSOP输出是低有效。模型输出级我一般用一个数字输出引脚加一个上拉电阻的等效结构来模拟。在Proteus里数字模型输出可以直接驱动单片机的GPIO引脚但要注意电平匹配TSOP系列常见型号在5V供电下输出高电平约4.5V以上低电平接近0V。如果你的单片机是3.3V系统接收头输出直接接进去可能存在电平不匹配的问题真实硬件里需要电平转换仿真里则可以在模型输出端加一个简单的分压或限流结构来模拟。我在一个3.3V单片机的项目里就踩过这个坑模型输出直接设成5V电平仿真里单片机引脚被“撑”到5V虽然Proteus不报错但和真实硬件的行为不一致后来在输出端串了一个电阻分压网络把高电平压到3.3V附近波形看起来就合理多了。这个细节在纯数字仿真里容易被忽略但如果你后续要把仿真结果和实测波形做对比电平幅度的差异会让你对不上账。3. 在Proteus里把模型搭出来3.1 准备工作信号源与单片机的最小系统先搭一个最小验证环境。信号源方面我用Proteus的Digital Pattern Generator或者PULSE GENERATOR来产生代表红外脉冲串的基带波形。以NEC协议为例一帧完整的信号包括9ms低电平引导码、4.5ms高电平、然后是地址码和数据码的脉冲序列。用Pattern Generator可以很方便地编辑出这串波形设置好周期和电平即可。单片机侧选一个常用的型号比如某款8位MCU接上晶振和复位电路把接收头模型的输出接到一个GPIO引脚上最好再挂一个逻辑分析仪或者示波器探头方便观察波形。Proteus里的虚拟示波器Oscilloscope和逻辑分析仪Logic Analyzer都很好用我习惯用逻辑分析仪看时序因为它能同时显示多路信号方便对比输入脉冲串和输出包络的对应关系。提示Pattern Generator的输出电平要设成与模型输入匹配的逻辑电平如果你的模型输入阈值设的是CMOS电平信号源输出摆幅要覆盖0到VDD否则模型可能识别不到边沿。3.2 用VSM脚本实现状态机逻辑Proteus支持用VSMVirtual System Modelling脚本或者DLL来扩展模型行为。对于不想写C代码的朋友也可以用Proteus内置的Digital Model功能通过真值表和状态描述来定义行为。我两种方式都用过VSM脚本灵活性更高适合处理有时序判断的逻辑Digital Model配置简单适合纯组合逻辑。以VSM脚本为例核心逻辑伪代码如下这里用类C的伪代码描述思路实际脚本语法按Proteus的规范来// 伪代码TSOP行为模型核心逻辑 void on_input_edge(int level, double time) { if (level LOW state IDLE) { // 检测到下降沿开始记录脉冲 pulse_start time; state BURST; } else if (level HIGH state BURST) { double pulse_width time - pulse_start; if (pulse_width 8.0ms) { // 引导码低电平输出拉低 set_output(LOW); output_timer 4.5ms; // 对应引导码高电平段 } else { // 数据位低电平输出拉低 set_output(LOW); output_timer pulse_width; // 按位宽保持 } } } void on_timer_expire() { set_output(HIGH); state IDLE; }这段逻辑的关键在于输入脉冲的低电平宽度决定了输出低电平的持续时间。真实TSOP在收到低电平脉冲串时输出拉低脉冲串结束后输出恢复高电平中间的高电平间隔对应输出高电平。所以模型本质上是一个“低电平宽度跟踪器”把输入的低电平段“复制”到输出端同时加上固定的传输延迟。实际写脚本的时候要注意时间单位的统一。Proteus的仿真时间步长和脚本里的时间变量单位要一致我一般统一用秒或者毫秒在脚本开头定义好换算系数避免后面算错。还有一点脚本里的定时器精度受仿真步长限制如果步长设得太大比如10us窄脉冲0.56ms的宽度测量误差会比较大建议步长设在1us以内。3.3 封装成可复用元件模型逻辑调通之后下一步是把它封装成一个“元件”方便在原理图里像普通器件一样调用。Proteus里可以通过Make Device功能把模型脚本、引脚定义、符号图形打包成一个新的元件保存到自己的库中。封装时要注意引脚命名和编号一般TSOP有三个引脚——OUT、GND、VDD符号上按真实器件的引脚顺序排列这样原理图看起来和实际电路一致后续画PCB如果要做也方便对照。封装过程中有个小技巧给元件加上属性字段比如“载波频率”“输出极性”“传输延迟”这样在原理图里双击元件就能调整参数不用每次都改脚本。我在一个项目里需要同时模拟38kHz和40kHz两种接收头就是靠属性字段切换的省了不少重复劳动。注意Make Device生成的元件默认保存在当前项目的库中如果要跨项目复用需要导出到用户库User Library。导出时记得把脚本文件一起打包否则换台机器打开工程会提示模型缺失。4. 联调验证让波形说话4.1 输入输出波形对照检查模型搭好之后第一件事是对照输入输出波形。用逻辑分析仪同时抓取Pattern Generator的输出模型输入和模型输出引脚检查以下几点输入引导码低电平9ms输出低电平是否也是9ms左右加上传输延迟输入高电平4.5ms期间输出是否保持高电平数据位0.56ms低电平输出低电平宽度是否对应整帧结束后输出是否稳定回到高电平。我第一次搭模型的时候输出低电平宽度总是比输入宽出几百微秒查了半天发现是脚本里定时器的启动时刻算错了——在检测到下降沿时启动定时器但定时器的到期判断放在了上升沿处理里导致多算了一个脉冲宽度。后来改成在上升沿时直接计算宽度并设置输出保持时间问题就解决了。这种时序细节光看代码不容易发现一定要靠波形对照来暴露。4.2 单片机解码程序的联合调试波形对了之后把单片机解码程序跑起来。以NEC解码为例程序通常用外部中断加定时器的方式测量高低电平宽度判断引导码、逻辑0、逻辑1。联合调试时常见的现象是解码程序能进中断但解出的数据不对。这时候要分两步排查先确认模型输出的时序参数是否和程序里的判断阈值匹配比如程序判断9ms低电平的容差范围是8.5到9.5ms模型输出是9.2ms那就在范围内再确认中断触发方式是否和输出极性一致低有效输出应该配下降沿触发。我在一个项目里遇到过解码程序偶尔丢帧的问题仿真里看波形完全正常后来发现是模型输出在帧与帧之间的高电平间隔不够长导致程序还没处理完上一帧就来了下一帧。把Pattern Generator的帧间隔从20ms加到50ms之后问题消失。真实遥控器的帧间隔通常在40ms以上仿真时如果图省事把间隔设得太短就会引入现实中不存在的问题。4.3 常见问题速查表现象可能原因排查方向解决方法模型输出一直高电平输入信号未触发模型/极性设反检查输入边沿是否被识别调整输入阈值或信号源电平输出低电平宽度偏大定时器计算逻辑错误对照输入输出波形逐段测量修正脚本中的宽度计算解码数据错位时序参数与程序阈值不匹配核对引导码和位码宽度调整模型时序参数或程序容差仿真速度极慢使用了模拟等效电路方案检查是否含SPICE模拟器件改用数字行为模型换机器后模型丢失元件未导出到用户库检查库文件路径导出元件并打包脚本这张表里的每一条都是我在实际项目里真实遇到过的尤其是“输出低电平宽度偏大”和“解码数据错位”这两条出现的频率最高。前者多半是脚本逻辑问题后者多半是参数匹配问题按表里的方向排查基本能在十几分钟内定位。5. 把模型用进完整项目几个实战场景5.1 场景一遥控器按键解码系统验证这是最典型的应用。完整系统包括红外信号源模拟遥控器发出的脉冲串、TSOP行为模型、单片机最小系统、以及解码后的输出指示比如LED或者串口打印。在Proteus里把这几部分连起来跑仿真观察单片机是否能正确解出按键码。这个场景的建模重点是多帧连续信号的模拟。真实遥控器按住按键时会连续发帧帧间隔大约40到110ms不等。用Pattern Generator可以设置循环输出模拟连续按键。我一般会设置三种测试序列单帧、连续三帧、以及带重复码的序列NEC协议里长按会发重复码分别验证解码程序的单次解码、连续解码和重复码处理逻辑。这套测试序列跑通解码程序的健壮性基本就有底了。5.2 场景二接收头输出驱动能力评估有些项目里接收头输出不是直接进单片机而是经过一级缓冲或者分压网络再进GPIO。这时候模型的输出级就需要模拟一定的驱动能力。我通常的做法是在模型输出端加一个等效的输出阻抗比如几十欧姆的串联电阻和一个对地的等效电容几十pF模拟真实器件输出级的RC特性。这样在仿真里观察输出波形时上升沿和下降沿会有轻微的圆角和实测波形更接近。这个场景下模型的传输延迟参数也要调得更精细一些。真实TSOP的传输延迟典型值在几百微秒量级不同型号有差异。如果你的系统对时序要求严格比如需要精确测量脉冲宽度来做协议分析这个延迟参数就不能随便设最好查一下目标型号的数据手册按典型值来配。5.3 场景三多接收头共存系统的信号冲突排查有些系统里会用到多个红外接收头比如不同方向或者不同载波频率这时候要验证的是信号之间会不会互相干扰、单片机的多路输入处理逻辑是否正确。在Proteus里可以放两个模型实例分别接不同的信号源观察单片机是否能区分两路信号。这个场景的建模要点是模型实例的参数独立性。每个模型实例的传输延迟、输出极性、时序参数都应该可以单独配置不能共用全局变量。我在早期版本里就是因为脚本用了全局状态变量两个实例互相干扰波形乱成一团后来把状态变量改成实例私有问题才解决。如果你用VSM脚本实现注意把状态定义在实例结构体里而不是文件级全局变量。6. 几个容易被忽略的细节与经验6.1 仿真步长与时序精度的权衡Proteus的仿真步长设置直接影响时序测量的精度。步长设得太大窄脉冲的宽度测量误差大模型输出波形会失真步长设得太小仿真速度慢尤其是长时间跑连续帧的时候。我的经验值是如果只验证解码逻辑步长设1us足够如果要精确测量脉冲宽度做时序分析步长设0.1us如果只是看系统整体行为10us也能凑合。这个参数在仿真设置里可以调不同项目按需选择。还有一点Proteus的数字仿真和模拟仿真步长是分开设置的纯数字模型只受数字步长影响所以用数字行为模型方案时把模拟步长设大一点不影响结果能进一步提速。6.2 模型的可移植性与文档化模型调通之后一定要做两件事一是导出到用户库并备份脚本文件二是在元件属性里写清楚参数含义和默认值。我吃过亏——半年前调好的模型换个项目想复用结果忘了当时传输延迟设的多少、输出极性是怎么配的只能重新翻脚本看。后来养成习惯在元件描述字段里写一行备注比如“NEC协议38kHz低有效输出延迟200us”再也没出现过这种问题。如果团队协作建议把模型的脚本、封装文件、测试用例Pattern Generator的配置文件打包成一个文件夹附一个简短的说明文档写清楚适用协议、可调参数、已知限制。这些东西看起来琐碎但下次复用或者交接的时候能省大量时间。6.3 什么时候该放弃仿真、直接上硬件仿真终究是仿真。模型再精细也替代不了真实器件在真实电磁环境下的表现。我的判断标准是如果仿真里系统逻辑跑通了时序也对得上但你对某些边界条件比如强光干扰、电源波动、长距离传输有疑虑那就别在仿真里死磕了直接焊一块测试板用真实接收头跑一遍。仿真解决的是“逻辑对不对”的问题硬件解决的是“实际能不能用”的问题两者分工明确不要指望仿真包打天下。我在一个项目里花了整整两天在仿真里调一个“偶发丢帧”的问题各种改模型参数都不见效最后焊了块板子一测发现是电源纹波导致接收头输出抖动仿真里根本没模拟电源噪声自然复现不出来。从那以后仿真验证逻辑、硬件验证环境成了我的固定流程。7. 模型进阶从能用到好用7.1 加入载波频率响应特性基础版模型只处理基带脉冲串不关心载波频率。但如果你的项目涉及不同载波频率的遥控器比如36kHz、38kHz、40kHz、56kHz或者要验证接收头对偏离中心频率的信号的响应那就需要在模型里加入频率选择性。实现方式是在输入侧加一个“载波频率检测”逻辑输入信号如果是高频脉冲串模型先测量其频率落在通带内才正常输出落在通带外则输出保持高电平相当于没收到有效信号。这个进阶功能在Proteus里实现起来需要输入侧产生高频脉冲串仿真步长要相应减小速度会慢一些。我的建议是只在确实需要验证频率选择性的时候才启用这个模式日常解码验证用基础版就够了。7.2 模拟AGC对强弱信号的响应差异真实TSOP内部有AGC电路强信号和弱信号下的输出波形会有细微差异比如弱信号时输出脉冲宽度可能略窄或者对连续相同码的响应有变化。在数字模型里模拟这个特性可以通过在模型里加一个“信号强度”输入参数根据参数值微调输出脉冲宽度或者传输延迟。这个功能属于锦上添花除非你的项目对信号强度特别敏感否则不必花太多精力。7.3 与发射端的联合仿真完整的红外通信链路包括发射端和接收端。Proteus里可以用PWM信号驱动红外发射二极管加一个限流电阻发射端产生的光信号在仿真里无法直接“无线”传到接收端但可以通过把发射端的PWM信号直接连到接收头模型的输入中间加一个表示“光路”的抽象连接来实现联合仿真。这样就能验证从按键编码、载波调制、到接收解调的完整链路。这个玩法我在一个教学项目里用过效果不错——学生可以在一个仿真工程里看到从编码到解码的全过程比分开仿真两个部分直观得多。实现上的关键是发射端PWM频率要和接收头模型的通带匹配否则模型会判定为无效信号。8. 写在最后的实操体会这套TSOP建模方法我在好几个项目里反复用过从最简单的单帧解码验证到多接收头系统的信号冲突排查模型本身也在不断迭代。最大的体会是建模的复杂度要跟着验证目标走不要为了“像真”而过度设计。一个时序正确的数字行为模型能解决八成以上的仿真验证需求剩下两成需要电气特性或者环境因素模拟的场景往往直接上硬件更划算。另外模型调通之后一定要做版本管理和文档记录。我现在的习惯是每个模型元件都带一个版本号属性脚本文件按版本号命名测试用例单独存一个工程文件。这样下次哪个项目要用直接调对应版本不用从头再来。这套流程看起来有点“重”但用过几次之后就会发现省下来的重复调试时间远超维护成本。如果你正在做红外相关的Proteus项目建议先从NEC协议的单帧解码验证做起把基础模型跑通再逐步加功能。一步一步来比一上来就追求完美模型要靠谱得多。
企业数字化 ERP 产品动态
相关推荐
链表操作实战:从基础到进阶的算法技巧 1. 链表操作基础与训练营题目概览链表作为数据结构中的经典类型,在实际工程和算法面试中出现的频率极高。这次训练营的四个题目覆盖了链表操作的多个典型场景,从基础操作到进阶应用一应俱全。两两交换节点考察指针操作的精准性,删除倒数第N个… · 2026/11/4 18:56:19
基于ROS和YOLOv5的机器人视觉导航系统设计与实现 1. 项目背景与核心价值去年在给某仓储物流企业做自动化升级时,他们提出一个典型需求:"能不能让AGV小车像人一样,看到障碍物就自动绕开,同时还能记住仓库地图?"这个需求直接促使我完成了这套基于ROS和YOLOv5的… · 2026/11/4 18:55:18
基于JSP的高考志愿推荐系统开发实践 1. 高考志愿推荐系统开发全流程解析 作为一名参与过多个教育类系统开发的Java工程师,我深知高考志愿填报对学生的重要性。去年我主导开发了一套基于JSP的高考辅助推荐系统,今天就来分享这个项目的完整开发过程和技术细节。 高考志愿填报本质上是一个复杂… · 2026/11/4 18:55:18
从零到一搭好航天任务控制系统:Open MCT × YAMCS 遥测可视化与指令下发实战 从零到一搭好航天任务控制系统:Open MCT YAMCS 遥测可视化与指令下发实战 【免费下载链接】openmct A web based mission control framework. 项目地址: https://gitcode.com/gh_mirrors/op/openmct
Open MCT 是 NASA 开源的 Web 任务控制前端框架… · 2026/11/4 19:40:57
数字化转型工作手册①|框架:读懂“为什么‑是什么‑干什么‑怎么干‑如何推“ 本篇介绍《数字化转型工作手册》编制单位与全书总框架,拆解"为什么—是什么—干什么—怎么干—如何推"五大逻辑链条,建立完整认知总纲。当前,全球产业发展环境深刻变化,深度应用新一代信息技术、全面加速数字化转型&… · 2026/11/4 19:39:56
07容器和数据结构 泛型泛型是 Java 5 引入的一种机制,允许在定义类、接口和方法时使用类型参数。通过泛型,可以在编译时检查类型安全,并且消除强制类型转换的需要。泛型类使用前public class TestGeneric {public static void main(String[] args) {MyCollecti… · 2026/11/4 19:39:56
Folia 安装教程:10 分钟把全屏歌词播放器装到 Windows、macOS 和 Linux Folia 安装教程:10 分钟把全屏歌词播放器装到 Windows、macOS 和 Linux 【免费下载链接】folia-major 专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器 项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major
Folia 是一… · 2026/11/4 19:38:55
如何用 Hermes Agent 快速搭建专属 AI 智能体?完整指南 如何用 Hermes Agent 快速搭建专属 AI 智能体?完整指南
想让 AI 不只是聊天,还能自动查资料、跑多步任务?自己对接模型和工具调用太折腾。Hermes Agent 是一个开源 AI 智能体框架,内置技能模块、工具安全审计与桌面客户端&#x… · 2026/11/4 19:36:53
Hermes Agent 快速上手指南:三步看懂意图识别与槽位填充 Hermes Agent 快速上手指南:三步看懂意图识别与槽位填充
Hermes Agent 是一个会在对话里替你办事的开源 AI 代理,它靠意图识别和槽位填充来听懂话、抓住细节。 你:「帮我约个明天上午的会。」 Hermes:「好,明天上午 1… · 2026/11/4 19:36:53
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38
AI辅助技术栈评估:提升研发决策效率60% 1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17
从生成Token到直接决策:Jev如何重塑AI Agent工程实践 1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17
32G统一内存跑大模型:内存账、TPS实测与端云分流 想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38