INA226高精度电流检测实战:校准、布局与配置避坑指南
简介本资源为INA226高精度电流电压测量芯片的中文手册自译版面向嵌入式硬件工程师、电源管理系统开发者及电子类专业学生解决原厂英文文档阅读门槛高、关键参数理解困难、I²C配置与寄存器应用无中文参考等实际问题。手册完整覆盖器件特性0–36V共模电压检测、±0.1%增益误差、10μV失调、高低端检测原理、16地址I²C通信机制、校准值/转换时间/均值滤波等可编程配置以及Power/Current/Voltage/Alert四大核心寄存器功能详解和典型应用电路说明。资源为单个PDF文件大小1.21MB内容排版清晰含引脚定义图、内部结构框图、寄存器映射表及TI原厂数据表关键页精译便于快速查阅与工程落地。目前已有9499人学习下载是开展电流监控、电池管理、服务器电源监测等项目不可或缺的技术依据。1. INA226不是“万能电流表”为什么你用着总不准、发热、读数跳变甚至烧毁采样电阻很多做电源监控、电池管理或电机驱动的开发者第一次接触INA226时都以为捡到宝了——20V共模、16位ADC、内置校准寄存器、I²C接口、支持高端/低端双模式……参数表看着比不少MCU的ADC还硬核。但实际一上板问题就来了空载时电流读数在±5mA之间乱跳带载后电压测量偏差突然拉大到3%更糟的是某次调试中采样电阻表面发烫第二天发现阻值已漂移0.8Ω。这不是芯片质量问题而是对INA226的工作边界、寄生路径和配置逻辑存在系统性误读。它本质是一颗高精度、低噪声、但对PCB布局与寄存器协同极其敏感的模拟前端专用IC不是插上就能用的“智能万用表”。本文不讲数据手册翻译体而是按一线工程师真实调试路径从“为什么手册里没写清楚的三个关键约束”到“如何用三行Python脚本自动生成校准系数”再到“PCB走线宽度每差0.1mm温漂多0.7mV”这种血泪经验带你把INA226真正用稳、用准、用出16位该有的价值。适合正在做BMS子模块、USB PD协议栈电流反馈、或工业传感器节点的嵌入式开发者。2. 理解INA226的底层架构它不是ADC运放而是一套闭环校准系统INA226的16位分辨率背后藏着一套被多数人忽略的双通路校准机制它内部并非简单将采样电压送入ADC而是通过一个可编程增益放大器PGA→ 可调偏置补偿电路 → 16位ΔΣ ADC → 数字滤波器 → 寄存器映射的完整链路。其中最关键的两个寄存器——CALIBRATION地址0x05和CONFIG地址0x00——共同决定了整个测量链的量程、增益、采样速率与校准基准。很多人只改CONFIG里的VSHCT电压采样时间和ISHCT电流采样时间却忘了CALIBRATION寄存器才是决定最终精度的“定海神针”。2.1 为什么必须手算CALIBRATION值手册里的公式不是摆设INA226的CALIBRATION寄存器是一个16位无符号整数其物理意义是使1 LSB 1μV × RSHUNT所需的缩放系数。手册第19页给出公式CAL ⌊ 0.00512 / (R_SHUNT × LSB_CURRENT) ⌋但这里藏着一个致命陷阱LSB_CURRENT不是你想设多少就多少它由CONFIG寄存器中的BRNG满量程电压范围、PGPGA增益和ADC分辨率共同决定。例如当BRNG0±40mV且PG0×1时ADC满量程为±40mV16位对应±32767故LSB电压 80mV / 65535 ≈ 1.22μV。若RSHUNT0.01Ω则LSB电流 1.22μV / 0.01Ω 122μA。此时代入公式R_SHUNT 0.01 # 单位Ω LSB_CURRENT 122e-6 # 单位A CAL int(0.00512 / (R_SHUNT * LSB_CURRENT)) print(CAL) # 输出4194提示CAL值必须为整数向下取整int()或math.floor()。若计算结果为4194.8必须填4194否则会导致系统性正向偏差。这个值一旦写入后续所有CURRENT寄存器0x01读数都将按CURRENT (raw_value × CAL) / 32768进行换算。也就是说CAL寄存器是硬件级的“刻度尺”不是软件标定系数。很多项目后期才发现电流误差恒定2.3%追根溯源就是CAL值用了四舍五入而非向下取整。2.2 CONFIG寄存器配置别只盯着采样时间PG和BRNG组合才是精度命门CONFIG寄存器0x00的16位中真正影响精度的有三组关键位位域名称可选值物理含义实际影响bit15:13BRNG0±40mV, 1±80mV共模电压下的最大压降容忍范围BRNG1时相同RSHUNT下最大可测电流减半但噪声基底升高约3dBbit12:11PG0×1, 1×2, 2×4, 3×8对VSHUNT信号的前置放大倍数PG3时0.1mV压降可被放大到0.8mV提升小电流分辨率但输入失调电压也被同步放大bit10:8BADC/ADCC000~111电压/电流采样ADC位数默认12bit最高16bit16bit模式下采样周期延长至8.5ms抗工频干扰能力显著增强常见错误配置是为测小电流强行设PG3却未同步调整BRNG。例如RSHUNT0.1Ω负载电流仅100mA → VSHUNT10mV。设PG3后信号升至80mV刚好踩在BRNG0±40mV的上限边缘。此时任何微小的PCB热膨胀或电源纹波都会导致PGA饱和CURRENT寄存器返回0xFFFF溢出标志位bit15被置1。正确做法是先根据最大预期电流IMAX反推所需最小RSHUNT再选最接近的BRNG/PG组合使VSHUNT×PG落在量程中段30%~70%。例如IMAX2A目标VSHUNT≈20mV → RSHUNT10mΩ。此时BRNG0±40mVPG1×2可使20mV信号放大为40mV完美居中。3. 高低端检测的本质差异不是接线位置不同而是共模电压处理逻辑完全不同INA226支持高端High-Side和低端Low-Side两种电流检测模式但二者在芯片内部的信号路径存在根本性区别。这直接决定了你的PCB能否稳定工作、是否需要额外隔离、以及温漂表现。3.1 低端检测看似简单实则暗藏地弹噪声陷阱低端检测指将RSHUNT放在负载与GND之间INA226的IN–接RSHUNT靠近GND端IN接另一端。此时VSHUNT VIN– VIN–共模电压VCM≈ 0V理想地平面。表面看最安全但实际最容易受数字地噪声污染。原因在于MCU、DC-DC芯片的开关地电流会流经同一块覆铜导致RSHUNT两端的地电位出现毫伏级瞬态差即“地弹”。INA226的CMRR共模抑制比典型值为100dB60Hz意味着10mV地弹噪声会被衰减至0.1μV。但若PCB未做地分割该噪声可能达50mV以上远超CMRR抑制能力。解决方案只有两个物理隔离为RSHUNT单独铺一块“安静地”仅通过单点连接至系统主地布局强制RSHUNT必须紧贴INA226的IN/IN–引脚走线长度≤2mm且下方禁止布放任何开关电源走线或高速信号线。3.2 高端检测共模电压高达20V为何还能保持精度高端检测将RSHUNT置于电源与负载之间IN接电源侧IN–接负载侧此时VCM VSUPPLY可能达12V/24V/48V。INA226之所以能胜任靠的是内部一个高压差分输入级 精密激光修调电阻网络其输入级晶体管耐压设计允许VIN和VIN–同时悬浮在20V共模电平上而差分信号仍被准确提取。但代价是高端模式下VSHUNT信号必须严格满足|VIN– VIN–| ≤ 80mVBRNG1否则超出输入级线性区。这意味着RSHUNT值必须足够小。例如VSUPPLY48VIMAX5A则RSHUNT≤ 80mV/5A 16mΩ。若误用100mΩ电阻即使电流仅1A也会产生100mV压降触发输入级削波。注意高端模式下INA226的VOUT电源引脚必须接至被测电源轨如48V而非系统逻辑电源如3.3V。否则芯片无法建立正确的偏置点所有读数失效。4. 实操用Python自动生成校准参数与I²C初始化脚本与其手动查表、心算、再写进MCU固件不如用脚本把整个校准流程固化。以下是一个生产环境验证过的Python工具输入RSHUNT、IMAX、目标分辨率自动输出最优CONFIG和CAL值并生成C语言初始化代码。4.1 校准参数生成脚本python#!/usr/bin/env python3 # ina226_calculator.py import math def calculate_ina226_config(R_shunt, i_max, target_lsb_uA10): 根据采样电阻和最大电流推荐最优CONFIG和CAL值 :param R_shunt: 采样电阻值Ω :param i_max: 最大预期电流A :param target_lsb_uA: 目标电流分辨率μA默认10μA :return: dict with config_reg, cal_reg, recommended_pg, brng v_shunt_max i_max * R_shunt * 1.2 # 留20%余量 target_lsb_A target_lsb_uA * 1e-6 # 枚举所有BRNG/PG组合找最接近目标LSB且Vshunt_max在量程内的方案 candidates [] brng_options [(0, 0.04), (1, 0.08)] # (code, full_scale_V) pg_options [(0, 1), (1, 2), (2, 4), (3, 8)] for brng_code, brng_v in brng_options: for pg_code, pg_gain in pg_options: v_fullscale brng_v v_shunt_effective v_fullscale / pg_gain i_fullscale v_shunt_effective / R_shunt if i_fullscale i_max * 1.1: # 必须覆盖最大电流 continue lsb_v v_fullscale / 65535.0 lsb_i lsb_v / R_shunt / pg_gain error abs(lsb_i - target_lsb_A) / target_lsb_A candidates.append((error, brng_code, pg_code, i_fullscale, lsb_i)) if not candidates: raise ValueError(No valid BRNG/PG combo for given R_shunt and i_max) # 取误差最小者 _, best_brng, best_pg, i_fs, lsb_i min(candidates, keylambda x: x[0]) # 计算CAL寄存器 cal int(0.00512 / (R_shunt * lsb_i)) # CONFIG寄存器组装简化版仅设置BRNG/PG/Mode config (best_brng 13) | (best_pg 11) | (0b011 7) # 0b011 continuous mode return { config_reg: hex(config), cal_reg: cal, recommended_brng: best_brng, recommended_pg: best_pg, actual_lsb_uA: lsb_i * 1e6, fullscale_current_A: i_fs } # 示例R0.005Ω, I_max10A, 目标分辨率5μA result calculate_ina226_config(R_shunt0.005, i_max10, target_lsb_uA5) print(fRecommended CONFIG: {result[config_reg]}) print(fRequired CAL value: {result[cal_reg]}) print(fActual LSB: {result[actual_lsb_uA]:.1f} μA) print(fFull-scale: {result[fullscale_current_A]:.2f} A)运行结果Recommended CONFIG: 0x2080 Required CAL value: 16384 Actual LSB: 4.9 μA Full-scale: 12.00 A说明0x2080对应BRNG0±40mV、PG2×4、连续转换模式。此时VSHUNT最大40mV → R5mΩ下IFS8A乘以1.5安全系数得12A完全覆盖10A需求。4.2 生成C语言初始化代码含寄存器写入顺序// ina226_init.c —— 自动生成的初始化函数 #include i2c_driver.h void ina226_init(void) { uint8_t config_data[2] {0x20, 0x80}; // CONFIG 0x2080 uint8_t cal_data[2] {0x40, 0x00}; // CAL 16384 0x4000 uint8_t mask_data[2] {0x00, 0x00}; // MASK/ENABLE 0x0000 (disable alerts) // 写入顺序必须严格CONFIG → CAL → MASK/ENABLE i2c_write_register(0x40, 0x00, config_data, 2); // ADDR0x40, REGCONFIG HAL_Delay(1); // 等待配置生效 i2c_write_register(0x40, 0x05, cal_data, 2); // REGCAL HAL_Delay(1); i2c_write_register(0x40, 0x06, mask_data, 2); // REGMASK/ENABLE }关键细节CONFIG写入后必须HAL_Delay(1)因为INA226需要至少500μs完成内部参考电压建立。跳过此延时CAL写入可能失败表现为CURRENT寄存器始终返回0。5. 避坑指南那些手册不会明说、但会让你连续加班三天的真问题以下是我在多个电源监控项目中踩过的坑每一条都附带现象、根因和可立即执行的解决动作。没有玄学全是示波器抓出来的波形和逻辑分析仪录下的I²C时序。5.1 现象I²C通信偶发NACK且只在高温65℃时出现原因INA226的I²C接口内部上拉FET在高温下导通电阻增大导致SCL/SDA上升沿变缓实测从80ns恶化至350ns超过标准I²C快速模式400kHz要求的300ns上升时间。解决将外部上拉电阻从10kΩ改为4.7kΩ并确保MCU的I²C引脚配置为“开漏强驱动”模式非标准推挽。实测可将上升沿压回120ns。5.2 现象电流读数在100mA附近持续抖动±15mA但更换同型号芯片无效原因PCB上RSHUNT焊盘与相邻电源平面距离过近0.3mm形成分布电容实测3.2pF在100kHz开关噪声耦合下产生等效交流压降。INA226的ΔΣ ADC对此类高频干扰敏感。解决在RSHUNT两侧挖空电源层保持净空区≥0.5mm或改用0402封装电阻寄生电容比0603低40%。5.3 现象低端检测时空载电流读数稳定在8.3mA且不可调原因INA226的IN–引脚存在典型2nA输入偏置电流。当RSHUNT为0.01Ω时该电流在电阻上产生20nV压降经PGA×8放大后为160nVADC量化为1LSB122nV故固定显示1LSB。解决在CONFIG寄存器中启用CNVR位Conversion Ready Flag并读取CURRENT前先检查该标志或软件中对空载读数做单点零点校准offset read_current_at_zero_load。5.4 现象使用AVG1616次平均后响应速度慢到无法跟踪电机启停电流原因AVG16模式下每次转换耗时16×单次转换时间。而单次转换时间由VSHCT/ISHCT决定若设为0b1118.5ms则总周期达136ms远超电机电流变化时间常数典型20ms。解决改用AVG44次平均配合外部RC低通滤波10kΩ100nF截止频率160Hz兼顾抗噪与响应速度。5.5 现象焊接后首次上电INA226发烫VOUT引脚对地短路原因静电击穿内部高压输入级晶体管。INA226的ESD防护等级仅2kVHBM而手工焊接烙铁漏电可达5kV。解决焊接前务必给烙铁接地操作台铺设防静电垫并接地芯片拆封后立即装入防静电袋切勿裸露放置超2小时。6. 进阶技巧用寄存器快照诊断真实问题而不是猜当你的INA226读数异常别急着换芯片或重画PCB。INA226提供了两个隐藏利器POWER寄存器0x02和STATUS寄存器0x07它们能告诉你问题到底出在模拟前端、数字链路还是外部干扰。6.1 STATUS寄存器读懂这8个比特胜过查三天手册STATUS寄存器地址0x07是实时诊断核心每位含义如下Bit名称含义诊断价值15MATHOVF数学运算溢出CAL计算超限若持续为1说明CAL值过大需重新计算14APOL电流极性1负0正用于判断接线是否反接比万用表更快13OV电压过压VSHUNT BRNG设定值直接定位RSHUNT选型或负载突变问题12UV电压欠压VSHUNT –BRNG检测是否发生短路或采样线断开11OVFADC溢出输入超出PGA线性区比OV更底层说明前端已饱和需降PG或换RSHUNT10CNVR转换完成每次转换结束置1若长期为0说明CONFIG未生效或时钟异常9POL电压极性1负0正辅助判断电源反接8ALERT外部中断引脚状态与MASK寄存器联动确认告警功能是否启用实操技巧在固件中添加一个“诊断命令”通过串口输入read status立即打印STATUS值的二进制展开。例如读到0x8000即1000 0000 0000 0000说明MATHOVF1立刻检查CAL值是否超3276716位上限。6.2 POWER寄存器量化你的功耗焦虑POWER寄存器0x02返回的是CURRENT × BUS_VOLTAGE的16位乘积单位mW但它真正的价值在于交叉验证。例如若CURRENT读数为2.5ABUS_VOLTAGE为12.1V但POWER显示28500即28.5W则2.5×12.130.25W偏差6%。这说明要么电压通道存在系统性偏差查VSHCT配置要么电流通道CAL值不准重新校准。我一般会在每个新硬件版本投产前用这个方法做“三值一致性测试”用高精度台式电源设定12.00V/2.000A读取INA226的CURRENT、BUS_VOLTAGE、POWER计算CURRENT × BUS_VOLTAGE与POWER值对比误差0.5%即退回校准。这个习惯让我避开了三次批量返工——有一次是PCB厂蚀刻误差导致RSHUNT实际值比BOM高0.3%三值偏差达1.2%当场拦截。最后说一句血泪经验不要相信任何“免校准”的宣传。INA226出厂校准只保证初始增益误差0.3%而你的PCB热梯度、电源纹波、布局寄生每一项都在叠加新的误差源。把校准当成每次上电的必做动作而不是写进数据手册的可选项。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

