从CC2640R2F迁移到CC2640R2L:硬件设计、射频调试与认证实战指南
1. 项目概述与迁移背景在物联网产品开发中无线微控制器MCU的选型与迭代是决定产品性能和成本的关键。我经历过不少项目从原型验证到量产中途因为芯片停产、成本优化或性能升级而需要更换核心无线芯片的情况屡见不鲜。最近德州仪器TI的SimpleLink™平台从CC2640R2F演进到CC2640R2L就引发了大量工程师关于硬件设计迁移的讨论。很多朋友拿到官方的迁移指南文档后虽然知道了“引脚兼容”这个结论但在实际动手时面对外围电路调整、射频性能微调和重新认证这些具体问题依然会感到无从下手担心贸然更换会带来未知的风险。这篇文章我就结合自己从CC2640R2F切换到CC2640R2L的实际项目经验为你彻底拆解这次迁移的所有硬件细节。我们不止步于文档上的表格对比而是要深入到PCB布局、电源设计、外围电路适配以及最让人头疼的射频认证环节。无论你是正在维护基于CC2640R2F的老产品还是计划在新设计中使用更新的CC2640R2L这篇指南都将帮你厘清思路避开我踩过的那些坑确保你的设计迁移过程平稳、高效且最终产品能可靠地通过各项测试。2. 核心差异深度解析不只是少了个传感器控制器官方文档列出了CC2640R2F和CC2640R2L的主要区别但表格背后的工程意义需要结合具体应用场景来理解。我们不能只看“有”或“无”更要问“对我的设计意味着什么”。2.1 外围设备删减的影响与应对最显著的改变是CC2640R2L移除了传感器控制器引擎SCE、比较器和恒流源。这对不同应用的影响天差地别。传感器控制器引擎SCE的移除这是影响最大的一点。在CC2640R2F上SCE是一个独立、超低功耗的协处理器能在主CPU深度睡眠时独立处理模拟和数字传感器数据如ADC采样、电容触摸检测、执行简单的逻辑判断并仅在需要时才唤醒主CPU。这对于需要持续监测环境但又要极致省电的应用如无线温湿度传感器、智能门锁的触摸唤醒是杀手级功能。如果你的旧设计重度依赖SCE来实现低功耗数据采集那么直接迁移到CC2640R2L是不可行的。主CPU将不得不更频繁地被唤醒来处理这些任务导致整体平均功耗显著上升。实操心得评估SCE依赖度。检查你的固件中是否使用了Sensor Controller Studio生成的代码或相关驱动API。如果只是用了SCE做简单的周期性ADC采样可以考虑改用CC2640R2L主CPU的定时器触发ADC并优化采样间隔与睡眠策略。但如果用了SCE处理复杂的电容触摸序列或低频通信协议则可能需要重新评估方案甚至考虑更换其他保留SCE的TI芯片如CC2652系列。比较器和恒流源的移除这两个外设通常用于特定的模拟功能。比较器常用于电池电压监测、过零检测等恒流源则用于直接驱动LED或某些传感器。它们的移除意味着所有相关的模拟信号链必须由外部电路实现。比较器替代方案如果需要电压监测可以改用CC2640R2L内部ADC定期采样通过软件判断阈值。但要注意ADC在采样时功耗高于比较器且响应速度可能稍慢。对于需要快速响应的保护电路如过流保护必须使用外部高速比较器芯片。恒流源替代方案驱动LED是最常见的场景。你需要设计一个外部恒流电路可以用一个三极管或MOSFET搭配一个运算放大器和一个参考电阻来搭建也可以直接选用集成的恒流LED驱动芯片。这会增加BOM成本和PCB面积。2.2 封装与引脚兼容性的真实含义文档提到7x7mm (RGZ) 和5x5mm (RHB) 封装是引脚兼容的。这里的“引脚兼容”指的是物理焊盘位置和电气引脚定义如哪个引脚是GND哪个是DIO_1完全一致。这意味着如果你的旧PCB使用的是这两种封装之一你可以直接把CC2640R2F焊下来焊上CC2640R2L从物理连接上是通的。但是“引脚兼容”不等于“即插即用”。因为被移除的外设对应的引脚其功能可能发生了变化。例如在CC2640R2F上某个用于SCE模拟输入的DIO在CC2640R2L上可能就是一个普通的GPIO或复用为其他数字功能。如果你的电路恰好利用了这个引脚的特殊功能那么即使焊上去电路也无法工作。因此必须对照两颗芯片的数据手册逐一核对你在项目中用到的每一个引脚的具体功能确认在CC2640R2L上是否可用以及是否需要软件上重新配置复用功能。关于新封装YFV (2.7x2.7mm)这是CC2640R2L新增的超小封装为极致尺寸的应用提供了可能。但这意味着全新的PCB布局设计无法复用旧版图。同时这种WCSP封装对PCB制造工艺如焊盘尺寸、阻焊层开口、贴片精度和返修工艺要求极高需要与你的生产厂家充分沟通其工艺能力。2.3 功耗与射频性能的细微变化待机电流表格显示在启用缓存Cache的情况下CC2640R2L的静态电流6.2 μA比CC2640R2F约2.8-3.0 μA要高出一倍多。这对于依赖长周期睡眠例如每秒唤醒一次发送数据其余时间深度睡眠的电池供电设备来说需要重新评估电池寿命。你需要根据新的电流数据结合你的应用唤醒 profile重新计算平均电流和预期续航时间。射频灵敏度方面CC2640R2L在BLE 2M PHY下为-90 dBm比CC2640R2F的-91 dBm差了1 dB。这1 dB的差异在大多数室内和短距应用中可能感知不强但它意味着在极限通信距离的边缘链路的余量Link Margin会减少1 dB。如果你的产品设计本就工作在信号强度的临界点这1 dB的恶化可能导致通信不稳定或丢包率上升。在迁移测试中必须加强对极限距离和复杂环境如穿墙下的射频性能测试。3. PCB设计复用与检查清单“PCB设计可以复用”是一个美好的起点但绝非终点。直接使用旧版PCB贴装新芯片前必须进行一次全面的设计审查。3.1 原理图级检查与修改外围电路重设计如前所述移除所有为SCE、比较器、恒流源服务的电路。例如连接到SCE模拟输入引脚的传感器、用于比较器参考电压的分压电阻网络、由恒流源直接驱动的LED等。这些电路需要根据新的方案使用外部IC或软件实现重新设计。未使用引脚处理检查那些在CC2640R2F上未使用但在新设计中可能因功能删除而变为“悬空”的引脚。良好的习惯是为所有未使用的GPIO配置为输出低或带上拉/下拉电阻避免引脚浮空引入噪声或增加功耗。电源去耦电容验证虽然芯片核心电源要求可能类似但仍需核对CC2640R2L数据手册对电源去耦的精确推荐。确保电源引脚附近的去耦电容通常是0402或0201封装的0.1μF和1μF陶瓷电容的容值、数量和布局符合新芯片的要求特别是为内部RF模块供电的VDDR引脚。射频匹配网络理论上如果封装相同且TI没有特别说明50欧姆射频匹配网络由电感和电容组成的π型网络可以复用。但强烈建议使用网络分析仪重新测量从天线端口看进去的S11参数回波损耗。由于芯片内部RF前端可能有细微调整最佳匹配点可能会偏移。微调匹配网络的元件值通常是1-2个电容使2.4GHz频点处的回波损耗最小例如-15 dB可以优化射频输出功率和接收灵敏度弥补那1 dB的灵敏度损失。3.2 布局与布线关键点复查即使原理图没问题PCB布局的细节也决定了射频性能的成败。射频走线必须保证从芯片RF_OUT引脚到天线连接器或板载天线的走线是严格的50欧姆微带线。复用旧板时需确认板材的介电常数、层叠结构没有变化。任何拐角应使用圆弧或45度角避免90度直角。射频走线下方必须是完整的地平面且周围用地过孔屏蔽。电源分割与地平面检查为模拟、数字、射频部分供电的电源分割是否合理。确保芯片下方尤其是射频部分下方有完整、未被分割的地平面作为稳定的参考地和屏蔽层。数字噪声很容易通过电源和地耦合到敏感的射频电路中。晶体振荡器电路这是心脏部分。确保为32.768 kHz低频晶振和24/48 MHz高频晶振预留的负载电容值是正确的。即使型号不变从F换到L芯片的输入电容也可能有微小变化。最稳妥的方法是在板子上为负载电容预留0201封装的焊盘位置方便调试时并联或更换电容用示波器观察并调整负载电容使波形最干净、幅度适中。3.3 设计文件更新管理在EDA工具中务必用CC2640R2L的官方封装符号和器件符号替换掉CC2640R2F的。更新BOM清单删除不再需要的外围元件增加新方案所需的外部元件。给新版PCB设计一个清晰的版本号例如从Rev1.0(F)升级到Rev1.1(L)并在丝印上明确标注使用的芯片型号避免未来生产时混淆。4. 射频合规性认证迁移中最易忽略的雷区这是从工程样品转向量产过程中最容易出问题、也最昂贵的环节。很多人认为“引脚兼容”就等于“认证兼容”这是一个危险的误解。4.1 为何需要重新评估或认证全球无线电法规如美国的FCC、欧盟的RED、中国的SRRC认证的是“最终产品”的射频特性。虽然芯片本身有模块认证如FCC ID但当你把它用在你的PCB上其射频性能输出功率、频谱模板、带外发射等会受到你设计的PCB布局、电源质量、天线性能以及周围元件的影响。即使你使用了同一块PCB仅仅将芯片从F换成L也可能因为芯片内部射频前端硅片的细微工艺差异、功耗变化导致的电源噪声差异而使得最终的射频测试结果超出原有认证报告的范围。4.2 实际操作路径分析通常你有三条路可以走完全重新认证这是最彻底、最无风险的方式但成本最高、周期最长。你需要将装有CC2640R2L的完整产品送到有资质的实验室按照全新的产品进行全套射频、安全和电磁兼容测试。适用于产品生命周期长、出货量大的项目。申请认证变更Amendment或豁免Waiver这是针对“引脚兼容”替换的常用策略。你需要向原来的认证机构或国家的监管机构提交一份技术变更说明。这份说明的核心是证明更换芯片后产品的射频性能没有发生实质性变化。如何证明你必须提供新旧两个版本产品的关键射频参数对比测试报告。至少包括传导输出功率、调制频谱、带宽、带外杂散发射等。这份报告最好由第三方实验室出具更具公信力。你的迁移指南和芯片数据手册中的差异表格尤其是那1 dB灵敏度和功耗差异可能会被审核员重点关注。你需要合理解释这些差异不会导致整机违规例如灵敏度变差意味着发射需求可能更高但仍在限值内。基于模块认证的自我声明如果TI为CC2640R2L提供了与你之前使用的CC2640R2F同等级、且适用于你产品天线类型的模块认证例如都是PCB天线方案并且你的产品设计完全遵循了该模块认证的安装指南如天线类型、PCB布局要求那么在某些法规体系下如FCC的模块化认证你可能可以引用芯片的模块认证减少整机测试项目。但这需要极其谨慎地核对所有前提条件。踩坑实录我曾在一个项目中试图走“变更”路径但自己内部测试不够全面。实验室测出在某个特定频点新版产品的带外发射有0.5 dB的超出。虽然超出很少但按规定就是不合格。最终不得不花费额外的时间和金钱进行局部电路调整优化了电源滤波并重新测试。教训是在送交正式评估前自己务必先用频谱仪进行一轮完整的预扫描测试确保所有指标都有足够的余量建议留出3 dB以上的设计余量。4.3 与测试实验室的早期沟通千万不要把板子做好了才去找实验室。在PCB设计阶段就应联系你计划使用的认证测试实验室告知他们你计划进行芯片迁移。他们可以提供具体的建议需要提供哪些数据、走变更流程的可能性有多大、预计的时间和费用。他们经验丰富听过见过很多案例他们的早期反馈能帮你避免方向性错误。5. 系统化迁移实施流程与验证理论分析清楚后需要一个可执行的步骤来落地。5.1 分阶段迁移实施步骤评估与决策阶段列出旧产品中所有使用到的CC2640R2F外设功能。对照差异表识别不可直接迁移的功能主要是SCE、比较器、恒流源。评估替代方案软件实现或外部电路的可行性、成本、功耗和开发工作量。做出决策是直接迁移修改外围电路还是重新选型换用其他含SCE的芯片硬件设计阶段基于决策修改原理图删除无用电路增加新电路。如果复用PCB布局则在原版图基础上进行“工程变更”ECO仅修改必要的走线和元件。如果改动大建议重新布局尤其是射频部分。生成新的Gerber和BOM文件。样板制作与调试阶段打样新版PCB焊接CC2640R2L芯片。基础电源与时钟调试上电后首先用万用表和示波器检查所有电源电压是否稳定、纹波是否达标高低频晶振是否起振、波形是否正常。软件移植与功能调试移植固件重点修改引脚初始化、外设驱动用GPIO模拟或删除SCE相关代码。先调试基础功能GPIO、UART、I2C等再调试蓝牙协议栈。射频性能初步验证使用TI的SmartRF Studio软件或自定义程序测试芯片的传导射频性能输出功率、接收灵敏度。可以使用简单的环回测试Loopback Test或与一个已知良好的设备进行通信距离测试。预认证与正式认证阶段在实验室进行正式认证前自行或用简易设备进行射频预测试确保关键参数有余量。整理技术文档联系测试实验室启动认证流程。5.2 重点验证项目清单制作新样板后不要急于烧写复杂应用按以下顺序验证验证项目测试方法预期结果/通过标准备注电源完整性示波器带带宽限制测量各电源引脚DCDC_SW, VDDR, VDDS等电压值在数据手册范围纹波50mV具体按手册要求重点测射频发射时的瞬态纹波低频晶振(32.768kHz)示波器高阻探头测量晶振引脚正弦波幅度稳定频率准确注意探头负载效应最好用有源探头高频晶振(24/48MHz)示波器测量晶振引脚稳定方波/正弦波无过冲、振铃调整负载电容以获得最佳波形基本IO控制程序控制GPIO输出高低用万用表/示波器测量电平变化正确驱动能力正常验证所有计划使用的GPIO射频传导功率通过射频线连接至频谱仪用软件设置发射输出功率在设定值±1dB内频谱模板符合标准测试多个信道和功率等级蓝牙连接功能使用手机如nRF Connect扫描并连接能发现设备并建立稳定连接测试广播、连接参数协商关键外设通信测试UART/I2C/SPI与外部器件通信数据收发正确无错误验证移植后的驱动程序低功耗电流电流表如Keysight N6705C串联电池测量不同模式电流睡眠电流接近数据手册典型值平均电流符合预期需精确设置设备工作模式5.3 常见问题与排查技巧问题1芯片上电后不工作无法连接调试器。排查首先检查3.3V或1.8V主电源和复位引脚RESET_N电平。然后检查高频晶振是否起振。CC26xx系列严重依赖外部晶振晶振不起振是一切问题的根源。检查晶振电路布线、负载电容值并尝试替换晶振本体。问题2蓝牙信号弱通信距离明显缩短。排查首先用传导测试排除天线问题。如果传导功率正常问题大概率在天线或射频走线上。检查天线匹配电路元件值是否因焊接变成虚焊或损坏。检查天线周围是否有金属物体或敷铜太近导致性能下降。如果传导功率就不对检查芯片的RFIO引脚到匹配电路的走线以及为RF部分供电的VDDR引脚滤波电容。问题3设备运行一段时间后死机或重启。排查重点怀疑电源问题。用示波器长时间监测电源纹波特别是在射频发射的瞬间看是否有大的电压跌落。检查PCB布局数字部分的高速信号线是否对电源或射频部分造成了干扰。此外检查软件中是否有堆栈溢出、内存泄漏等问题。问题4待机电流远高于数据手册值。排查使用电流表逐步关闭外设在软件中配置IO口为低功耗状态、断开外部可能漏电的电路如传感器、LED观察电流变化。一个常见的坑是未使用的GPIO引脚处于浮空输入状态可能会因感应电压而产生微安级的漏电流。确保所有未使用引脚都配置为输出低或使能内部上拉/下拉。迁移芯片是一个系统工程硬件改动是看得见的起点而由此引发的软件适配、性能验证和合规性更新才是真正需要投入精力的地方。我的经验是永远为认证留出比想象中更多的时间和预算缓冲。每次切换核心元件都当作一次对产品可靠性的重新审视这个过程虽然繁琐但能帮你更深入地理解自己的设计往往也能发现并优化一些之前忽略的问题。

