尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
PJ85718DM与PIC18F55K42实现HVAC本地远程温度采集
做 HVAC 控制器调试的那段日子我最大的体会就是“温度不是一个点而是一张网”。一个标准的风冷热泵机组少则三五个测温点多则十几个压缩机排气温度、回气温度、冷凝器出口水温、蒸发器进出水温、机房环境温度……全都得进控制器。如果只是把传感器堆到一块板子上那倒简单难的是分布式布置——有的探头就在主控旁边几十厘米线缆有的装在风道深处或者多联机外机侧一走就是二三十米。我这次要聊的项目就是用 PJ85718DM 和 PIC18F55K42 这套组合把“本地温度”和“远程温度”统一收进同一个轮询框架里。PJ85718DM 是一颗带 I2C 接口的数字温度传感器PIC18F55K42 则是某半导体厂商 K42 系列里的一颗 8 位主控带 12 位 ADC 和硬件可配置逻辑用来做多点温度采集非常顺手。这套方案在嵌入式和 HVAC 领域都有代表性适合正在搭集中式环境监控板、冷链设备控制器或者机组控制器的朋友参考。先交代一句这篇文章里的步骤和参数大部分来自我实际做过的类似工程小部分属于同类数字温度传感器的通用做法。具体到 PJ85718DM 的寄存器地址和精度等级还是要以你手上那版数据手册为准。1. 先把需求讲清楚为什么“本地温度”和“远程温度”必须分开设计1.1 HVAC 温控系统的测温分布特点HVAC 系统的测温点按物理位置可以分为两类。一类是“近机侧”的点位主板周围的环境温度、电源模块附近的温升、控制器壳体内壁的温度这些点离 MCU 很近线缆长度通常不超过 30 厘米信号质量几乎不用操心。另一类是“远置”的点位空调箱的送风温度、回风温度、冷冻水管进出口温度、冷库的库温这些传感器往往装在金属风管、水管保温层里或者干脆挂在房间的墙壁上离主控板少则几米多则几十米。这两种点位如果简单粗暴地全部用同一套接线方式一定会出问题。本地点位可以随便用 I2C 直连只要规范布线数据怎么读都稳定远程点位就不一样了I2C 总线对线缆电容非常敏感线一长就容易出现时序失真、数据错位而且 HVAC 现场从来不是安静的电磁环境——风机启动、变频器动作、压缩机吸合电源线里的毛刺和空间辐射随时可以干扰一根裸露的总线。所以这个项目的起点不是“选什么芯片”而是先确认一点本地点位和远程点位在电气设计上必须做差异化处理。我把这一点想清楚之后后面的电路和代码才没有反复返工。1.2 本地与远程在电气设计上的本质区别先说本地。本地传感器和 MCU 靠近I2C 走线只有十几厘米这时候最需要注意的是传感器的供电干净不干净、地址线拉没拉到位、上拉电阻阻值是否匹配以及传感器附近有没有大功率发热器件造成自热。这些都属于“常规排布问题”不需要额外的总线驱动器件。远程则完全是另一套逻辑。I2C 标准模式下总线电容一般建议控制在 400pF 以内实际工程里我习惯按 150pF 留余量。普通屏蔽线的分布电容大约每米 50100pF算一下就知道超过三五米之后信号边沿就开始变“馒头”了。如果还按标准 4.7kΩ 上拉电阻工作传输的“1”会被线缆电容拉得很慢主设备很容易误判电平。所以远程测温我必须做两件事之一要么加总线缓冲器把 I2C 分段驱动把每段线缆电容控制在规范以内要么降低速率把时钟压到 30kHz 甚至更低并且精调上拉电阻。第一个方案可以跑得更远更稳第二个方案简单但治标不治本。1.3 项目整体架构一句话总结整个项目一句话可以概括为PIC18F55K42 作为 I2C 主设备板上短距离直接挂 PJ85718DM 测本地温度板外通过带缓冲的 I2C 长线挂若干颗 PJ85718DM 测远程温度MCU 轮询完所有点位后把温度经过滤波、限幅、标定偏移处理后用于显示、通信和过温保护逻辑。这个架构最大的好处是统一。所有传感器型号一样寄存器操作一样固件里一套读取函数覆盖全部点位。不用像某些方案那样本地用数字传感器、远程用 433M 无线或者 4-20mA 变送器维护时恨不得带三套工具。后面我会按这个架构把硬件、软件、调试逐段展开。2. 器件选型的底层逻辑PJ85718DM 与 PIC18F55K42 为什么配2.1 PJ85718DM一颗 I2C 数字温度传感器的典型姿态PJ85718DM 这类数字温度传感器外形通常就是一颗 SOT-23-5 或者 SOT-23-6 的小封装引脚就四五个电源、地、SDA、SCL外加一两个地址选择引脚。它的内部核心是半导体 PN 结测温加一个模数转换器温度变化会引起 PN 结正向压降线性变化ADC 把压降转换成数字量再通过 I2C 接口输出。以我经手过的同类数字传感器为参考典型参数大致是这样测温范围 -55℃ 到 125℃精度 ±0.5℃在 -20℃ 到 70℃ 区间可以做到更小分辨率 0.0625℃ 也就是 12 位平均工作电流在微安到几百微安级别供电 2.7V 到 5.5VI2C 速率支持标准模式 100k 和快速模式 400k。有些型号还带一个过热输出引脚温度超过设定阈值后可以直接拉低报警不需要主控参与。对 HVAC 项目来说0.0625℃ 的分辨率完全够用甚至有点浪费。风机盘管、水系统的温度控制在 0.1℃ 级别就已经很精细了真正影响控制效果的从来不是分辨率而是传感器的安装方式和标定一致性。不过分辨率高有个附带好处软件滤波之后显示值可以很平滑不会因为最低位跳动让用户觉得温度在乱晃。2.2 PIC18F55K42K42 系列里适合测温器的边角料PIC18F55K42 这颗 8 位 MCU第一眼看上去规格不算华丽但在这个项目里非常对路。K42 系列最大的特点是片上的 12 位 ADC 带计算核心硬件可以自动做多次采样平均、阈值比较甚至数字滤波CPU 只需要在转换完成后读结果。温度传感器本身就是数字的这条特性暂时用不到 ADC 上但 MCU 的另一个能力——可配置逻辑单元CLC——在过温保护电路里很值钱。具体到这个项目我看中 PIC18F55K42 的几个点第一是它有多路 I2C/SPI 外设作为总线主设备挂多个从设备很从容第二是它工作在 2.7V 到 5V 范围内直接兼容 PJ85718DM 的宽供电特性不用做电平转换第三是它的 I/O 带电流驱动能力尚可驱动板载 LED 指示或者通过三极管驱动继电器都够用第四是它的中断系统响应快I2C 事件中断可以配合状态机不让主循环卡在总线等待上。还有一个隐藏的优势K42 系列在业内比较成熟编译器和调试器支持完善代码库资料多工程上手成本低。做项目最难的不是芯片不够强而是资料太少、坑要自己踩一圈才摸清选一颗生态成熟的 MCU 能省下不少时间。2.3 这套选型解决了哪些实际问题把这两颗芯片放到一起解决的实际问题有三个。第一个是“单总线协议生态的局限”。很多人做远程测温第一反应是单总线传感器因为单总线只需要一根数据线布线确实省。但单总线时序敏感时序要求严苛软件模拟容易踩坑而且同一组设备不多时不需要唯一的器件序号现场更换传感器后固件里还要处理新序列号。PJ85718DM 走 I2C每个传感器靠硬件地址区分同一颗 MCU 的理论接入数量就是 I2C 地址位数的上限管理起来直观得多。第二个是“模拟量远程传输的抗干扰成本”。如果从零开始搭模拟温度变送器方案几百毫伏级别的信号拉到几十米外要么上屏蔽差分要么上 4-20mA 环路成本都明显更高。数字传感器把电压转成数字量在源头就完成了抗干扰的第一步后面只需保证总线电平能被可靠识别。第三个是“固件统一性”。一套读取函数通吃本地和远程所有点位校准偏移和传感器 ID 按节点号记在一个表格里后续换传感器、加点位都不用改动主逻辑。这个收益在做完第一版固件之后特别明显。3. 硬件上怎么搭本地点位的直连与远程点位的总线延伸3.1 本地测温的最小电路上拉、去耦、地址本地部分是最小系统。PJ85718DM 的 VCC 接 3.3V 或者 5V对地放一颗 100nF 陶瓷电容做去耦位置一定要尽量贴近芯片引脚。SDA、SCL 各接一颗上拉电阻到 VCC阻值我习惯在 4.7kΩ 到 10kΩ 之间选短距离下两者差别不大选 4.7kΩ 可以获得更陡的上升沿。地址引脚是 I2C 通信里最容易忽略的地方。PJ85718DM 如果有 A0/A1 甚至 A2 引脚本地板上这一颗可以直接接地固定下来逻辑地址比如 0x48七位地址这样远程传感器即使不加电或者短路也不影响总线上的地址分配。如果 MCU 附近要放两颗本地传感器就通过地址引脚组合区分注意 PCB 上给地址引脚并一个下拉电阻防止焊盘虚焊时引脚悬空误接地。电源方面还要考虑一个问题HVAC 控制器板上往往有继电器。继电器吸合瞬间电流冲击很大可能会把 VCC 拉低一个明显的尖峰让传感器瞬间复位或者读数异常。我的处理是在 PJ85718DM 的供电入口加一颗 10Ω 电阻和 10uF 电容组成一个小型 RC 滤波实测继电器动作时读数据不再丢包。3.2 远程测温的 I2C 总线延伸线缆、缓冲、拓扑远程部分是这个项目的重头戏。先说结论不加任何缓冲器件、直接拉 10 米 I2C 线在 HVAC 现场大概率会翻车至少我不推荐这么干。典型翻车现场是这样的传感器装在风管里接线用四芯屏蔽线长度大概 8 米主控端上拉 4.7kΩ标准 100k I2C 速率。运行起来 80% 的时间读数正常偶尔读到 0xFFFF 或者连续几个字节 CRC 不对。用示波器看 SDA 线上的波形低电平没问题高电平上升沿慢得像充电曲线到了靠近阈值区域的时间点已经超过主设备采样窗口于是误读。我会建议的做法是分成两段。主控到现场接线盒之间用“驱动端缓冲器”的方式I2C 缓冲器把总线电容隔离成两段每段都不超过 150pF 的容性负载。以每米 70pF 估算一段 1.5 米内的板内总线轻松满足另一段 5 米线缆加远端节点也刚好在余量内。具体拓扑可以这样做主控板上的 I2C 总线先接一颗缓冲器缓冲器输出接到长线连接器。长线末端再接一颗缓冲器作为“远端分支点”然后从分支点分出最长 1~2 米的小段总线挂若干颗远程传感器。两个缓冲器之间的长线虽然也贡献电容但缓冲器会重新驱动信号相当于每段总线电容都被“重置”了。这样设计后总距离可以做到 20 米以上远超过裸总线的能力。如果实在简化到不加缓冲器那就必须降速。我曾经把 I2C 时钟降到 20kHz上拉改到 2.2kΩ线长 3 米内勉强稳定。但 20kHz 会让远程点位一多、轮询周期明显变长因此只能作为临场应急手段不建议做进正式产品。3.3 供电与抗干扰设计中的几个细节远程节点供电最稳妥的做法是 24V DC 电源传到远端节点在传感器附近用稳压器降到 3.3V 或 5V再给 PJ85718DM 供电。尽量不要用长线直接拉 MCU 的 5V 到远端否则线压降和现场的电源噪声都会直接影响传感器测量。屏蔽线该怎么接也有讲究。屏蔽层必须在主控端单点接地远端悬空或者通过 1nF 电容接地以提供射频泄放路径同时又不会形成地环路。地环路一旦形成屏蔽层里就有工频电流跑传感器读数会出现周期性的小幅度漂移排查起来非常费劲。线缆选型上我用的是 4 芯 0.3mm² 或者 0.5mm² 的铜网屏蔽线两根走 SDA/SCL一根走电源一根走地。把电源和地尽量隔在信号线旁边利用地线做一定的隔离。有条件的话SDA 和 SCL 之间保持绞合更好即使普通平行线芯只要屏蔽层可靠工程上也能用。4. 软件部分从 I2C 驱动到温度值上屏4.1 I2C 主模式的初始化与轮询框架软件的第一步是初始化 MCU 的 I2C 主模式。PIC18F55K42 的 MSSP/I2C 模块支持主模式、从模式和多主模式这里用主模式就够了。初始化时重点设置三件事时钟速率、波特率发生器预分频、以及总线空闲检测。时钟速率的计算可以直接套公式。举个例子若主时钟为 16MHz、目标 I2C 速率为 100k则波特率寄存器值约等于 16MHz / (4 × 100k) 40再配合相应的预分频配置即可。远程带缓冲的情况下我通常把速率定在 100k稳定性和速度平衡比较好如果某天发现现场干扰强我会全局降成 50k只改一个宏定义的地方就行。轮询框架我习惯用一个简单的状态机typedef enum { IDLE, SEND_ADDR_W, SEND_REG, REPEAT_START, SEND_ADDR_R, READ_DATA, STOP } i2c_state_t;主循环每隔一固定周期调用一次状态机状态机不阻塞在总线上这样 MCU 还能同时处理键盘、显示和继电器逻辑。如果数据还没准备好就保持当前状态空闲时间让给别的任务。4.2 寄存器读取与温度数据换算读取 PJ85718DM 的温度值流程一般是先发器件地址加写位再发温度寄存器地址然后发重复起始信号接着发器件地址加读位最后连续读两个字节温度数据通常占两个字节。以 12 位分辨率、0.0625℃ 为 LSB 的常见格式为例读回来的 16 位数据中前 12 位是有效温度数据后 4 位是低半字节通常清零或保留。换算公式很直接int16_t raw ((uint16_t)buf[0] 8) | buf[1]; // 12 位数据右移 4 位后乘以 LSB 0.0625 就是摄氏度 float tempC (raw 4) * 0.0625f;如果传感器存在负温度寄存器里会以二进制补码表示比如 -25℃ 对应 raw 的高 12 位为 0xFE70右移后做有符号数运算即可。这个地方最容易踩坑如果乱用无符号类型负温度一出来就是两百多度控制逻辑立刻误动作。软件里我会把浮点尽量少用温度值统一用乘以 16 或乘以 100 的定点数传递。比如用 int16_t 保存 tempC × 100精确到 0.01℃上屏时手动加小数点这样既省 CPU也能避免浮点误差在多次累计后被放大。4.3 滤波、超限保护与数据组织HVAC 现场的读数必须过滤波。取 8 次采样做滑动平均是成本最低、效果也能接受的方案。滑动平均的窗口长度要权衡响应速度和平滑度8 次在 100ms 轮询周期下对应 0.8 秒的响应延时对温度这种大惯性物理量完全没问题。超限保护是我这个项目里很坚持的一环。每一路温度读到后先做合理性检查读到 0xFFFF 说明总线故障读到超出传感器量程的值说明寄存器错位或干扰这两种情况都要单独标记不能直接参与控制计算。我会在数据表里给每个点维护一个错误计数器连续错 3 次就报故障并停止对该点的自动控制输出以免系统开环瞎跑。数据组织上我建了一个简单的结构体数组每个节点对应一个编号、地址、类型本地/远程、校准偏移、滤波值和状态位。这样后面加点位、换传感器地址都只是往表里填一行的事。typedef struct { uint8_t ch_id; uint8_t i2c_addr; uint8_t is_remote; int8_t cal_off; // 偏移单位 0.01℃ int16_t filt_val; // 滤波后值单位 0.01℃ uint8_t fault_cnt; uint8_t status; } temp_node_t;5. 现场真实踩坑记录远程温度出问题的排查过程5.1 远程传感器读数乱跳问题出在接线方式调试时遇到最多的问题是远程传感器读数乱跳。第一次遇到时我先怀疑软件滤波不够把窗口从 4 次加到 16 次结果波动只是变缓并没有消失。再查传感器供电示波器看远端 VCC 纹波 200mV 上下显然不正常。后来一步步排查发现问题是远端地线接法不规范。那台设备的 24V 电源返回路径和信号地走的是同一根长线传感器工作电流变化时地线上产生约 100mV 的压降直接叠加到 I2C 电平判断上。处理方案是把传感器远端的地线单独走一根粗线同时在远端节点加一颗 10μF 电容对地将地线回路的动态阻抗压下去。改完之后纹波降到 30mV 以下读数稳定。这里值得记住的是数字传感器不等于数字信号就绝对抗干扰地线上的压降会影响电平裕量噪声最终会通过 SDA/SCL 的参考地影响判决。5.2 I2C 总线挂死与恢复的方法I2C 总线挂死几乎人人都遇到过。现象是主设备连续多次读到总线忙SDA 被拉低不放。原因通常是某个从设备在上电瞬间输出异常、或者传输过程中被噪声打断导致状态机卡死。软件恢复的办法是时钟恢复主设备在检测到总线忙后主动产生 9 到 16 个时钟脉冲同时观察 SDA 是否恢复高电平。这相当于给卡死的从设备“喂”完整的总线周期让它有机会把内部状态机推到空闲。对应 PIC18F55K42可以直接切换 GPIO 方式模拟 SCL也可以用硬件主模式里的总线恢复功能。硬件上更要防患于未然每个远程节点增加总线释放逻辑也就是在传感器供电上串联一个可控电源开关总线一旦挂死主控先把该路总线的电源断掉 100ms强制所有节点复位再重新枚举。这个方法在恶劣现场特别管用我最终做成了产品里的一个自动恢复机制。5.3 误差问题自热、标定与安装位置温度读数整体偏高 1~2℃这类问题基本跟传感器本身精度没关系大多出在安装方式和自热上。传感器紧贴大功率电阻、继电器或者变压器时局部温度比环境高不少封装引脚焊盘离发热铜皮太近热量也会直接传导进芯片。我在设计布局时会把本地传感器放在板边并且不要铺大面积的铜皮在芯片底下必要时挖掉一小块地铜做热隔离。远程传感器装在风管里时探头不能贴着管壁要用支架悬在气流中间否则测到的更多是管壁温度而不是流体温度。标定方面先把传感器固定好和参考温度计放在同一环境里稳定 30 分钟以上读取差值作为该通道的标定偏移写进结构体里的 cal_off 字段。这个方法不需要高精度恒温箱工程现场足够用。6. 从“能测”到“好用”HVAC 场景的后续扩展6.1 多点轮询与地址规划点位一多轮询顺序和地址规划就要提前做。每个模块上电时先发一个广播校验指令把已存在的传感器地址扫描一遍存放在位表里后续只轮询在位表内的地址遇到故障地址就自动跳过并计数。如果不做在位表总线故障后 MCU 每次都会去访问不存在的地址等待超时的时间白白浪费。地址规划我会按区域划分板载本地传感器统一用低地址远程节点从高地址开始分配代码里用宏定义做好映射。这样即使把两块板子的固件互换也能从地址上快速判断某个通道到底是本地还是远程方便产线组装和售后排查。6.2 故障诊断与报警逻辑设计温度监测不只是数据采集更是整个机组保护机制的数据源。我设计的保护逻辑分三级第一级是正常范围不做动作第二级是预警区间比如水温接近上限的 85%持续超过一定时间后输出预报警同时把风扇从手动切到自动增强档第三级是硬保护直接触发继电器切断压缩机。PIC18F55K42 的可配置逻辑单元在这时就派上用场了。把温度超限比较器的输出经过 CLC 组合直接接到安全继电器控制线上等于在 CPU 之外加了一层纯硬件看门狗。软件偶尔跑飞不做保护动作硬保护照样生效这对无人值守的机房设备很重要。6.3 预留的升级空间从裸机到任务化这套代码我最初是裸机超循环写的主循环里跑轮询时序中断里处理 I2C 事件。当点位加到十几个、还要同时处理 RS-485 通信和液晶屏刷新时裸机代码开始吃力了于是我把任务拆分出来做成简单的协作式调度器再后来想跑实时操作系统也发现很容易因为每个功能模块的接口从一开始就是按独立任务预留的。如果你打算以后扩展我建议第一版就把温度采集模块做成一个独立函数集对外只暴露“读取某个通道当前值”“设置某通道报警阈值”这两个接口主程序其他部分不要直接访问寄存器层。这样无论是加无线模块、加云平台上报还是换 MCU对温度监测模块本身的影响都能降到最小。最后再分享一个个人习惯每次去现场调试 HVAC 温控系统我都会带一个红外测温枪和一根短接好的 I2C 延长转接板。红外枪用来快速核对现场温度是否与屏显一致延长转接板则让我能在不拆线的情况下把总线接到逻辑分析仪上第一时间定位是时序问题还是设备问题。这个习惯帮我省掉了无数次无谓的代码改动也让我对“本地与远程温度到底怎么测才稳”这件事有了更具体的判断标准。你以后调试多点温度系统时不妨也准备一套这样的现场工具实测下来会省心很多。
RELATED