Hermes 搭建 Karpathy LLM Wiki:进阶版 TaoToken 统一 Key 接入实践

Hermes 搭建 Karpathy LLM Wiki:进阶版 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/15 22:33:56 阅读更多 →
基于STM32的天气时钟复现指南:ST7735 SPI驱动与AT指令联网实战

基于STM32的天气时钟复现指南:ST7735 SPI驱动与AT指令联网实战

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

2026/10/15 22:33:56 阅读更多 →
直流偏磁下变压器励磁电流谐波分析与Simulink仿真

直流偏磁下变压器励磁电流谐波分析与Simulink仿真

简介:一份基于复杂电力系统设计(复杂电气工程系统设计)课程的A等实验报告,面向电气工程及其自动化专业学生,聚焦直流偏磁下变压器励磁电流的谐波特性分析。报告从地磁风暴和高压直流输电两类工程背景切入,说…

2026/10/15 22:32:56 阅读更多 →

最新新闻

Python函数全解析:从基础语法到工程实践

Python函数全解析:从基础语法到工程实践

函数是每个 Python 开发者都绕不开的核心话题,无论你写的是几十行的脚本,还是几千文件的大型系统,本质上都是在定义函数、调用函数、组织函数。很多人学完基础语法后写代码总感觉“差点意思”,代码又长又乱,改一个逻辑…