相关新闻

Linux二进制文件查看工具:xxd与hexdump详解

Linux二进制文件查看工具:xxd与hexdump详解

在日常开发工作中,我们经常需要查看二进制文件的内容,比如分析程序的可执行文件、调试网络数据包、检查文件格式等。直接使用文本编辑器打开二进制文件会显示乱码,这时候就需要专门的二进制查看工具。本文将详细介绍 Linux 系统中两个强大的二…

2026/10/10 8:12:10 阅读更多 →
Billu_bOx2.7靶机渗透实战:从信息收集到Root权限提升完整解析

Billu_bOx2.7靶机渗透实战:从信息收集到Root权限提升完整解析

1. 项目概述:一次从零到Root的实战演练 最近在安全圈里,Billu_bOx2.7这个靶机又火了起来。它被很多朋友称为“Web渗透的经典综合试卷”,原因无他,这个靶机几乎囊括了从信息收集到权限提升的完整攻击链,而且每个环节都设…

2026/10/11 12:38:20 阅读更多 →
AI自动生成系统架构图的技术实践与优化

AI自动生成系统架构图的技术实践与优化

1. 项目背景与核心价值 去年在为一个金融客户做系统重构时,我连续熬了三个通宵画架构图。那些不断返工的UML图表和永远对不齐的Visio箭头,让我开始思考:为什么不能让AI理解我的设计意图,自动生成专业级架构图?经过半年…

