前一阵把一套温度采集板从选型到量产的坑基本走了一遍核心方案就是标题里这套组合TI 的 ADS122U04IPWR 加上 Microchip 的 dsPIC33EP512MU814。这两颗芯片单拎出来都算不上冷门但放在一起做多点、多类型的工业与 HVAC 温度测量网上能搜到的完整落地经验反而不多。这篇文章就把我实际验证过的东西整理出来包括为什么这么选型、测温电路怎么搭、固件里那些关键寄存器到底该怎么配以及现场调试时最容易翻车的几个地方。先给不熟悉的朋友交代一下背景。ADS122U04IPWR 是 TI 推出的一颗 24 位 Δ-Σ ADC最大特点是自带 UART 接口不用像传统 ADC 那样通过 SPI/I2C 和主控打交道特别适合主控 UART 资源富余、又希望简化隔离设计的场合。片上还集成了可编程增益放大器、两个激励电流源、内部温度传感器以及针对 RTD 和热电偶的专门优化属于那种“为测温而生”的器件。dsPIC33EP512MU814 则是 Microchip 的 16 位数字信号控制器512KB 闪存、48KB RAM外设里最显眼的就是一大排 UART 和 DMA拿来跑温度采集主逻辑、通信协议栈甚至后续的 PID 控制都绰绰有余。这套组合解决的问题很明确在工业控制柜和 HVAC 风管、水路现场稳定可靠地采集多路铂电阻和热电偶温度并把数据交给主控做显示、上报和控制。适合参考这篇内容的人主要是正在做温度采集板、工业 IoT 数据采集终端或者想把模拟前端和数字主控分开设计的朋友。下面我按自己做项目时的真实顺序来讲。1. 先把方案选型说清楚为什么是这两颗1.1 温度采集部分为什么选 ADS122U04IPWR做温度采集很多人第一反应是拿一颗通用 24 位 ADC 比如 ADS1256 或 LTC2400 硬怼。但真到了工业现场你会发现需求没那么简单。工业现场往往要同时接 PT100、PT1000、K 型热电偶、NTC 这几种传感器它们的信号幅度和工作方式差异很大。PT100 在 0℃ 时是 100Ω通上激励电流后在 ADC 输入端只有几十毫伏的压降K 型热电偶在几百摄氏度时热电势也就二十毫伏上下。如果靠外部运放去搭信号调理电路每一路的电阻网络、放大倍数、滤波参数都得重新算板子面积和物料清单都会失控。ADS122U04IPWR 把这些东西都收进芯片里了。它内置 PGA增益从 1 到 128 可编程热电偶这种微伏级信号也能直接怼到 ADC 输入端。两个恒流源可以拿来给铂电阻提供激励内部精密基准和比例式测量模式还能把电源波动、基准漂移带来的误差压到很低。更妙的还是它的 UART 接口——我最初看到这个设计时愣了一下后来才回过味来在需要做隔离的系统里UART 比 SPI 好隔离得多两侧只拉两根线用数字隔离器隔一下主控侧完全不用管时钟同步的事。1.2 主控侧 dsPIC33EP512MU814 够不够用dsPIC33EP512MU814 这颗料光看名字里的 MU 后缀就知道是大封装版本144 脚外设资源丰富到有点“浪费”。但做工业温度采集我恰恰看重的是它那种“资源冗余”带来的安全感。温度采集本身是个慢过程ADS122U04IPWR 的数据率最高 2kSPS实际上对于温度变化每秒几十个样本已经很快了主控根本不需要多高的性能。真正的压力来自通信和协议现场总线要上传数据、人机界面要刷新、还要同时管理多路 ADC 的轮询调度这种多任务场景下UART 数量和 DMA 通道数量往往比 CPU 主频更关键。还有一个容易忽略的点MU814 这颗 DSCs 的电源域和 IO 电平比较宽容不像某些 3.3V 单片机那样对引脚过压那么敏感。工业现场的接线端子有时会被误接到 24V 或者被静电打一下宽压 IO 和较强的驱动能力让你不至于一接错线就烧主控。加上 Microchip 的 MPLAB Harmony 框架对 UART、DMA 这些外设的抽象做得挺顺手固件开发速度能快不少。1.3 组合之后的价值模块化与隔离设计变得简单这套组合真正打动我的地方是把“模拟采集”和“数字处理”两个域分得很开。ADS122U04IPWR 放在传感器端子附近dsPIC33EP512MU814 放在主控板中央两者中间用 UART 连接中间塞一个数字隔离器电气上的隔离问题就解决了一大半。测温芯片和主控不共地、不共享模拟电源数字噪声不会再顺着地线串进模拟前端。如果换成 SPI 接口隔离方案不是不能做但 SPI 的时钟线和数据线之间时序约束比较讲究隔离芯片的传播延迟还要专门挑匹配的型号很烦。UART 天生就是异步通信波特率只要两边对准隔离芯片哪怕延迟一点也不会破坏时序。这一点在我看来是这套组合最大的隐性优势。2. 工业与 HVAC 温度测量的原理和关键计算2.1 RTD三线制铂电阻怎么消除导线电阻铂电阻测温的原理不用多说就是电阻随温度变化。真正麻烦的地方在于怎么把“电阻变化”变成“ADC 能读的电压”同时还要抵消导线电阻的影响。一个简单的两线制接法把 PT100 用两根长线拉到 ADC 输入端线电阻就直接串进了测量回路。假设线阻 5Ω对应 PT100 大约 12℃ 的偏差这在 HVAC 管道测温和工业设备监控里完全不能接受。所以工程上普遍用三线制或四线制。ADS122U04IPWR 的好处是内置两个激励电流源 IIDAC1 和 IIDAC2接法很直观一个电流源从 PT100 的一端灌进去流经传感器和其中一根导线后从另一端回来另一个电流源以同样大小从另一根导线灌进去方向是去抵消第一根导线上压降。这样做的前提是两根导线的电阻一致实际铜线在两根芯线上确实能做到这一点。计算导线电阻产生的电压误差时我习惯写成 ΔV IIDAC × (R_LA - R_LB)三线制里 R_LA 和 R_LB 越对称这个误差就越小。2.2 热电偶小信号放大与冷端补偿热电偶的原理是两种不同金属在温度差下产生热电势它输出的是差分毫伏信号信号本身幅值很小。以 K 型热电偶为例0℃ 到 600℃ 大约对应 0mV 到 24.9mV平均灵敏度 40µV/℃。这种小信号如果不用 PGA 直接进 ADC24 位分辨率再高也是白搭因为 LSB 对应的电压可能比噪声还小所以 PGA 增益一定要针对热电偶的满量程信号算好。更关键的是冷端补偿。热电偶测的是热端和冷端的温差冷端通常在接线端子那里环境温度一直在变。如果不补偿夏天和冬天同一根热电偶读出来能差十几度。解法是让 ADC 芯片自己感知冷端温度。ADS122U04IPWR 内部带一个二极管温度传感器我把它使能后采内部温度再用软件把冷端对应的毫伏电压加上去。这就是为什么我不能因为懒省事把内部温度传感器关掉后面有一节专门讲这个坑。2.3 参数计算示例把量程和增益对上给一组我当时实际算过的参数方便你复现。假设 PT100 测量范围是 0℃ 到 200℃电流源 IIDAC 设为 250µA外部基准电阻选 1620Ω。那么基准电压 Vref 250µA × 1620Ω 405mV。比例式测量下RTD 两端产生的最大电压发生在 200℃ 时电阻约 177Ω电压 250µA × (177Ω 线阻约 1Ω) ≈ 44.5mV。PGA 增益选 8则满量程为 0.405V / 8 50.6mV44.5mV 没有超量程0℃ 对应 25mV正好落在量程中段图像非常漂亮。热电偶这边K 型测 -50℃ 到 800℃ 时热电势大约 -1.8mV 到 33.3mV。PGA 增益选 8 到 32 之间都行如果只要有上限 500℃PGA16 的满量程是 405mV / 16 25.3mV就有点紧我最后选了 PGA32满量程 12.6mV 又太小。所以这类计算不能凭感觉先把量程定死再把 Vref、PGA、传感器最大输出套进去算一遍有余量再往下走。3. 硬件电路设计与布局细节3.1 ADS122U04IPWR 外围电路电源、基准、滤波先画最小系统AVDD 和 DVDD 我都给 3.3V中间串一个 10Ω 电阻和 1µF 陶瓷电容形成一点简单的电源滤波。AVDD 和 DVDD 之间用磁珠隔一下减少数字开关噪声往模拟电源里窜。基准电压那一路我单独接了一个精密电阻 Rref 到 REFP 与 REFN 之间Rref 必须用低温漂的 0.1% 电阻因为整个测量的比例基准都压在它身上。有的设计图省事直接用内部 2.048V 基准不是不行但比例式测温的意义就没有了。输入端的 RC 滤波是必做的。工业现场的变频器、电机、开关电源会把高频噪声耦合进传感器线RC 滤波能吃掉很大一部分。我在每个模拟输入与 ADC 之间放了 1kΩ 电阻加 0.1µF 电容构成约 1.6kHz 的低通滤波器这个频率对温度信号来说完全够用。还有人会问要不要放 TVS 管我的经验是传感器可能被雷击或误接高压时宁可多加一对钳位二极管也别指望芯片里面的 ESD 结构能扛住。3.2 与 dsPIC33EP512MU814 的连接ADS122U04IPWR 的 UART 接口典型接法就是 TX、RX 两根线和 dsPIC33EP512MU814 的对应 UART 交叉相连。需要注意的一点是电平匹配。MU814 的 IO 如果工作在 3.3V直接连没问题如果需要用 5V 供电的系统中间必须加电平转换或者用隔离器。我手头这台板子上DSCT 和 ADC 之间放了一颗数字隔离器一方面解决隔离问题另一方面顺带把电平也换了。UART 波特率我用的 115200对测温这种低速应用来说已经很快了一帧转换结果 32 bit 很快就能传完。更好的做法是给 ADC 芯片提供一个外部时钟源否则它内部 RC 振荡器的精度一般波特率误差大了以后连续跑几小时偶发通信错误会让人头大。3.3 PCB 布线里的模拟地处理如果你画过带 Δ-Σ ADC 的板子应该听过“单点接地”和“模拟地分割”这种说法。ADS122U04IPWR 这种芯片我踩过的最大的坑不是地没分割而是把模拟地分割成一小块孤岛结果回流路径断了噪声反而变大。我的经验是底层整片铺地把 AVSS、REPN、模拟输入滤波器的地都就近接到主地上只在 ADC 附近留出一块干净的模拟铜皮避免数字信号线直接在模拟输入走线下方穿过。另一个细节是传感器端子排布。工业温度采集板经常是 8 路甚至 16 路输入端子排在一排如果不做屏蔽和间距规划相邻通道之间容易串扰。我把输入端子分成两组强电和弱点隔开传感器差分线的正负两根信号尽量贴着走减少环路面积。环路面积越大越容易捡到磁场噪声这个在后期的 EFT 测试里体会特别深。4. 固件实现从 UART 驱动到温度换算4.1 初始化与寄存器配置ADS122U04IPWR 的初始化逻辑不复杂但因为它用 UART 传递命令很多人第一次上手会卡在命令帧格式上。其实命令就是一个字节带参数。我先把配置函数列出来#define ADS122U04_CMD_WREG 0x40 #define ADS122U04_CMD_RREG 0x20 #define ADS122U04_CMD_START 0x02 #define ADS122U04_CMD_STOP 0x03 #define ADS122U04_CMD_RDATA 0x1F #define ADS122U04_REG_CNF0 0x00 #define ADS122U04_REG_CNF1 0x01 #define ADS122U04_REG_CNF2 0x02 #define ADS122U04_REG_CNF3 0x03 void adc_init(void) { uint8_t cnf[4]; cnf[0] 0x00; // 通道选择、PGA直接接入等具体位域按数据手册表格设置 cnf[1] 0x00; // PGA增益、数据率 cnf[2] 0x00; // 基准选择、转换模式 cnf[3] 0x00; // 可选用内部温度传感器热电偶模式要打开 adc_write_regs(ADS122U04_REG_CNF0, cnf, 4); adc_send_cmd(ADS122U04_CMD_START); }这里我不逐位贴出来因为不同版本数据手册里的位域排列容易让人记混而且每个人量程不一样。我自己的做法是在代码里写一个adc_write_regs()把寄存器数组和命令串到 UART 上发出去然后拿逻辑分析仪抓波形核对。4.2 读取转换数据与状态判断数据读取的流程是写启动命令后等待 DRDY或者干脆延时等待转换完成然后发 RDATA 命令读回数据。ADS122U04IPWR 的转换结果我记得是 24 位帧里还带一个命令响应字节。所以我习惯直接收 4 字节解析时取后三个字节组合成有符号数。int32_t adc_read_result(void) { uint8_t buf[4]; int32_t raw; adc_send_cmd(ADS122U04_CMD_RDATA); if (uart_receive(buf, 4, 100) ! 4) { return INT32_MIN; // 通信异常标记 } raw ((int32_t)buf[1] 16) | ((int32_t)buf[2] 8) | buf[3]; if (raw 0x800000) { raw | ~0xFFFFFF; // 符号扩展 } return raw; }读回来的原始码是不能直接用的要按比例式测量的公式换算成实际温度。PA0 拿比例式转换来说温度对应的电阻 Rrtd (raw_code / 增益转换的数值) × Rref。用查找表和插值法把电阻值换算成温度是最稳妥的。工业上也有直接套 Callendar-Van Dusen 方程的但对我来说烧录一张 0.1℃ 步进的分度表进去查表插值既简单又不会出现公式迭代不收敛的问题。4.3 温度换算与滤波算法ADC 原始码带来的第一个问题就是噪声。24 位分辨率听着厉害实际工业现场的末位跳动动辄十几个 LSB直接拿来用显示的温度会抖得没法看。我在主控里加了一级简单的滑动平均滤波窗口取 16 个点对温度这种慢变量非常合适。滑动平均比一阶低通滤波更容易调时间常数直接由窗口大小控制。换算和滤波这部分我习惯把每一步分开方便在线调试时定位问题float adc_code_to_temp_rtd(int32_t raw) { float rrtd (float)raw * RREF / ADS_FULL_SCALE_CODE / PGA_GAIN; float temp lookup_pt100_table(rrtd); // 分段线性插值 return temp; }热电偶换算是另一套流程先读内部温度传感器得到冷端温度在热电偶分度表里查出冷端对应的毫伏值再加上 ADC 测到的热电势毫伏最后用总毫伏反查分度表得出热端温度。这里有个容易弄反的顺序先把冷端电压加上再去查表而不是把两个温度相加。说到底热电偶输出的是电压不是温度。5. 实际项目中踩过的坑与排查方法5.1 读数漂移和噪声干扰现场测试时出现过很邪门的现象板子在实验室怎么测都稳一到现场温度读数就跟着旁边的变频器启停一起跳。排查到最后问题出在 ADC 的基准电阻上。我把 Rref 放在了距离端子比较远的位置高频噪声通过寄生电容耦合进基准引脚直接把测量基准给污染了。解决办法是给 Rref 两端并上 0.1µF 的电容再把 Rref 挪到靠近 ADC 基准引脚的位置。另一个高频噪声源是热电偶延长线。热电偶延长线本身阻抗低但长度一拖十几米就成了天线。我后来在输入端加了共模电感以及在软件里把 ADC 的数据率从 2kSPS 降到 200SPS让内置数字滤波器把高频干扰滤得更彻底。降数据率这个操作对温度采集几乎无损但对噪声抑制提升非常明显。5.2 冷端补偿不准有一版样机测试时K 型热电偶常温读数总是偏高 2℃ 到 3℃。刚开始我怀疑是热电偶本身不准后来拿冰点炉去校验发现热端没问题冷端补偿有问题。原因很细内部温度传感器测的是芯片附近温度而我板子上冷端接头的位置在接线端子处中间隔了一个电源芯片散热导致两边温度差了 2℃ 多。后来我把接线端子挪远一些同时在冷端接头附近贴了一个精密 NTC用主控的 ADC 单独采集这个 NTC 做冷端补偿来源不用 ADS122U04IPWR 内部的温度传感器。这样做的代价是多占一路输入和一点软件复杂度但冷端补偿的准确度确实提升了一个档次。如果你不想加 NTC至少要把 PCB 上的冷端区域做热隔离别让电源器件和它靠得太近。5.3 UART 通信异常与波特率偏差这可能是 ADS122U04IPWR 用户问得最多的一类问题。现象是上电后前几分钟一切正常跑着跑着读到一堆 0xFF或者 ADC 没反应。我排查的时候用逻辑分析仪抓了 UART 波形发现数据帧里的停止位已经被压缩得很窄典型的波特率偏差。ADS122U04IPWR 内部 RC 振荡器本身精度有限温度一变振荡频率就漂UART 的波特率也跟着偏。解决手段有几个第一有条件就给它外部晶振第二把 UART 波特率从 115200 降到 9600波特率越低容忍偏差的窗口越宽第三在固件里对 ADC 的应答做超时重发机制别一收到错误就不管了。我实际项目里是加外部晶振加 9600 波特率通讯跑一个月也没再出问题。5.4 多通道扫描时的稳定时间ADS122U04IPWR 虽然有 4 个输入通道但切换通道后需要等模拟前端稳定不是切过去立刻就能读准。尤其是从大信号通道切到小信号通道前一个通道的残留电荷会影响后面几次转换。我刚开始搞快速扫描时把 4 个通道的数据直接连续读结果相邻通道之间出现明显的串扰。解决方法是每次切换通道后丢弃前两组转换结果从第三组才开始记录。对温度应用来说多扔两组数据根本不伤毫毛但这个操作让数据的可信度立刻上来了。严格来说还要考虑输入滤波电容的充放电时间丢弃两到三次转换已经足够。6. 写在最后一点工程上的心得这套基于 ADS122U04IPWR 和 dsPIC33EP512MU814 的温度测量方案整体做下来给我的感觉是选型选对了后面所有的工作都能顺手不少。UART 接口的 ADC 让模拟前端和数字主控之间的鸿沟变得很容易跨越而 DSP 内核的主控又给了你足够的算力去做滤波、查表、协议处理和故障诊断。如果你正好也要做多路温度采集不妨参考这个架构把隔离分开、把模拟电路放得干净一些再留够冗余的 UART 和 DMA。最后分享一个我在量产前才加上的功能诊断模式。利用 ADS122U04IPWR 的 PGA 和输入通道特性定期往传感器端注入一个已知电流测量回路是否开路或短路。PT100 开路时读数会瞬间飘到满量程热电偶开路时读数会跳到一个极端值这些特征都可以在软件里做成状态位上报给上位机。有了这一层设备在工业现场出了故障才能自我报告而不是等用户打电话说“读数不对”了你才去现场查。温度采集从来都不只是把温度读出来可靠性和可维护性才是做产品的分水岭。
企业数字化 ERP 产品动态
相关推荐
ADS122U04+STM32L476RG:工业与HVAC精密温度采集系统设计 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 7:37:45
ADS122U04搭配STM32F407ZG:高精度多通道温度采集方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 7:37:45
工业测温实战:ADS122U04与PIC18F85J50的多路温度采集方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 7:37:45
【随笔1102】LangGraph 时间旅行 一、LangGraph是什么
顾名思义,就是一种适用于AI大模型运行的图结构。
你可以在图里声明节点(官方说是超级节点 Super Step)
节点也分为多种类型,比如Agent Node,调用大模型,按照提示词执行;还有… · 2026/11/5 7:58:54
否定之否定规律的底层本质| 赵杰 | 量子哲学 作者:赵杰清华大学硕士、微美全息云科技(NASDAQ:WIMI)董事长、微算法科技(NASDAQ:MLGO)董事长、育杰奖学金创始人一、爱子论核心公理(一切“肯定、否定、否定之否定”的量子本体根基… · 2026/11/5 7:57:53
jvm中的强软弱虚4种引用类型与gc的关系 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 7:57:53
小白程序员轻松入门大模型,AI大数据开发工程师进阶指南 本文深入剖析AI大数据开发工程师的核心能力与岗位需求,对比传统大数据工程师,指出Spark/Flink等基础技能已不再是优势。文章详细解析了三类典型岗位(业务型、模型导向型、AI数据基础设施工程师)的选拔逻辑,并总结了企业… · 2026/11/5 7:57:53
FHE层级 全同态加密的概念同态:密文计算的结果解密后,等于明文计算的结果。即 Dec(Enc(a)⊕Enc(b))ab全同态:支持任意深度的加法和乘法运算(不仅是单一操作,而且可以无限次组合)。第一层:密码学基础与底… · 2026/11/5 7:57: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
多智能体协作系统架构设计与实践优化 1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39
大模型系统性入门实战指南:从原理到部署微调的全链路路线 提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39
鸿蒙文件系统沙箱机制解析与开发实践 1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39
双极步进电机控制实战: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