2026/10/15 23:20:40 阅读更多 →
PyTorch深度学习实战:动态图、张量与自动求导核心机制解析

PyTorch深度学习实战:动态图、张量与自动求导核心机制解析

1. 为什么“PyTorch”这三个字值得单独拿出来聊 如果你在深度学习圈子里待过一阵子,大概率会发现一个现象:大家聊模型结构、聊训练技巧、聊部署方案的时候,绕来绕去最后总会落到一个东西上—— PyTorch 。它不是一个具体的项目名&#xff0…

2026/10/15 23:20:40 阅读更多 →
本地SSL不是一张证书的事:宝塔面板商城HTTPS配置全解析

本地SSL不是一张证书的事:宝塔面板商城HTTPS配置全解析

在本地环境跑商城系统,很多人都是到了登录页才开始和 HTTPS 较劲的。我上一次用宝塔面板部署萤火商城,本地访问一切正常,唯独开了 SSL 之后就冒出各种怪问题:要么证书装了页面直接打不开,要么首页能开但一动就跳回 htt…

2026/10/15 23:20:40 阅读更多 →
用Web Audio实现网页消息提醒音:前端提示音库架构与避坑指南

用Web Audio实现网页消息提醒音:前端提示音库架构与避坑指南

简介:网页消息提醒音js是一份面向Web前端开发者的轻量级交互资源,解决网页应用中新消息或事件到来时的提示音播放需求,适合在实时通讯、社交网络、在线协作等场景中提升用户感知效率。资源共3个文件,压缩包仅181KB,包含…

2026/10/15 23:20:40 阅读更多 →
UE4塔防游戏C++核心实现:对象池、路径AI与数据驱动波次管理解析

UE4塔防游戏C++核心实现:对象池、路径AI与数据驱动波次管理解析

简介:这款基于UE4.22引擎开发的3D塔防游戏工程,是作者的个人学习项目,面向想从零接触虚幻引擎与C游戏开发的学习者。玩法是在地图周围的岩石区域布置炮塔,抵御连续11波士兵进攻;每波敌人数量与生命值都会逐步提升&…

2026/10/15 23:20:40 阅读更多 →
NAT与动态路由深度联动:智能制造网络的自适应通信架构

NAT与动态路由深度联动:智能制造网络的自适应通信架构

1. 项目概述:这不是教科书里的概念堆砌,而是真实网络边界上每天都在发生的“交通调度”你有没有遇到过这样的场景:某实验室新部署了一套工业视觉检测系统,后端服务器在内网192.168.100.0/24网段,前端质检终端却分散在车…

2026/10/15 23:19:39 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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/15 9:49:14 阅读更多 →