简介面向嵌入式初学者与STM32开发者的Proteus仿真工程包聚焦在无实物硬件条件下完成单片机软硬件协同验证。资源以常用STM32型号为对象整合Proteus原理图与Keil工程可用于GPIO、ADC/DAC、UART、SPI等外设的电路搭建、程序导入、波形观测与断点调试帮助读者理解从代码编译到虚拟硬件运行的完整链路。压缩包共433个文件、约9.04MB其中290个C源文件与43个头文件构成主要程序主体并附d、crf、o等编译中间文件、pdsprj仿真工程、uvprojx工程配置及hex烧录文件目录保留了较完整的开发过程痕迹。已有1128人学习下载适合课程设计、毕业设计前期验证与STM32入门练习时对照参考也可作为排查外设初始化、时钟配置与中断逻辑问题的工程样例。1. 装 Proteus 仿真 STM32先认清这套环境的三个前提第一次在一台干净机器上做 Proteus 的 STM32 仿真出问题的往往不是软件装不上去而是装完之后打开工程、点下运行LED 一动不动示波器拉出一条直线。我遇到过一次查了半宿Keil 里选的是 48 脚的 C8Proteus 原理图上摆的是 64 脚的 R6引脚编号整体错位串口 TX 接到了晶振脚上程序本身没有任何问题。Proteus 仿真 STM32 这套环境看着简单一个仿真软件加一个编译器实际上版本、器件库、时钟频率、引脚封装这四件事必须同时对上错一个就是「能编译、能加载、就是不跑」。它适合手头没板子但要练外设的学生也适合要给学生演示时序和中断的人。下面按装什么、怎么装、装坏了怎么救的顺序走一遍。2. 版本对不上后面全白搭Proteus 8.15 配 Keil MDK 5.38在装 Proteus 仿真 STM32 这套环境之前我得先把版本定死。这一章说的版本号以你手上的授权包为准道理是通用的Proteus 的小版本决定器件库里有没有你要的 STM32 型号Keil 那边的编译器版本决定一份老工程能不能直接编译过。两边各自有坑合起来还有对齐问题。我的习惯是先定芯片型号再倒推两个软件的版本而不是先下软件再想跑什么芯片。2.1 Proteus 侧8.13 和 8.15 在 STM32 模型上的差别Proteus 8.x 系列里STM32 的 VSM 模型是随器件库一起更新的。8.13 是很多人手里的稳定版本常用的 STM32F103R6、STM32F103C8 这些型号都能搜到8.15 的器件库更全一些对新一些的外设模型支持更完整比如某些定时器和 ADC 的行为差异。如果你只是点灯、串口、定时器中断这类基础验证8.13 完全够用如果要跑 SPI 从机、DMA 搬运这类时序敏感的仿真8.15 会少一些奇怪现象。要避开的反而是更老的版本。8.6、8.7 时代的器件库里Cortex-M3 的模型不完整STM32 系列的引脚电源模型经常是缺失的你会遇到「程序在跑但外设不响应」这种很难定位的问题。判断办法很直接在 Pick Devices 里搜到芯片后看它右侧 Description 里有没有 VSM 字样以及 Model Type 是不是 VSM。提示Proteus 的版本号和器件库版本号是两回事。装完主程序后器件库要单独确认一遍别默认它一定装全了。我一般把版本定在 8.15 做主用8.13 留一份装在另一台机器上做交叉验证。因为仿真出问题的时候你永远不知道是代码错了还是模型不对换一台机器跑一遍能立刻把范围缩小一半。2.2 Keil 侧MDK 5.38 加编译器 v5 还是 v6Keil 这边有两个版本要定IDE 本身的版本和编译器AC5 / AC6的版本。MDK 5.38 是目前比较省心的一个选择它默认带编译器 v6同时可以通过 Pack 补装 v5。这两个编译器对代码的要求不一样v6 对语法更严格老代码里的一些隐式类型转换、内联汇编写法会直接报错v5 宽松标准外设库时代的工程基本能直接编过。用寄存器写验证代码的话两个都能过。用标准外设库StdPeriph写的话我建议在工程里显式指定编译器 v5在 Options for Target 的 Target 页把 ARM Compiler 选成 Use default compiler version 5。原因很实际那套库的启动文件是给 v5 写的换成 v6 之后经常冒出__main相关的链接错误新手在这一步很容易卡住。编译器切换之后一定要做一次 Rebuild 而不是 Build。混编过之后的目标文件缓存会让错误看起来时有时无这是我见过最费时间的一类假故障。2.3 安装路径和目录规划中文和空格是两个隐形雷两个软件都别装在带中文或空格的路径下。这不是迷信是编译器和仿真器在解析路径时的老毛病。我一般这样规划软件安装路径说明ProteusD:\Proteus8不放 C 盘避免权限问题Keil MDKD:\Keil_v5与 Pack 目录分开工程目录D:\mcu_work\stm32_sim全英文无空格Keil 的工程路径里如果有空格某些版本的 fromelf 转换工具会静默失败最后的表现是「编译成功但没生成 hex」非常难查。工程目录也不要放在桌面或者「我的文档」下面因为这些路径会展开成带中文的用户目录。2.4 一张对齐表芯片型号、封装、Flash 要对上真正决定成败的是这张表。Proteus 里摆哪个型号Keil 里就必须选同一颗封装和 Flash 容量都要一致。项目Proteus 器件库Keil Device封装Flash型号 ASTM32F103R6STM32F103R6LQFP6432 KB型号 BSTM32F103C8STM32F103C8LQFP4864 KBR6 和 C8 差了 16 个引脚PA8 之后的引脚编号完全不同。我在第 1 章说的那个坑就是这么来的Keil 里选 C8Proteus 里摆 R6程序里操作 PA13、PA14 的时候原理图上对应的却是别的脚。选型号的时候记住一条Proteus 的 STM32 模型以 R6 为主很多示例工程都是按 R6 画的。你手上这份仿真资源如果不是自己画的原理图进 Keil 之后第一件事就是打开 Options for Target确认 Device 那一栏的型号和原理图上的丝印一致不一致就改 Keil 这边别改原理图。3. 安装 Proteus主程序、授权、器件库三段落位Proteus 的安装过程本身不算复杂麻烦的是装完之后器件库里没有 STM32或者有型号但模型是空的。这一章按三段来主程序落到盘上、授权导入生效、器件库和模型文件确认到位。三段都过了才算装完。3.1 主程序安装路径、组件与首次启动从压缩包解出来的目录里找安装程序右键用管理员身份运行。安装向导里有两个地方要留意一是安装路径按上一章的规划填D:\Proteus8二是组件选择页把 VSM Simulator、Library、Sample Projects 这三项都勾上尤其是 Library某些定制安装包里它默认是不勾的。装完之后不要急着打开工程先做一件事确认安装目录下这几个子目录存在。# 在安装目录下确认关键子目录缺哪个补哪个 cd /d D:\Proteus8 dir /b # 期望看到 BIN、LIBRARY、MODELS、SAMPLES、TEMPLATES 这几个目录BIN是可执行文件目录LIBRARY放器件库MODELS放 VSM 模型DLL 形式SAMPLES是示例工程。如果LIBRARY是空的说明组件没勾全重新跑一遍安装程序选 Modify 补上别想着从别处拷一份凑合版本对不上的库会让仿真行为变得不可预测。8.x 的某些小版本会把器件库放到系统盘的公共程序数据目录下而不是安装目录。装完在两边都看一眼实际路径以安装日志为准。首次启动建议用管理员身份运行一次让它把配置文件写到用户目录下之后再普通权限启动就不会反复弹配置向导了。3.2 授权导入许可证文件放在哪、导入失败怎么回退启动后会提示激活。正版授权一般是一个许可证文件在软件里打开 License Manager选择导入指向那个文件重启软件生效。导入失败最常见的原因有两个一是文件被浏览器或解压工具改过扩展名变成了.txt或者.lxk.txt二是导入的时候软件没有管理员权限写不进授权存储位置。判断是否成功很简单重启后在 Help 菜单里看授权状态能看到有效期和功能列表就是成功了。如果显示的是试用模式说明文件没被识别。注意授权导入之后先别改系统时间做测试某些授权机制对时间回拨敏感会导致授权状态异常恢复起来要去删配置文件。出问题想回退的话把用户目录下的 Proteus 配置文件夹整个改名比如加个.bak后缀再重新启动软件会重建一份干净的配置。这一步比重装软件快得多。3.3 器件库和 VSM 模型搜不到 STM32 就差这一步器件库和模型是两套东西。器件库LIBRARY 目录下的.LIB文件决定你在 Pick Devices 里能不能搜到这颗芯片模型MODELS 目录下的.DLL决定它能不能被仿真。两个都在才是完整可用。装完之后打开软件新建一个空工程按 P 打开 Pick Devices搜索框里输入STM32F103看结果列表。正常情况下能看到 R6、C8、RB 等几个型号。点中 R6右侧会显示它的描述信息和模型类型。如果列表是空的说明库没装进来如果列表有型号但模型类型显示的是 None 或者 SPICE那这颗芯片只能画图不能仿真。模型缺失的补救办法安装包里通常有一个单独的 Library 或 Update 目录里面是器件库和模型的安装程序单独跑一遍。这一步做完还不行就换一个版本的安装包不要在不同版本之间互相拷文件。3.4 装完立刻做的三条自检装完别急着画图花五分钟做这三条能省掉后面几小时的排查。第一条Pick Devices 搜STM32F103R6能搜到且模型类型是 VSM。第二条随便摆一颗电阻和一个 LED接上电源和地点运行LED 能亮。这一步验证的是基础仿真引擎跟 STM32 无关。第三条在 System 菜单里看 Simulation 相关的设置项是否可点如果整个菜单是灰的说明授权没生效。三条都过了Proteus 这一侧就算落地了。接下来是 Keil 那半边。4. 打通工具链Keil 编出 HEXProteus 吃得下两边软件都装好了中间还差一根管子Keil 编译产出的 HEX 文件要能被 Proteus 的 STM32 模型正确读取和执行。这一章把这根管子接上顺带把原理图上必须接的几处电源和配置脚说清楚很多人到这里就卡在「程序加载了但不运行」。4.1 Keil 新建工程器件型号必须和原理图同封装新建工程选 Device 的时候按第 2 章那张表来原理图上是 R6 就选 R6。选完之后会弹一个运行环境管理窗口用寄存器写代码的话里面什么都不用勾直接关掉用标准库的话把 CMSIS 的 Core 和 Device 的 Startup 勾上。工程建好之后先加一个最小的 main 文件把编译链跑通别一上来就堆几百行外设代码。最小验证代码用寄存器写不依赖任何库最省事#include stdint.h /* STM32F103 寄存器地址只列验证代码用到的几个 */ #define RCC_APB2ENR (*(volatile uint32_t *)0x40021018U) #define GPIOA_CRL (*(volatile uint32_t *)0x40010800U) #define GPIOA_ODR (*(volatile uint32_t *)0x4001080CU) #define USART1_SR (*(volatile uint32_t *)0x40013800U) #define USART1_DR (*(volatile uint32_t *)0x40013804U) #define USART1_BRR (*(volatile uint32_t *)0x40013808U) #define USART1_CR1 (*(volatile uint32_t *)0x4001380CU) static void delay(volatile uint32_t count) { while (count--) { __asm volatile (nop); /* 空转只保证肉眼能看出闪烁节奏 */ } } static void uart1_send(char c) { while (!(USART1_SR (1U 7))) { } /* 等 TXE 置位发送寄存器空 */ USART1_DR (uint32_t)c; } int main(void) { uint32_t tick 0; RCC_APB2ENR | (1U 2) | (1U 14); /* 开 GPIOA、USART1 时钟 */ GPIOA_CRL ~(0xFU 0); /* PA0 推挽输出驱动 LED */ GPIOA_CRL | (0x2U 0); GPIOA_CRL ~((0xFU 8) | (0xFU 12)); /* PA2 复用推挽 TXPA3 浮空输入 RX */ GPIOA_CRL | ((0xBU 8) | (0x4U 12)); USART1_BRR 0x341; /* 8MHz 时钟下 9600 波特率 */ USART1_CR1 (1U 13) | (1U 3) | (1U 2); /* 使能、发送、接收 */ for (;;) { GPIOA_ODR ^ (1U 0); /* 翻转 PA0 */ uart1_send(A (tick % 26)); /* 循环发 A~Z */ delay(200000); } }代码里每个寄存器地址对应 STM32F103 的参考手册RCC_APB2ENR的 bit2 是 GPIOA 时钟bit14 是 USART1 时钟。GPIOA_CRL里每 4 位配置一个引脚PA0 写0x2是 2MHz 推挽输出PA2 写0xB是 50MHz 复用推挽PA3 写0x4是浮空输入。USART1_BRR的 0x341 是按 8MHz 的 PCLK2 算出来的8 000 000 ÷ 9600 ≈ 833也就是 0x341。这个值在时钟改了之后必须重算否则串口出来的就是乱码这一点在第 5 章还会说。4.2 三个开关让 HEX 落到 Objects 目录代码编过之后HEX 不一定生成了。打开 Options for Target 的 Output 页确认三件事Create HEX File 勾上、输出目录是.\Objects\、Browse Information 勾不勾都行。勾上 Create HEX File 之后做一次 Rebuild然后去工程目录的 Objects 下看应该有一个和工程同名的.hex。如果编译显示 0 Error 但 Objects 里没有 hex先看 Output 页那个勾是不是被别的配置覆盖了再看工程路径有没有空格。Keil 的工程文件里存的是相对路径路径里有空格的时候转换工具会失败错误信息往往被吞掉。提示改完 Output 设置之后要做 RebuildBuild 有时候不会重新生成目标文件。4.3 原理图上必须接的三处电源、BOOT0、复位这一步是「加载了 HEX 但不跑」的头号原因。Proteus 的 STM32 模型不会自动补电源原理图上必须显式连接引脚接法不接的后果VDD各电源脚接 VCC并加 100nF 去耦程序不运行无任何输出VDDA接 VCCADC 相关全为 0其他功能可能正常BOOT0接 GND配 10k 下拉从错误区域启动程序不执行NRST接 10k 上拉到 VCC加按键到地上电复位不确定偶发不跑电源脚在 64 脚封装上不止一个VDD 有多个VSS 也有多个都要接。画图的时候用总线或者复制粘贴漏一个都会出现「有时能跑有时不跑」这种玄学现象。BOOT0 是最容易漏的。它悬空的时候电平不确定芯片可能进了系统存储器启动模式表现就是加载了 hex 但 PC 从来没跳到你的 main。4.4 Proteus 侧加载 HEX 和时钟频率对齐双击原理图上的 STM32 芯片打开属性窗口。Program File 那一栏指向刚才 Keil 生成的 hex 文件路径用绝对路径最稳。Clock Frequency 那一栏默认是 8M这个值必须和代码里算 BRR 用的频率一致。如果你的代码没有配置时钟树芯片就跑 HSI 的 8MHz那么 Clock Frequency 保持 8MBRR 写 0x341。如果你在代码里把时钟切到了 72MHz那么 Clock Frequency 要改成 72MBRR 也要重算成 0x1D4C。两边不一致的后果就是串口波特率偏移输出乱码。属性里还有一个 Advanced Properties 折叠区里面的东西一般不用动除非你要调仿真精度。加载完 hex 之后最好点一次属性窗口的确定让它重新读一遍文件有时候改了文件不刷新跑的还是旧的。4.5 虚拟终端和示波器把串口和电平接出来看串口验证不需要外部器件在 Proteus 的 Instruments 里拖一个 Virtual Terminal 出来它的 RXD 接单片机的 PA2TXTXD 接 PA3RX然后双击终端把波特率设成 9600和数据位、停止位对上。运行之后终端窗口里应该滚动出现 A 到 Z。LED 那一路PA0 串一个 330 欧电阻到 LED 再到地。想看得更清楚可以用电压探针或者示波器接 PA0观察方波周期比肉眼看闪烁可靠得多。虚拟终端和示波器都属于虚拟仪器不吃器件库但吃仿真速度。仪器开太多会让仿真变慢这点在第 5 章讲。5. 排查记录五个让我返工的坑下面这五条都是我自己或者身边的人真实返工过的按现象、原因、解决的顺序写。每一条都不是理论推演是同一类问题反复出现之后总结出来的判断顺序。5.1 编译零错误Proteus 里一点反应都没有现象Keil 显示 0 Error 0 WarningProteus 加载了所谓的 hex点运行LED 不闪终端无输出示波器一条直线。原因九成是 hex 根本没生成。Output 页的 Create HEX File 没勾或者勾了但工程路径带空格导致转换工具静默失败。还有一种情况是加载的时候指错了文件指向了上一次编译留下的旧 hex。解决先进 Objects 目录看文件的时间戳是不是本次编译时间。路径里有空格就整个工程挪到D:\mcu_work下面重新编译。加载的时候用绝对路径别用相对路径。5.2 HEX 加载正确程序就是不跑现象文件确实是最新的时钟也设了运行之后毫无反应连复位瞬间的引脚电平变化都没有。原因电源脚或者 BOOT0 悬空。Proteus 的模型不会替你上电原理图上少接一个 VDD整个芯片就是死的。解决把芯片所有 VDD、VSS 脚逐个检查一遍VDDA 单独接。BOOT0 拉低NRST 加上拉。改完重新运行。5.3 串口出来是乱码或者只有空白现象LED 正常闪说明程序在跑但虚拟终端里是乱码或者干脆什么都没有。原因BRR 寄存器的值和芯片实际时钟不一致。代码按 8MHz 算的 BRR属性里 Clock Frequency 却填了 72M或者反过来。另一种是虚拟终端自己的波特率没设默认值不是 9600。解决先把属性里的时钟频率和代码注释里的假设对齐再算一遍 BRR。然后双击终端确认波特率。两边都对齐之后还乱就看引脚是不是接反了TX 要接终端的 RXD。注意终端接反不会报错只会显示空白很容易被当成程序问题。5.4 器件库搜不到 STM32F103R6现象Pick Devices 里搜STM32什么都没有或者只有几个不相关的型号。原因安装时 Library 组件没勾或者器件库被放到了公共程序数据目录而软件读的是安装目录。也有可能是权限问题普通用户读不到那个目录。解决先用管理员身份启动一次再搜。还不行就重跑安装程序选 Modify把 Library 补上。补完之后在安装目录和公共数据目录两边都确认一下 LIBRARY 文件夹里有内容。5.5 仿真慢到没法看动一下就卡几秒现象程序本身很简单但仿真跑起来帧率极低LED 闪烁变成几秒一次。原因虚拟仪器开太多或者仿真精度设得太高。Proteus 默认会对模拟量做精细计算纯数字电路被当成模拟电路算速度就下来了。解决System 菜单里找仿真设置把动画相关的选项调低数字电路的精度档位放宽。只保留当前验证必需的仪器示波器看完就关掉。改完重启仿真速度差别很明显。6. 跑通验证一个 LED 加一路串口十分钟判断环境是否真的通了环境装完怎么算通我的标准很低但很硬同一个工程里LED 在闪串口在出字符两个现象同时存在。只亮灯不算通因为灯亮可能只是电源接对了而程序压根没跑只出串口也不算因为那可能只是模型自己在输出。具体做法就是第 4 章那段代码一次验证四件事时钟使能对不对、GPIO 配置对不对、串口寄存器配置对不对、时钟频率假设对不对。运行之后对照下面这张表逐项确认。观察点正常表现异常时的第一怀疑对象PA0 电压周期性高低翻转GPIOA_CRL 配置位虚拟终端循环输出 A~ZBRR 值、终端波特率芯片供电脚全部为高电平原理图漏接复位后首帧一秒内出现BOOT0 电平判断顺序我一般是从后往前先确认电源再看复位再看时钟最后才看代码逻辑。因为前三个错了代码逻辑根本没机会执行。还有一个技巧把仿真速度调慢。System 里的动画设置调低之后仿真相当于单步慢放你能清楚看到 PA0 的电平在一个周期内怎么变化比看示波器波形更直观尤其适合排查「翻转过快看起来像常亮」这种情况。反过来如果要看串口一帧数据的完整时序就得把速度调快让采样点密度上来否则终端里会出现丢字符的假象。这个快慢切换我一般在验证阶段来回调两三次确认现象稳定之后再固定下来。真正让我改掉习惯的是一次给外设做演示现场打开工程灯亮着串口也是通的我就直接开始讲了讲到一半发现定时器中断根本没进原因是那把工程里的启动文件被换过中断向量表偏了。当着人的面翻车比自己在实验室里翻车难受十倍。从那以后我每次装完这套环境都强制走一遍「灯加串口」的最小验证两项都过才碰业务代码绝不省这一步。这份仿真资源里带的工程可以按上面的顺序对照着装一遍装完用最小验证过一遍再打开示例工程出问题的时候你至少知道该从哪一层开始查。希望帮到你。本文还有配套的精品资源点击获取
企业数字化 ERP 产品动态
相关推荐
矿用无人驾驶技术:架构解析与商业化落地 1. 矿用无人驾驶技术背景与行业痛点矿山运输作业长期以来面临三大核心痛点:人力成本高企、作业安全风险大、运营效率低下。传统矿卡每台车需要配备2-3名司机轮班作业,在偏远矿区人力成本可达运营总成本的40%以上。更严峻的是,矿区事故中80%与… · 2026/11/4 5:39:16
飞书企业协作平台如何用智能订单中台提升餐饮效率 1. 项目背景解析:企业级效率工具的生态拓展最近注意到一个有趣的现象:飞书作为字节跳动旗下的企业协作平台,正在将其服务边界从传统的办公场景向更广泛的用户群体延伸。这次他们把目光投向了餐饮行业,特别是小龙虾这类季节性明显的… · 2026/11/4 5:39:16
superpowers:给Codex装上技能包,解锁Java项目AI重构 前阵子接手一个老旧的Java服务,需求是把散落在100多个类里的RestTemplate直接调用统一收敛到一个HttpClient封装里。这种活儿说白了就是"脏活累活",我打开Codex CLI,连比划带指挥,结果它改了二十几个文件之后上下文就丢… · 2026/11/4 5:39:16
ZCode:面向TypeScript工程师的本地化开发加速器 1. ZCode 是什么?一个被误读但值得深挖的 TypeScript 开发加速器最近刷技术社区,ZCode 这个词突然密集出现——不是因为某家大厂发布了新 IDE,也不是某个明星开源项目破了 Star 数纪录,而是它像一滴墨汁掉进清水里,迅速… · 2026/11/4 10:06:03
Lodop 6.057 在 Chrome 120+ 环境下的兼容安装与打印实践 简介:这是一份面向Web前端开发者与企业级打印功能集成工程师的Lodop 6.057浏览器通用打印控件资源包,专为解决跨浏览器(Chrome、Firefox、IE)环境下复杂报表、标签及自定义页面的本地打印需求而设计。资源包含50个文件,… · 2026/11/4 10:06:03
Logisim数字逻辑电路仿真软件安装与入门指南 数字逻辑电路这门课,很多人第一次接触时都会被“画电路图”这件事卡住。课本上的门电路、触发器、寄存器画起来倒还好,一旦要做稍大一点的实验,比如设计一个简易CPU或者实现一个状态机,手绘就完全不够用了。这时候就需要一款能仿真… · 2026/11/4 10:06:03
Lodop 6.057 打印方案:绕过浏览器限制的工业级精确打印实现 简介:这是一份面向Web前端开发者与企业级打印功能集成工程师的Lodop 6.057浏览器通用打印控件资源包,专为解决跨浏览器(Chrome、Firefox、IE)环境下复杂报表、标签及自定义页面的本地打印需求而设计。资源包含50个文件,… · 2026/11/4 10:06:03
智能客服语音识别优化:从声学模型到系统级实践 1. 语音识别技术现状与挑战当前智能客服系统中,语音识别模块的准确率直接影响用户体验和业务转化率。根据行业实测数据,在电话客服场景下,当语音识别错误率超过15%时,用户满意度会显著下降40%以上。而现实情况是,在复杂… · 2026/11/4 10:06:03
AI驱动产品需求评估:RICE与KANO模型智能化改造 1. 项目概述:当产品需求遇上AI决策引擎在数字化产品迭代过程中,需求优先级排序永远是产品经理最头疼的难题。传统RICE(Reach, Impact, Confidence, Effort)和KANO模型虽然提供了理论框架,但在实际应用中常面临三大痛点… · 2026/11/4 10:05:02
双极步进电机控制实战: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