基于PJ85718DM与STM32F446RE的嵌入式温度监测方案
1. 项目缘起与整体设计思路嵌入式温度监测这个方向看起来简单实际上是个入门容易做精难的典型场景。我最早接触这类需求是在一个环境监控类的小项目里当时的需求很朴素本地要能看到实时温度远程也要能拿到数据而且两路数据得对得上。后来类似的需求反复出现尤其是在HVAC暖通空调相关的场景里——风机盘管、新风机组、冷库、机房精密空调几乎都绕不开本地远程双路测温这个组合。这次要聊的方案核心是两颗芯片的配合一颗是PJ85718DM一颗是STM32F446RE。先说清楚它们各自扮演什么角色不然后面全是糊涂账。PJ85718DM是一颗I2C接口的数字温度传感器属于那种接上就能用的器件。它的特点是精度够、封装小、功耗低走标准I2C总线地址可以通过引脚配置一条总线上挂多颗也不冲突。对于HVAC这种需要多点布温的场合它的价值在于便宜、稳定、好布线。STM32F446RE则是整个系统的大脑。它是ST的F4系列里比较能打的一颗Cortex-M4内核带FPU主频能跑到180MHzI2C、UART、SPI、USB、CAN这些外设一应俱全。选它不是因为测温需要多强的算力而是因为本地显示远程上报可能的控制逻辑这三件事叠在一起F446的资源余量让人心里踏实。你要是只测一个点用F103都够但一旦涉及多路采集、LCD刷新、通信协议栈F446的余量就是省心。整体思路是这样一条链路PJ85718DM负责把物理温度转成数字量通过I2C送给STM32F446RESTM32做两件事——一路驱动本地显示OLED或者段码屏让人在现场能直接读数另一路通过串口或者无线模块把数据打包发出去实现远程监测。本地和远程用的是同一份采集数据这样就不会出现本地显示25度、远程显示27度这种让人抓狂的对不上问题。为什么这么设计因为在实际项目里我见过太多本地一套传感器、远程另一套传感器的做法结果两路数据打架排查起来极其痛苦。统一采集源、统一数据出口是这类系统最省事的原则。PJ85718DM采集STM32分发本地和远程只是同一份数据的两个展示通道逻辑上干净。这个方案适合谁如果你正在做HVAC控制板、机房环境监控、冷链温度记录或者只是想入门I2C传感器MCU的完整链路这套组合都能直接抄。它不追求极致低功耗也不追求工业级隔离但胜在能跑通、好复现、成本可控。2. 核心器件解析与选型考量2.1 PJ85718DM到底适合什么场景PJ85718DM这类数字温度传感器的核心优势是把模拟信号调理这件麻烦事在芯片内部做完了。传统的热敏电阻或者热电偶方案你得自己设计分压、自己算Steinhart-Hart系数、自己做ADC校准稍微有点噪声就飘。数字传感器直接输出摄氏度数值I2C读回来就是结果省掉了整条模拟链路。它的典型精度在常温区间能到±0.5度左右分辨率可以配置到0.0625度。对于HVAC场景这个精度完全够用——空调出风口温差、房间温度波动本来就在零点几度到几度的量级传感器精度再高也是浪费。分辨率高一点的好处是看趋势更清楚比如温度缓慢爬升的过程0.0625度的步进能让你更早发现异常。I2C接口是它最大的工程价值。两根线SDA、SCL可以挂多颗器件地址通过ADDR引脚拉高拉低来区分。这意味着你可以在一条总线上布8个甚至更多测温点MCU只需要两个IO口。对于新风机组这种进风、出风、盘管、回风都要测的场合布线成本直接降下来。注意PJ85718DM的地址配置引脚一定要在画板时就确定好不要指望软件改地址。我见过有人把地址引脚悬空结果上电后地址随机读出来的数据全是乱的。2.2 STM32F446RE为什么是合适的宿主STM32F446RE的定位是性能有余量的通用MCU。180MHz的Cortex-M4带单精度FPU做温度数据的滤波、换算、打包绰绰有余。它的I2C外设支持标准模式100kHz和快速模式400kHz挂几颗PJ85718DM完全不会成为瓶颈。更关键的是它的外设组合。你要做本地显示它有足够的GPIO和SPI/I2C去驱动OLED你要做远程通信它有多个USART、SPI可以接无线模块或者走RS485你要做数据记录它有大容量Flash和SRAM可以缓存历史数据。这种什么都有的特性让它在方案迭代时不用换芯片。F446RE的封装是LQFP64引脚间距0.5mm手工焊接有点挑战但用热风枪或者找代工都不难。如果你是自己打样玩建议直接买现成的开发板省掉焊接的麻烦。它的供电范围是1.7V到3.6V和PJ85718DM的供电可以共用一路3.3V省一个LDO。2.3 本地与远程双通道的设计取舍本地显示和远程上报本质上是同一份数据的两个消费者。设计上最容易犯的错是让两个通道各自去读传感器。比如本地显示用一个定时器读I2C远程上报用另一个定时器读I2C结果两个定时器打架I2C总线冲突数据错乱。正确的做法是单点采集、多点分发。用一个定时器或者主循环统一采集PJ85718DM的数据存到一个全局的温度变量或者结构体里本地显示任务和远程上报任务都从这个变量里取数。这样I2C总线上只有一个主控在操作不会冲突而且本地和远程的数据天然一致。本地显示我一般用0.96寸的OLEDI2C接口和传感器共用一条总线也行但要注意地址不能冲突。OLED的地址通常是0x3C或者0x3DPJ85718DM的地址是0x48起步不会撞。如果嫌I2C总线负载重OLED可以走SPI多占几个IO口但更清爽。远程上报的选择就多了。最简单的是USART接一个无线透传模块数据直接发出去讲究一点的是走RS485抗干扰强适合工业现场再复杂一点是加一个WiFi或者以太网模块走TCP上报。选哪种取决于你的现场条件——HVAC的机房通常有网线走以太网最稳如果是分散的空调末端无线更省布线。3. 硬件连接与关键参数计算3.1 I2C总线的上拉电阻怎么算I2C总线必须加上拉电阻这是新手最容易忽略的地方。PJ85718DM和STM32F446RE的I2C引脚都是开漏输出没有上拉电阻总线永远是低电平通信根本起不来。上拉电阻的取值有个经验公式。总线电容Cb包括PCB走线、引脚、器件输入电容决定了上升时间。标准模式100kHz下上升时间要小于1000ns快速模式400kHz下要小于300ns。上升时间tr和上拉电阻Rp的关系是tr ≈ 0.847 × Rp × Cb假设你的总线电容是100pF短走线、少器件的典型值快速模式下tr要小于300ns那么Rp 300ns / (0.847 × 100pF) ≈ 3.5kΩ所以快速模式下上拉电阻选2.2kΩ到3.3kΩ比较稳妥。标准模式下可以放宽到4.7kΩ到10kΩ。我一般直接上4.7kΩ标准模式跑得稳快速模式也能凑合属于万金油取值。提示如果你挂了很多颗传感器总线电容会变大上拉电阻要相应减小。但电阻太小会增加功耗静态电流会上去。折中方案是2.2kΩ配400kHz实测下来大多数场景都能跑通。3.2 电源与去耦的细节PJ85718DM的供电范围通常是2.7V到5.5VSTM32F446RE是1.7V到3.6V。如果共用3.3V没问题。但要注意传感器的电源噪声——HVAC现场往往有继电器、风机、压缩机电源上会有毛刺。每个器件的电源引脚旁边必须放一个0.1uF的陶瓷电容越近越好。这是高频去耦滤掉电源上的快速波动。再在电源入口放一个10uF的钽电容或者电解电容做低频储能。这两级去耦是标配省不得。如果现场干扰特别强可以在I2C的SDA和SCL上各串一个几十欧姆的电阻再并一个小电容到地做成简单的RC滤波。但要注意电容不能太大否则会拖慢上升时间影响通信。一般串33Ω、并100pF是安全的。3.3 地址配置与多传感器布点PJ85718DM的I2C地址由ADDR引脚决定。假设基础地址是0x48ADDR接地是0x48接VDD是0x49接SDA是0x4A接SCL是0x4B。具体要看数据手册不同厂家的定义可能略有差异。如果你要挂4颗传感器测4个点就把4个ADDR引脚分别接到不同的电平上得到4个不同地址。STM32在初始化时依次向这4个地址发读命令就能拿到4个点的温度。布点的时候有个经验测温点要避开热源和气流死角。比如测房间温度传感器不要贴在出风口正下方也不要塞在角落的柜子里。HVAC场景里回风温度通常比房间平均温度高1到2度这是正常的不要以为是传感器坏了。4. 软件实现与核心代码拆解4.1 I2C底层驱动的初始化STM32F446RE的I2C初始化用HAL库是最省事的。关键参数是时钟速度、地址模式和自身地址。作为主机自身地址随便填不影响通信。I2C_HandleTypeDef hi2c1; void MX_I2C1_Init(void) { hi2c1.Instance I2C1; hi2c1.Init.ClockSpeed 400000; // 400kHz快速模式 hi2c1.Init.DutyCycle I2C_DUTYCYCLE_2; hi2c1.Init.OwnAddress1 0; hi2c1.Init.AddressingMode I2C_ADDRESSINGMODE_7BIT; hi2c1.Init.DualAddressMode I2C_DUALADDRESS_DISABLE; hi2c1.Init.OwnAddress2 0; hi2c1.Init.GeneralCallMode I2C_GENERALCALL_DISABLE; hi2c1.Init.NoStretchMode I2C_NOSTRETCH_DISABLE; HAL_I2C_Init(hi2c1); }时钟速度设400kHz是因为PJ85718DM支持快速模式而且400kHz下读一次温度只要几百微秒对主循环的占用很小。DutyCycle选2是快速模式下的标准占空比。4.2 温度读取的完整流程PJ85718DM的读取流程分两步先写指针寄存器指定要读温度寄存器然后发起读操作拿回两个字节的数据。温度值是16位高字节在前低字节的高4位有效低4位是保留位。#define PJ85718_ADDR 0x48 1 // HAL库要求左移一位 float PJ85718_ReadTemp(void) { uint8_t reg 0x00; // 温度寄存器地址 uint8_t data[2]; int16_t raw; float temp; HAL_I2C_Master_Transmit(hi2c1, PJ85718_ADDR, reg, 1, 100); HAL_I2C_Master_Receive(hi2c1, PJ85718_ADDR, data, 2, 100); raw (int16_t)((data[0] 8) | data[1]); raw raw 4; // 低4位是保留位右移掉 temp raw * 0.0625f; // 分辨率0.0625度 return temp; }这里有个坑HAL库的地址参数要求是7位地址左移一位也就是把0x48变成0x90。如果你直接传0x48HAL库会把它当成0x24通信必然失败。这个坑我踩过不止一次每次换新传感器都要重新确认一遍。4.3 本地显示与远程上报的任务划分本地显示和远程上报我建议用主循环定时器的结构不要上RTOS。测温这种低频任务RTOS的调度开销反而添乱。主循环里做三件事定时采集、刷新显示、发送数据。用一个1秒的定时器标志位来控制采集节奏采集完更新全局温度变量显示和发送都读这个变量。float g_temperature 0.0f; volatile uint8_t g_sample_flag 0; void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if (htim-Instance TIM2) { g_sample_flag 1; } } int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_I2C1_Init(); MX_TIM2_Init(); MX_USART2_UART_Init(); OLED_Init(); HAL_TIM_Base_Start_IT(htim2); while (1) { if (g_sample_flag) { g_sample_flag 0; g_temperature PJ85718_ReadTemp(); OLED_ShowTemp(g_temperature); UART_SendTemp(g_temperature); } } }这个结构简单到不能再简单但胜在稳定。采集、显示、发送都在主循环里顺序执行没有并发问题。1秒的采集周期对温度这种慢变量来说绰绰有余。4.4 远程数据的打包格式远程上报的数据格式我建议用简单的文本协议比如TEMP:25.31\r\n。理由是可读性好用串口助手就能直接看调试方便。二进制协议虽然省字节但调试时得写解析工具得不偿失。如果走无线模块注意模块的波特率和STM32的USART要匹配。常见的透传模块默认9600或者115200初始化时确认一下。发送的时候用HAL_UART_Transmit超时给100ms别用阻塞式死等。void UART_SendTemp(float temp) { char buf[32]; int len snprintf(buf, sizeof(buf), TEMP:%.2f\r\n, temp); HAL_UART_Transmit(huart2, (uint8_t *)buf, len, 100); }snprintf比sprintf安全能防止缓冲区溢出。这个习惯要养成嵌入式里缓冲区溢出是灾难性的。5. 常见问题与排查技巧实录5.1 I2C通信失败的排查顺序I2C不通是最常见的问题排查要按顺序来不要东一榔头西一棒子。现象可能原因排查方法完全无应答上拉电阻缺失万用表测SDA/SCL静态电平应为高完全无应答地址错误用逻辑分析仪抓波形看地址字节偶尔应答总线电容过大减小上拉电阻缩短走线数据错乱时钟太快降到100kHz试试数据错乱电源噪声加去耦电容检查地线我一般先用万用表测SDA和SCL的静态电平。如果有一个是低电平说明上拉电阻没焊或者焊错了。如果两个都是高电平再上逻辑分析仪看波形。逻辑分析仪是排查I2C的神器几十块钱的就能用比示波器直观。5.2 温度读数跳变的处理温度读数偶尔跳变比如从25.3突然跳到26.8又跳回来通常是两个原因一是电源噪声二是I2C通信误码。电源噪声的解决方法是加去耦电容必要时给传感器单独走一路LDO。I2C误码的解决方法是加校验——PJ85718DM本身没有CRC但你可以连续读两次如果两次差值超过阈值就丢弃重读。float PJ85718_ReadTempStable(void) { float t1 PJ85718_ReadTemp(); float t2 PJ85718_ReadTemp(); if (fabsf(t1 - t2) 1.0f) { return PJ85718_ReadTemp(); // 重读一次 } return (t1 t2) / 2.0f; }这个读两次取平均的土办法在实际项目里非常管用。温度是慢变量两次读数差超过1度基本可以判定是误码。5.3 本地与远程数据不一致的定位如果本地显示和远程上报的数据对不上先确认它们是不是读的同一个变量。我见过有人在显示任务里重新调了一次PJ85718_ReadTemp结果两个任务读的时间点不同数据自然不一样。正确的做法是全局变量只更新一次显示和发送都读它。如果确认是同一个变量还不一致那就是显示或者发送的格式化出了问题。比如显示用了整数发送用了浮点看起来就不一样。这种问题用串口打印原始值就能定位。注意OLED刷新和UART发送如果都在主循环里要注意UART发送是阻塞的如果波特率低、数据量大会拖慢OLED刷新。解决办法是把UART发送改成中断或者DMA方式或者降低发送频率。5.4 长期运行的稳定性问题嵌入式设备最怕的是跑几天就死机。温度监测这种场景往往要求连续运行几个月。我遇到过几次死机最后定位到两个原因一是I2C通信没有超时保护总线被拉死后程序卡在HAL_I2C里二是看门狗没开。HAL_I2C的传输函数都有超时参数一定要填不要填HAL_MAX_DELAY。填100ms超时就返回错误程序继续跑。再加一个独立看门狗IWDG主循环里定期喂狗真死机了也能自动复位。HAL_I2C_Master_Transmit(hi2c1, PJ85718_ADDR, reg, 1, 100); // 超时100ms不要用HAL_MAX_DELAY看门狗的喂狗周期要大于主循环的最长执行时间。主循环1秒跑一次看门狗设2秒超时每次循环喂一次安全。6. 实操心得与扩展思路6.1 从单点测温到多点组网的扩展单点测温跑通之后扩展成多点是很自然的。PJ85718DM的地址可以配出多个一条I2C总线上挂4到8颗没问题。软件上把读取函数改成带地址参数的版本循环读取所有地址存到数组里。#define SENSOR_NUM 4 uint8_t sensor_addrs[SENSOR_NUM] {0x481, 0x491, 0x4A1, 0x4B1}; float temps[SENSOR_NUM]; void ReadAllSensors(void) { for (int i 0; i SENSOR_NUM; i) { temps[i] PJ85718_ReadTempAddr(sensor_addrs[i]); } }本地显示可以轮流显示各个点的温度或者用多行OLED一次显示4个值。远程上报就把4个值打包成一个字符串发出去。这个扩展几乎不增加硬件成本只是多焊几颗传感器。6.2 数据记录与历史曲线如果项目需要看温度趋势可以在STM32的Flash里做简单的数据记录。F446RE有512KB的Flash划出最后几KB做环形缓冲区每分钟存一个温度值能存好几天。读取的时候通过串口把历史数据导出来用Excel画曲线。这个功能在排查空调为什么半夜不制冷这类问题时特别有用。实现上要注意Flash的擦写寿命不要频繁写同一个扇区用环形缓冲轮着写。6.3 报警阈值的实现温度监测的最终目的往往是报警。在软件里加两个阈值超过上限或者低于下限就触发报警。报警可以是本地蜂鸣器响也可以是远程发一条特殊格式的消息。#define TEMP_HIGH 30.0f #define TEMP_LOW 10.0f if (g_temperature TEMP_HIGH || g_temperature TEMP_LOW) { TriggerAlarm(g_temperature); }阈值最好做成可配置的存在Flash里通过串口命令修改。这样现场调试时不用重新烧程序。6.4 我踩过的几个坑第一个坑是I2C地址左移。前面提过HAL库要求地址左移一位我一开始没注意调了半天以为是硬件问题。第二个坑是OLED和传感器共用I2C总线时的时序冲突。OLED刷新比较慢如果刷新过程中传感器来读数据总线会忙。解决办法是给I2C加互斥锁或者干脆把OLED改成SPI接口。第三个坑是电源。有一次用USB供电传感器读数一直偏高后来发现是USB的5V经过LDO降到3.3V时纹波太大。换成电池供电就正常了。所以电源质量对测温精度的影响比想象中大。第四个坑是看门狗。有一次忘了喂狗设备每隔2秒复位一次查了半天才发现是IWDG没初始化好。看门狗是好东西但配置要仔细。这套PJ85718DM加STM32F446RE的方案我前后在几个项目里用过从单点测温到四点组网都跑过。它的价值不在于技术多先进而在于该有的都有不该有的都没有稳定、好调、成本可控。如果你正在做类似的东西希望这些经验能帮你少走点弯路。

相关新闻

公钥即身份:Web3去中心化世界的核心身份准则

公钥即身份:Web3去中心化世界的核心身份准则

公钥即身份:Web3 去中心化世界的核心身份准则做Web3相关的东西做了几年,我发现一个很有意思的现象:很多刚入门的朋友,第一次听到“公钥即身份”这个概念时,通常都是一脸茫然。他们习惯了互联网时代的账号密码体系&…

2026/10/10 13:23:21 阅读更多 →
多Agent协作系统实战:构建数字机构框架与踩坑指南

多Agent协作系统实战:构建数字机构框架与踩坑指南

1. 为什么是"Agency":多Agent协作的底层逻辑最近几个月,AI Agent这个概念几乎被聊烂了,但真正把它用到业务里就会发现,单Agent做Demo很容易,做正经事情很难。我一直在折腾一个叫agency-agents的小项目&#…

2026/10/10 13:22:21 阅读更多 →
少见的模板升级机制:full-stack-ai-agent-template的make upgrade三方合并原理深度解析

少见的模板升级机制:full-stack-ai-agent-template的make upgrade三方合并原理深度解析

少见的模板升级机制:full-stack-ai-agent-template的make upgrade三方合并原理深度解析 【免费下载链接】full-stack-ai-agent-template Full-stack AI app generator — FastAPI Next.js with AI Agents, RAG, streaming, auth, and 20 integrations out of the b…

2026/10/10 13:22:21 阅读更多 →

最新新闻

统一登录与单点登录实战:网关与认证中心的搭建全解

统一登录与单点登录实战:网关与认证中心的搭建全解

这段时间我一直在折腾一件事:把我们内部几个各自为战的业务系统,统一到一个登录入口底下。项目代号倒是很形象,sward 负责守门,soular 负责认人。说白了,sward 是一个网关层,soular 是一个身份认证中心&…

2026/10/10 14:52:58 阅读更多 →
打印机驱动下载安装完整指南:从官网获取到故障排查

打印机驱动下载安装完整指南:从官网获取到故障排查

1. 打印机驱动安装这件事,为什么值得单独写一篇完整指南打印机驱动下载安装,听起来像是电脑入门级别的操作,但实际工作中我见过太多人在这上面翻车。有人下载了错误的驱动版本导致打印机频繁脱机,有人装完驱动后扫描功能死活调不出…

2026/10/10 14:52:58 阅读更多 →
基于SpringBoot+Vue+MySQL的船舶监造管理系统实战解析

基于SpringBoot+Vue+MySQL的船舶监造管理系统实战解析

做船舶监造的人肯定都懂,监造不是坐在办公室看看图纸就行,真正业务一铺开,报验单、现场见证、NCR整改闭环、试验计划、图纸送审,每个环节都是需要“有人跟、有记录、有闭环”的。早几年我在船厂和监造组干活时,全靠Exc…

2026/10/10 14:52:58 阅读更多 →
Zen Cart PayPal跳转插件:解决掉单与IPN异步通知问题

Zen Cart PayPal跳转插件:解决掉单与IPN异步通知问题

简介:面向ZenCart商城的PayPal跳转插件,用于打通ZenCart与PayPal支付接口,实现用户在付款时从商店页面到支付网关再返回结果页的完整跳转流程,适合使用ZenCart开展跨境或外贸电商的商家、开发者及运维人员。该插件压缩包共24个文件…

2026/10/10 14:52:58 阅读更多 →
线程池线程数配置实战:CPU密集型与IO密集型任务调优策略

线程池线程数配置实战:CPU密集型与IO密集型任务调优策略

1. 先分清任务在“算”还是在“等”——这是所有配置的起点1.1 CPU 密集型和 IO 密集型的本质差异多线程编程里有一个被问得最多的问题:线程池到底配多少个线程?我几乎每一次都会先反问他一句:你的任务是 CPU 密集型还是 IO 密集型&#xff1…

2026/10/10 14:52:57 阅读更多 →
Windows下OSGeo4W安装PDAL避坑指南:从环境配置到LAZ v1.4实测

Windows下OSGeo4W安装PDAL避坑指南:从环境配置到LAZ v1.4实测

简介:本资源是面向GIS开发者、遥感工程师及三维点云处理从业者的PDAL库离线安装包,专为解决Windows环境下因网络限制导致OSGeo4W官网下载PDAL失败或缓慢的痛点。压缩包完整封装了OSGeo4W64 64位安装环境及PDAL核心组件,并预集成CloudCompare兼…

2026/10/10 14:51:56 阅读更多 →

日新闻

卫星轨道分类全解析:从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 阅读更多 →