相关推荐

PJ85718DM+TM4C129XNCZAD构建HVAC温度采集与远程上报方案

PJ85718DM+TM4C129XNCZAD构建HVAC温度采集与远程上报方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/22 6:47:11
SQL Server 2008误删数据恢复:恢复模式与日志备份实战

SQL Server 2008误删数据恢复:恢复模式与日志备份实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/22 6:47:11
STM32与PJ85718DM协同实现本地及RS485远程温度监测系统

STM32与PJ85718DM协同实现本地及RS485远程温度监测系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/22 6:47:11
MORE NEWS

更多资讯

📰

OpenCore Legacy Patcher 3.0.0 上手指南:老 Intel Mac 安装最新 macOS 全流程

OpenCore Legacy Patcher 3.0.0 上手指南:老 Intel Mac 安装最新 macOS 全流程 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy P…

📰

RevokeMsgPatcher 微信防撤回补丁:改几个字节,撤回消息本地留底

RevokeMsgPatcher 微信防撤回补丁:改几个字节,撤回消息本地留底 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址…

📰

10 分钟上手 AxisRL:从 Docker 环境到第一条 GRPO 训练命令的完整新手指南

【免费下载链接】axrl AxisRL is an agentic RL post-training framework built on SGLang rollout, Megatron training, and real-world agent workflows. 项目地址: https://gitcode.com/gh_mirrors/ax/axrl 点击查看 免费下载 AxisRL 是一个面向 agentic RL 的 …

📰

焊盘掉了别直接扔板:这招飞线修复,省了几千换板成本

干修板这行,谁没碰过掉焊盘的糟心事?拆芯片没等锡化透就敢硬撬,老板子常年高温烤得铜皮发脆,稍微用点力,“啪”一下焊盘连带表层走线掀起来一小块。新手一瞅直接慌神,完了,板废了,要…

📰

免费换回Win10任务栏:ExplorerPatcher教程

免费换回Win10任务栏:ExplorerPatcher教程 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher ExplorerPatcher是免费开源(…

📰

浏览器相关工具推荐:别再只会装一个 Chrome,真正好用的是这些插件和增强玩法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