2026/10/14 14:41:47 阅读更多 →

最新新闻

AI论文写作工具实测:宏智树 AI 能否打通从开题到答辩的全流程

AI论文写作工具实测:宏智树 AI 能否打通从开题到答辩的全流程

论文季一到,群里问得最多的就是一句:AI写论文到底哪个软件最好。说实话,这个问题我每年都会被追问,而且每年都会发现一个尴尬的事实——很多通用AI聊天工具,你让它写个通知、写个周报,它相当利索&#xff1…

2026/10/15 9:09:51 阅读更多 →
Java List集合高效查找方案与性能优化实践

Java List集合高效查找方案与性能优化实践

1. List集合查找问题的本质与挑战在Java开发中,List作为最常用的集合类型之一,存储着大量对象实例。当我们需要从包含成千上万元素的List中查找特定对象时,性能问题就会凸显。我曾参与过一个电商后台系统开发,商品列表页的筛选功能…

2026/10/15 9:09:51 阅读更多 →
Vue KeepAlive组件缓存原理与性能优化实践

Vue KeepAlive组件缓存原理与性能优化实践

1. 组件缓存的核心价值与实现思路在前端开发中,频繁的组件销毁与重建是性能损耗的主要来源之一。以电商平台商品详情页为例,当用户从列表页进入详情页再返回时,传统模式下列表页组件会经历完整的销毁与重建过程,这不仅导致滚动位置…

