基于PJ85718DM与ATmega6450的嵌入式温度监测系统设计与实现
1. 项目背景与核心需求拆解嵌入式温度监测这件事说起来简单做起来全是细节。我最早接触这类需求是在一个环境控制项目里当时的要求很朴素本地要能看到实时温度远程也要能拿到数据而且两边的数据得对得上。听起来像是随便找个传感器加个无线模块就能搞定的事但真正动手之后才发现从传感器选型到主控搭配再到本地显示和远程传输的协调每一步都有坑。这个项目的核心组合是PJ85718DM和ATmega6450。前者是一颗数字温度传感器后者是一颗8位微控制器。把这两个东西放在一起目标很明确用一颗低功耗、接口简单的温度传感芯片采集本地温度再用一颗资源适中、外设丰富的主控芯片做数据处理和逻辑调度最终实现本地显示和远程上报两条链路并行工作。为什么是这两个器件的组合这背后有几个很实际的考量。PJ85718DM 这类数字温度传感器通常走的是单总线或者I2C之类的串行接口输出已经是数字量不需要额外的ADC采样省去了模拟电路设计和校准的麻烦。ATmega6450 则是经典AVR架构里比较能打的一款引脚多、外设全带多个USART、SPI、I2C接口RAM和Flash也够用跑一个温度监测加通信调度的任务绰绰有余。这个方案适合谁如果你正在做暖通空调控制板、机房环境监控、冷链运输记录仪或者任何需要“本地感知远程回传”的嵌入式温度监测场景这套组合都值得参考。哪怕你用的是别的传感器和主控底层的设计思路和踩坑经验也是通用的。注意PJ85718DM 的具体寄存器定义和通信协议需要以你手头的datasheet为准不同批次的传感器在时序参数上可能有细微差异这一点在后面会详细说。2. 器件选型与硬件设计思路2.1 为什么选数字温度传感器而不是热敏电阻热敏电阻加ADC的方案成本确实低但代价是你要自己做线性化校准还要处理模拟信号的噪声问题。在HVAC这种电磁环境比较复杂的地方模拟走线稍微长一点就容易引入干扰读数跳动会让人很头疼。PJ85718DM 这类数字传感器直接把ADC和信号调理集成在芯片内部输出的是经过校准的数字温度值主控拿到就能用省掉了一整条模拟链路的设计和调试成本。另外数字传感器通常支持多点组网。如果你需要在同一个板子上监测多个位置的温度可以把多颗传感器挂在同一条总线上通过地址区分。这在HVAC应用里很实用比如同时监测回风温度和出风温度只需要两颗传感器加一根总线。2.2 ATmega6450 的资源分配逻辑ATmega6450 的引脚数和外设资源在这个项目里是怎么分配的我当时的做法是这样的传感器接口占用一个I2C或者单总线引脚组具体看PJ85718DM的接口类型。如果是I2C就用硬件TWI如果是单总线就用一个普通GPIO配合软件时序。本地显示占用一个USART或者SPI接口接LCD字符屏或者OLED小屏。如果显示内容简单用USART接串口屏最省事。远程通信占用另一个USART接无线模块或者有线通信模块。ATmega6450有多个USART这一点比很多小封装的AVR芯片方便。调试接口保留一个USART做日志输出或者用ISP接口做在线调试。这样分配下来ATmega6450的引脚是够用的而且各个外设之间不冲突。如果你选的是引脚更少的芯片可能就要在显示和通信之间做取舍或者用软件模拟的方式来省硬件资源。2.3 电源与抗干扰设计HVAC环境里的电源质量通常不会太好电机启停、继电器动作都会在电源线上产生尖峰。温度传感器和主控的供电如果处理不好轻则读数跳动重则芯片复位。我在电源部分做了三层处理第一层是入口处的TVS管和π型滤波把大幅度的尖峰削掉第二层是LDO稳压给传感器和主控提供干净的3.3V或5V第三层是在每个芯片的电源引脚旁边放0.1μF的去耦电容传感器如果离主控较远还要在传感器端再加一个1μF到10μF的储能电容。实操心得去耦电容的位置比容量更重要。我见过有人把0.1μF的电容放在离芯片电源引脚两厘米远的地方结果高频噪声照样串进去。电容要尽量贴近引脚走线要短而粗。3. 温度采集的核心细节与实操要点3.1 PJ85718DM 的通信时序要点数字温度传感器的通信时序是整个项目里最容易出问题的地方。PJ85718DM 如果是单总线接口那它对时序的要求会非常严格微秒级的偏差就可能导致通信失败。ATmega6450 跑在8MHz或者16MHz的时候一条指令的时间是纳秒级用软件延时来凑时序是可行的但要注意编译器优化可能会把你的延时循环优化掉。我的做法是用volatile修饰延时变量或者在关键时序处插入_delay_us()这类精确延时函数。如果是I2C接口硬件TWI外设会帮你处理大部分时序但要注意上拉电阻的阻值选择。总线电容小的时候用4.7kΩ电容大的时候要降到2.2kΩ甚至更低。// 单总线复位脉冲示例伪代码具体时序以datasheet为准 void sensor_reset(void) { set_pin_output(); clear_pin(); // 拉低总线 _delay_us(480); // 保持至少480us set_pin_input(); // 释放总线 _delay_us(70); // 等待传感器响应 // 读取总线电平判断是否存在 }上面这段代码只是示意实际写的时候要严格按照PJ85718DM的datasheet来调整延时参数。不同厂家的单总线传感器在复位脉冲宽度、存在脉冲出现时间上都有差异照搬别的传感器的代码大概率跑不通。3.2 温度数据的解析与校准传感器读回来的原始数据通常是二进制补码格式需要转换成实际温度值。比如12位精度的温度数据低4位是小数部分高8位是整数部分分辨率是0.0625°C。转换的时候要注意符号位的处理负温度不能直接当无符号数算。float parse_temperature(uint16_t raw) { int16_t signed_raw (int16_t)raw; return signed_raw * 0.0625f; }校准方面数字传感器出厂时一般已经校准过了但如果你对精度要求很高可以拿一颗标准温度计做单点或者两点校准。单点校准就是在一个已知温度下记录传感器读数算一个偏移量两点校准是在低温和高温各测一次算偏移量和斜率。对于大多数HVAC应用单点校准就够了因为温度范围通常不会太宽。3.3 采样频率与滤波策略温度变化通常比较慢没必要每秒采几百次。我一般把采样周期设在1秒到5秒之间具体看应用需求。如果是监测室温5秒一次完全够用如果是监测出风温度可能需要1秒一次。采样之后要做滤波。最简单的做法是滑动平均存最近N次的读数每次取平均值。N取8或者16比较合适既能平滑掉随机噪声又不会让响应变得太迟钝。如果噪声比较大可以用中值滤波加滑动平均的组合先去掉明显的异常值再做平滑。注意滤波会引入滞后如果你需要快速响应温度突变滤波窗口就不能设太大。我一般会在代码里留一个参数方便根据现场情况调整。4. 本地显示与远程通信的实现4.1 本地显示方案的选择本地显示这块我试过几种方案。最简单的是用数码管成本低但只能显示数字信息量有限。稍微好一点的是1602或者2004字符LCD能显示温度和状态文字驱动也简单用4位或者8位并口就能搞定。再往上就是OLED小屏显示效果好但驱动复杂一些而且要注意OLED的寿命问题长时间显示固定内容可能会烧屏。在这个项目里我选的是2004字符LCD通过ATmega6450的一个端口做4位并口驱动。为什么用4位而不是8位因为4位模式能省下4个IO口刷新速度虽然慢一半但温度显示这种应用完全感觉不到差异。显示内容我一般会放这几项当前温度、最高温度、最低温度、传感器状态。最高和最低温度是记录值可以手动复位方便观察温度波动范围。传感器状态用来指示通信是否正常如果传感器掉线显示上要能看出来。4.2 远程通信的协议设计远程通信这块核心问题是协议怎么定。我见过有人直接把温度值以ASCII字符串发出去简单粗暴但效率低而且没有校验出错了他也不知道。稍微好一点的做法是定义一个简单的二进制协议包含帧头、地址、命令、数据、校验和。我常用的帧格式是这样的字段长度说明帧头2字节固定值用于帧同步地址1字节设备地址支持多机通信命令1字节区分数据类型如温度上报、状态查询数据长度1字节后续数据的字节数数据N字节实际载荷校验1字节从地址到数据的累加和或CRC校验和用累加和就够了计算简单对温度这种小数据量来说足够用。如果通信环境特别差可以上CRC8但代码量会增加一些。远程通信的物理层可以是有线RS485或者无线LoRa、Zigbee等。RS485在有线场景下很稳传输距离远抗干扰能力强适合HVAC这种固定安装的场景。无线方案适合改造项目不用重新布线但要注意信号覆盖和功耗问题。4.3 本地与远程的数据一致性本地显示和远程上报的数据必须一致这一点看起来是废话但实际做的时候很容易出问题。比如你在主循环里先更新本地显示再去处理远程通信如果远程通信阻塞了本地显示的温度可能已经过时了。我的做法是在定时器中断里做温度采集把最新值存到一个全局变量里本地显示和远程通信都从这个变量读数据。这样两边拿到的永远是最新值不会出现本地显示25.3°C而远程收到24.8°C的情况。volatile float g_current_temp; volatile uint8_t g_temp_valid; // 定时器中断服务程序 ISR(TIMER1_COMPA_vect) { float temp read_sensor_temperature(); if (temp -100.0f temp 200.0f) { // 合理性检查 g_current_temp temp; g_temp_valid 1; } else { g_temp_valid 0; } }合理性检查很重要。传感器故障的时候可能会返回一个极端值比如-1000°C或者500°C如果不做检查直接显示和上报会误导用户。我一般把有效范围设在-40°C到125°C之间超出这个范围就标记为无效。5. 常见问题与排查技巧实录5.1 传感器读数跳动或固定不变这是最常见的问题原因通常有三个电源噪声、通信时序偏差、传感器本身故障。排查顺序我一般是这样的先用示波器看传感器电源引脚上的纹波如果纹波超过50mV就要加强滤波。然后看通信波形用逻辑分析仪抓一次完整的通信过程对照datasheet检查时序参数。如果波形没问题但读数还是不对换一颗传感器试试排除器件本身的问题。读数固定不变的情况多半是通信根本没成功主控读到的是一直是高电平或者一直是低电平。这时候要检查上拉电阻是否接好总线是否被拉死。5.2 远程通信丢包或误码远程通信出问题先区分是物理层还是协议层。物理层的问题表现为信号质量差、通信距离短、误码率高协议层的问题表现为偶尔丢一帧、校验失败。物理层的排查检查天线是否匹配、线缆是否屏蔽、接地是否良好。RS485的话还要检查终端电阻是否接对A/B线有没有接反。协议层的排查在发送端和接收端同时抓数据对比看是哪一帧出了问题。如果发送端正常但接收端收不到可能是接收端的缓冲区溢出或者中断处理不及时。实操心得我习惯在协议里加一个序号字段每发一帧序号加一。接收端发现序号跳变就知道丢帧了这样可以量化丢包率方便判断通信质量。5.3 常见问题速查表现象可能原因排查方法解决措施温度读数跳动大电源噪声、滤波不足示波器看电源纹波加强去耦、增大滤波窗口温度读数固定不变通信失败、传感器故障逻辑分析仪抓通信波形检查上拉电阻、更换传感器远程通信丢包信号弱、干扰大检查信号质量、增加重传调整天线、改用屏蔽线本地与远程数据不一致数据更新不同步检查数据流路径统一从全局变量读取系统偶尔复位电源跌落、看门狗误触发监测电源电压、检查看门狗配置加大储能电容、调整看门狗超时5.4 避坑技巧汇总第一个坑是忽略传感器上电时间。PJ85718DM 这类传感器上电后需要一段时间才能输出有效数据具体时间看datasheet。如果你上电后立刻去读可能读到的是默认值或者无效值。我的做法是上电后延时至少100ms再开始第一次采集。第二个坑是I2C地址冲突。如果你总线上挂了多个I2C设备要确保地址不冲突。有些传感器的地址是固定的有些可以通过引脚配置。选型的时候就要把地址规划好不然后面改硬件很麻烦。第三个坑是看门狗配置不当。ATmega6450的看门狗如果超时时间设得太短正常的通信等待就可能触发复位。我一般把看门狗超时设在2秒以上并且在主循环里定期喂狗。第四个坑是Flash和RAM不够用。ATmega6450的资源虽然不算少但如果你用了浮点运算、字符串处理、协议栈Flash消耗会很快。我的建议是温度值尽量用定点数表示比如用int16_t表示温度乘以100这样省Flash也省RAM。6. 固件架构与任务调度6.1 前后台架构还是RTOSATmega6450 跑RTOS有点勉强RAM不够大任务切换的开销也不划算。我一般用前后台架构主循环里轮询处理各个任务定时器中断里做周期性的采集和状态更新。具体来说定时器中断负责温度采集和看门狗喂狗主循环负责显示刷新、通信处理和按键扫描。显示刷新不需要太快100ms一次就够了通信处理要看协议如果有实时性要求可以把通信接收放在中断里主循环只做解析和响应。6.2 状态机的设计通信协议解析用状态机来做最清晰。我一般把接收过程分成几个状态等待帧头、接收地址、接收命令、接收长度、接收数据、校验。每个状态只做一件事收到不完整的帧就留在当前状态等下一个字节。typedef enum { STATE_IDLE, STATE_HEADER1, STATE_HEADER2, STATE_ADDR, STATE_CMD, STATE_LEN, STATE_DATA, STATE_CHECKSUM } rx_state_t; rx_state_t g_rx_state STATE_IDLE; uint8_t g_rx_buffer[32]; uint8_t g_rx_index 0;状态机的好处是逻辑清晰不容易漏掉边界情况。而且用switch-case实现编译器优化后代码效率也很高。6.3 低功耗考虑如果这个项目是电池供电的低功耗就很重要。ATmega6450 支持多种睡眠模式在不需要采集和通信的时候可以进空闲模式或者掉电模式。传感器也可以配置成周期唤醒的模式平时处于休眠状态定时器到了再唤醒采集。我的做法是用看门狗定时器或者外部RTC做周期唤醒唤醒后采集一次温度更新显示发送远程数据然后继续休眠。这样平均功耗可以降到毫安级甚至微安级具体看唤醒周期和通信模块的功耗。注意休眠之前要把不用的外设关掉比如USART、SPI、ADC不然它们会持续耗电。IO口的状态也要注意悬空的输入引脚可能会因为电平浮动而增加功耗最好配置成上拉或者输出低电平。7. 实测数据与性能评估7.1 温度采集精度实测我拿这个方案和一颗经过校准的标准温度计做了对比在10°C到40°C范围内PJ85718DM的读数偏差在±0.5°C以内满足大多数HVAC应用的要求。如果做单点校准偏差可以压到±0.2°C以内。采样周期设在1秒的时候从温度变化到显示更新大约有2到3秒的滞后主要来自滤波窗口。如果把滤波窗口从16降到4滞后可以缩短到1秒以内但读数会稍微跳一点。7.2 通信距离与稳定性RS485方案在9600波特率下用双绞屏蔽线通信距离可以稳定做到500米以上。再远就要降波特率或者加中继。无线方案在空旷环境下可以做到几百米但穿墙之后衰减很明显室内环境建议控制在50米以内。丢包率方面RS485在有电机干扰的环境下不加校验的话误码率大概在千分之一左右加了校验和重传之后可以做到万分之一以下。无线方案的丢包率波动比较大和环境影响关系很大建议协议里一定要有重传机制。7.3 系统功耗实测在5V供电、主控跑8MHz、传感器每秒采集一次、显示常亮、RS485每秒上报一次的情况下整机电流大约在30mA左右。如果关掉显示背光、降低采集频率、通信改成每10秒一次电流可以降到10mA以下。电池供电的话建议用休眠加周期唤醒的方式平均电流可以做到1mA以下用2000mAh的电池可以撑几个月。8. 方案扩展与变体思路8.1 多点温度监测如果需要在一条总线上挂多颗PJ85718DM要注意地址分配和总线负载。每颗传感器在通信时都会消耗电流总线上的上拉电阻要能提供足够的驱动能力。我一般会在总线上加一个总线缓冲器或者用更小的上拉电阻保证信号边沿足够陡。软件上要轮询每颗传感器采集周期会相应变长。如果传感器数量多可以考虑分组采集每组之间间隔一段时间避免总线一直处于忙状态。8.2 数据记录与历史查询加一颗EEPROM或者Flash芯片就可以做温度记录。我一般按固定间隔存一条记录存满之后覆盖最旧的数据。查询的时候通过通信接口把历史数据读出来可以在上位机上画温度曲线。记录间隔可以根据需求调整从1分钟到1小时都行。如果存储空间有限可以用压缩算法比如只存变化量或者用差分编码。8.3 报警与联动控制温度监测的下一步通常是报警和联动。比如温度超过阈值就触发继电器启动风机或者打开阀门。ATmega6450的IO口可以直接驱动继电器模块或者通过光耦隔离后驱动。报警阈值我一般设两级预警和报警。预警阈值低一些提前提醒报警阈值高一些触发保护动作。阈值可以通过通信接口远程配置不用重新烧固件。这个方案后续还可以往物联网方向扩展比如加一个无线上报模块把数据传到云端做远程监控和大数据分析。不过那就是另一个话题了涉及的东西更多这里就不展开了。