2026/10/15 9:09:51 阅读更多 →
Vue KeepAlive组件缓存原理与优化实践

Vue KeepAlive组件缓存原理与优化实践

1. 组件缓存的核心价值与实现思路在前端开发中,我们经常会遇到这样的场景:用户在一个包含表单输入的页面填写了大量数据,然后跳转到其他页面查看信息,当返回时发现所有输入内容都被重置了。这种体验对于用户来说无疑是灾难性的。组…

2026/10/15 9:09:51 阅读更多 →
开源视觉语言模型 Clef:本地部署替代闭源API的图片识别方案

开源视觉语言模型 Clef:本地部署替代闭源API的图片识别方案

最近圈子里讨论最多的一件事,就是 Cloudflare 开源了 Clef。用过 Jev 的人应该都有体会,那个模型看图的水平确实强——你给它一张前端页面截图,它能帮你把布局、间距、配色说得很清楚;你把终端报错截图丢给它,它能直接…

2026/10/15 9:09:51 阅读更多 →
Nacos源码启动全流程:环境配置、编译打包与IDEA调试实战

Nacos源码启动全流程:环境配置、编译打包与IDEA调试实战

1. 为什么源码启动 Nacos 比下载压缩包更值得折腾很多人第一次接触 Nacos 都是直接去官网拖一个 release 包,解压、改改application.properties、执行startup.sh -m standalone,看到控制台打印出那个绿色的启动成功日志,就觉得已经掌握了。但…

2026/10/15 9:08:50 阅读更多 →

日新闻

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/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

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

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

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

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

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

2026/10/14 3:29: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/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/14 7:53:34 阅读更多 →