相关新闻

基于PJ85718DM与STM32F030RC的嵌入式温度监测方案设计与避坑指南

基于PJ85718DM与STM32F030RC的嵌入式温度监测方案设计与避坑指南

1. 项目缘起与整体设计思路嵌入式温度监测这个方向,看起来简单,实际上坑特别多。我最早接触这类需求是在一个 HVAC(暖通空调)控制板的项目里,当时的需求很朴素:板子上要同时测本地环境温度和一路远程探头温…

2026/10/10 14:37:35 阅读更多 →
3D医学图像分类实战:从DICOM加载到3D CNN训练全流程

3D医学图像分类实战:从DICOM加载到3D CNN训练全流程

简介:本资源是一份面向高校机器学习课程学生的高分期末大作业实践方案,聚焦3D卷积神经网络在医学图像分类任务中的完整实现,适用于课程设计、结课项目及AI医疗方向入门实践。压缩包共48个文件,含18个核心Python源码(涵…

2026/10/10 14:37:34 阅读更多 →
Redis 查询 key 的正确方式:用 SCAN 命令替代 KEYS 的实战配置

Redis 查询 key 的正确方式:用 SCAN 命令替代 KEYS 的实战配置

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

2026/10/10 14:37:34 阅读更多 →

最新新闻

MCP协议实战:从零配置到AI驱动苹果群控系统

MCP协议实战:从零配置到AI驱动苹果群控系统

1. 为什么我要把群控系统接入 MCP:先弄清楚这件事的本质先交代一下背景。我手里管着不少苹果设备,一直在用 EasyClick 这套方案做群控。早期的工作流很简单:设备连上电脑,用 EasyClick 的脚本批量执行点击、滑动、截图、读页面元素&#xff0…

2026/10/10 15:21:42 阅读更多 →
FlashAttention数据流优化实战:让长序列推理不再受制于显存带宽

FlashAttention数据流优化实战:让长序列推理不再受制于显存带宽

1. 从一次卡顿说起:attention为什么会成为AIInfra里的带宽黑洞我先说一个自己碰到的真实场景。当时我在给一个做长序列推理的内部项目做性能分析,模型本身不算大,7B级别,参数量远没到让人头疼的程度。可跑起来之后,端到…

2026/10/10 15:21:42 阅读更多 →
RBF-BP神经网络赋能的自适应PID控制原理与工程实践

RBF-BP神经网络赋能的自适应PID控制原理与工程实践

1. 这不是“加个神经网络就变智能”——先搞清PID控制的硬伤在哪很多人一看到“RBF神经网络BP神经网络自适应PID”这个标题,第一反应是:又一个堆砌术语的噱头项目。我最初也这么想——直到在某高校实验室调试一台高精度温控平台时连续三天没调出稳定曲线…

2026/10/10 15:21:42 阅读更多 →
Devin团队再出王炸!GitHub版“维基百科”上线,TaoToken统一Key打通DeepWiki文档流

Devin团队再出王炸!GitHub版“维基百科”上线,TaoToken统一Key打通DeepWiki文档流

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

2026/10/10 15:21:42 阅读更多 →
Systemstate Dump分析经典案例(下):library cache lock与cursor:pin S wait on X死锁定位实战

Systemstate Dump分析经典案例(下):library cache lock与cursor:pin S wait on X死锁定位实战

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

2026/10/10 15:21:41 阅读更多 →
Linux history命令完全指南:用法、原理与安全审计

Linux history命令完全指南:用法、原理与安全审计

1. 从history开始:为什么每一个Linux用户都该掌握它凡是跟Linux打过交道的人,几乎没有不知道history命令的。但绝大多数人只是把它当成"查看之前敲过的命令"的临时工具,用一下就结束了。真正做运维时间长了你会发现,his…

2026/10/10 15:20:40 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/10 10:38:42 阅读更多 →