从SmartRF05EB引脚配置解析嵌入式硬件设计:资源复用与版本演进
1. 项目概述从引脚表到硬件设计的深度解析在嵌入式硬件开发尤其是无线射频RF评估板的设计与调试中有一份文档的价值往往被低估那就是微控制器MCU的引脚配置表。很多工程师拿到评估板第一反应是跑通示例代码看看射频性能却容易忽略这张看似枯燥的表格背后所蕴含的完整系统设计逻辑。今天我们就以德州仪器TI经典的SmartRF05EB评估板为例深入拆解其USB MCU这里特指CC2511的引脚配置这不仅仅是看哪个引脚接了什么更是理解整块评估板硬件架构、通信链路设计以及潜在扩展能力的钥匙。对于从事Zigbee、低功耗RF SoC开发的工程师而言吃透这份引脚定义意味着你能更自如地进行底层驱动定制、外设扩展甚至在设计自己的核心板时避开许多前人踩过的坑。SmartRF05EB评估板本身是一个功能强大的多功能平台主要用于评估TI的CC25xx系列等低功耗RF片上系统SoC和收发器。它的核心“大脑”之一就是负责USB通信、板载管理以及充当PC端工具如SmartRF Studio桥梁的USB MCU——CC2511。这份引脚配置表清晰地勾勒出了这颗MCU如何通过其有限的GPIO资源高效地调度SPI、UART、调试接口、按钮、LED、LCD、摇杆等十多个外设和功能模块。理解它你就能明白为什么在某个模式下LED不亮为什么调试接口需要特定的跳线设置以及如何为自己的定制固件分配这些宝贵的硬件资源。2. 核心设计思路资源复用的艺术与版本演进2.1 引脚功能的多重角色与切换逻辑初看SmartRF05EB的引脚配置表你可能会觉得有些引脚的定义比较“拥挤”甚至存在冲突。这正是评估板设计的精妙之处——在有限的物理引脚和连接器下实现最大化的功能覆盖和向后兼容性。以CC2511的P0.0和P1.6引脚为例在Rev 1.3版本中它们的功能并非固定不变而是通过一个物理开关P21来决定的。P0.0引脚的双重身份NORMAL模式作为SPI_SELECT信号。当此信号被拉低时它会启用一个特殊的CC2520嗅探器接口。这个设计非常巧妙它不是为了常规应用而是专用于测试和诊断目的。在开发射频协议栈或调试底层射频驱动时这个接口可以捕获SPI总线上的原始数据流帮助工程师分析CC2520收发器与MCU之间的交互是否正常是定位硬件通信问题的利器。CC2511JOY模式作为JOY_LEVEL信号。此时它变成一个模拟输入引脚用于读取摇杆产生的模拟电压值。通过ADC采样这个电压软件可以解码出摇杆当前的确切位置中心、上、左、右、下。这种设计避免了为五向摇杆占用多个数字IO仅用1个模拟引脚1个数字引脚JOY_MOVE就实现了全部状态检测。P1.6引脚的双重身份NORMAL模式作为DBG_DD_DIR信号。这是一个方向控制信号用于管理外部调试接口Ext SoC Debug上数据流的方向。当连接其他SoC进行在线调试时这个信号控制电平转换器的数据流向是确保调试数据双向通信正确的关键。CC2511JOY模式作为JOY_MOVE信号。这是一个数字输入信号任何摇杆动作按下或向任何方向移动都会产生一个高电平脉冲。这个信号通常用于触发中断让MCU知道“摇杆状态发生了变化”然后MCU再通过JOY_LEVEL去读取具体位置。这种“中断查询”的组合是处理人机交互输入的典型高效做法。实操心得这种通过硬件开关改变引脚功能的设计在评估板上很常见。它的好处是极大的灵活性但带来的挑战是如果你的软件没有正确识别当前开关状态就可能操作错误的硬件资源导致功能异常。在编写驱动时一定要在初始化阶段明确当前板卡的硬件配置模式或者通过软件读取某个状态引脚如果提供来判断。2.2 硬件版本的迭代与兼容性设计从你提供的资料可以看出SmartRF05EB从Rev 1.3演进到了Rev 1.7和1.8。这种迭代并非简单的Bug修复而是包含了重要的硬件逻辑改进。理解这些变化对于在不同版本板卡间移植软件或复用设计至关重要。Rev 1.7 的核心改进电源统一板载稳压输出统一为3.3V不再因电源USB、DC或电池不同而变化旧版电池供电时是3.3VUSB/DC时是3.0V。这大大简化了外围电路设计确保所有外设和EM板都在稳定的电压下工作提高了测量的一致性和可靠性。模式开关P19的引入这是Rev 1.7最重大的变化。它新增了一个“MSP”与“SoC”的模式选择开关。MSP模式完全兼容Rev 1.3的行为模式。所有LED和按钮的控制权归板载USB MCUCC2511或可选的MSP430附加板。SoC模式在此模式下插在评估板上的RF SoC EM如CC2530可以访问板上全部4个LED。这解决了旧版设计中SoC无法直接控制所有LED的限制方便了基于SoC的应用程序开发例如用LED直接指示网络状态。按钮1极性可变在SoC模式下按钮1的极性从MSP模式下的“低有效”按下为低电平变为“高有效”按下为高电平。这个改动是为了适配不同SoC的中断触发方式。文档甚至提到可以通过读取这个引脚的电平在无人按压时来判断P19开关的位置这是一个很巧妙的软件检测硬件配置的方法。信号共享的权衡为了实现SoC控制全部LED不得不进行信号复用。例如当SoC使用LED3时它会影响到EM板的SPI片选信号EM_CS。文档指出这通常不是问题因为SoC默认不实现SPI从机功能。但当SoC使用LED4时它与按钮1的信号是共享的因此按钮1和LED4不能同时被SoC使用。这是在设计时必须牢记的硬件约束。Rev 1.8 的改进主要是布局优化、电源去耦改进和稳压器更换提供了更稳定的射频电源移除了“低电量”LED。在功能上和软件兼容性上与Rev 1.7完全一致。这意味着为Rev 1.7编写的软件可以无缝运行在Rev 1.8上。注意事项当你拿到一块SmartRF05EB第一件事应该是确认硬件版本通常印在PCB上并检查模式开关P19的位置。如果你要运行TI官方的Z-Stack或TIMAC对于Rev 1.7/1.8的板卡源码中通常已经通过HAL_BOARD_CC2530EB_REV17这样的宏定义来处理差异。但如果你是自己编写底层驱动就必须根据版本和开关位置来初始化正确的引脚功能和极性。3. 引脚配置表深度解析与驱动开发要点下面我们以Rev 1.7的引脚配置表为核心结合原理图分类详解关键引脚组的功能、连接和驱动编写时的注意事项。3.1 通信接口引脚SPI、UART与调试命脉这部分引脚构成了评估板与外部世界PC、EM模块数据交换的通道。SPI总线引脚 (P0.2 - P0.5) 这是USB MCUCC2511与插在板上的EM模块如CC2530EM进行高速数据通信的主要通道。USB_CS(P0.2): SPI片选。低电平有效用于选中EM模块上的SPI从设备。USB_SCLK(P0.3): SPI时钟线。USB_MOSI(P0.4): 主设备输出从设备输入。数据从CC2511发送到EM模块。USB_MISO(P0.5): 主设备输入从设备输出。数据从EM模块发送到CC2511。驱动开发要点CC2511作为SPI主机需要正确配置时钟极性CPOL和相位CPHA以匹配从设备EM模块上的RF芯片。通常TI的RF芯片SPI模式为0CPOL0 CPHA0或3。务必查阅具体EM模块上芯片的数据手册。SPI时钟频率也需要合理设置过高可能导致通信错误过低则影响性能。UART引脚 (P1.4, P1.5, P1.2, P1.3) 用于与PC或其他串口设备通信常用于打印调试信息或进行AT命令控制。USB_UART_TX(P1.4): 串口发送。USB_UART_RX(P1.5): 串口接收。USB_UART_RTS(P1.2): 请求发送流控制。复用为USB_LED控制。USB_UART_CTS(P1.3): 清除发送流控制。复用为USB按钮输入。注意事项P1.2和P1.3的复用意味着你不能同时使用完整的硬件流控制和独立的LED/按钮功能。在大多数评估场景下流控制可能不是必需的你可以将这两个引脚用作普通的GPIO来控制LED D6和读取USB按钮的状态。如果确实需要硬件流控制则需要放弃这两个外设功能并在软件中正确配置引脚复用寄存器。调试接口引脚 (P1.1, P1.6, P1.7, P2.1, P2.2) 这是用于CC2511自身编程和调试以及作为桥梁调试其他SoC的关键。USB_DBG_DC(P1.1) USB_DBG_DD(P1.7): 这是CC2511的调试时钟和数据线连接到板上的“USB Debug”接口P2。通过这个接口可以使用另一个SmartRF05EB或04EB作为编程器对这块板上的CC2511进行固件更新甚至在紧急情况下恢复损坏的引导程序。DGB_DD_DIR(P1.6): 如前所述在NORMAL模式下控制外部调试接口数据方向。CC2511 DBG_DD(P2.1) CC2511 DBG_DC(P2.2): 这两个引脚直接连接到CC2511芯片的调试接口。它们通常被连接到板上的“Ext SoC Debug”接口P3使得这块评估板可以充当一个调试主机去编程和调试插在EM座上的或其他通过P3连接的目标SoC。3.2 外设控制引脚人机交互与存储管理LCD控制引脚 (P2.0, P2.3, P2.4)USB_IO_RESET(P2.0): 在Rev 1.7中更名为USB_IO_RESET低电平有效用于同时复位板载的串行Flash和LCD屏幕。这是一个全局复位信号。LCD_MODE(P2.3): 选择LCD的并行或串行操作模式。对于常见的SPI接口LCD模块此引脚通常需要设置为特定电平以选择串行模式。LCD_CS(P2.4): LCD的SPI片选信号。注意板上的LCD和串行Flash共享SPI总线MISO, MOSI, SCLK但使用不同的片选LCD_CS和FLASH_CS来区分。按钮与LED引脚 这部分在Rev 1.7后变得复杂因为引入了模式开关P19。按钮1其信号路径受P19控制。在MSP模式下信号IO_BUTTON1/IO_LED4_SOC通往USB MCU为低有效。在SoC模式下该信号EM_BUTTON1/EM_LED4_SOC通往EM座为高有效且与LED4控制信号冲突。LED1-4控制权分配如下表所示LEDMSP模式控制源SoC模式控制源对应信号线LED1USB MCUUSB MCUIO_LED1LED2USB MCUSoC EMIO_LED2_SOCLED3USB MCUSoC EM (与EM_CS共享)IO_LED3_SOCLED4USB MCUSoC EM (与Button1冲突)IO_LED4_SOC实操心得在编写LED驱动时必须首先检测板卡版本和P19开关状态可通过读取Button1空闲电平实现。对于LED2-4在SoC模式下控制权完全交给了插在EM座上的SoCUSB MCU无法再直接控制它们。如果你的应用需要USB MCU始终控制某个LED请确保它被分配到LED1或者将P19保持在MSP模式。3.3 跳线器P1 P10的配置哲学跳线器是评估板灵活性的体现但也最容易导致“板子没反应”的问题。P1跳线器主要控制从USB MCU到板载电平转换器和外部连接器的信号通路。例如UART_RX/TX、SPI信号、调试接口信号等。默认状态下关键的通信链路如UART_RX/TX、SPI、调试接口的跳线是安装的Yes而流控制等备用功能跳线是开放的No。P10跳线器主要控制从USB MCU到板载外设按钮、LED、摇杆、电位器、LCD、Flash等的信号通路。默认状态下几乎所有跳线都是安装的这意味着USB MCU默认连接并控制了板上所有外设。核心原则当你需要将某个外设如某个LED或按钮的控制权交给EM板上的SoC或者需要断开某个信号以进行测量如电流测量时你需要移除P10上对应的跳线。例如要测量EM模块的纯射频电流你需要移除所有可能从VCC_EM取电的外设跳线只保留必要的调试或SPI跳线。4. 硬件设计启示与自定制扩展分析SmartRF05EB的引脚配置可以给我们的硬件设计带来很多启发。1. 信号完整性考虑板上使用了SN74AVC4T245这样的电平转换芯片来处理USB MCU可能3.3V与外部调试接口或EM模块可能1.8V或其他电压之间的电平匹配。在设计自己的板卡时如果涉及不同电压域的通信必须加入电平转换电路或确保MCU IO口兼容目标电压。2. 电源网络设计原理图清晰地区分了VCC_IO数字IO电源、VCC_EMEM模块主电源和3.3V USB等网络。并通过磁珠L4、0欧姆电阻R34 R35和大量的去耦电容C35 C36 C37等进行隔离和滤波。这对于射频电路的稳定工作至关重要噪声大的数字部分电源应与敏感的射频模拟电源分开。3. 扩展接口预留板上的P1、P10、P3Ext SoC Debug等连接器提供了丰富的扩展可能性。例如你可以通过P10的跳线将某个GPIO信号引出连接自己设计的外部传感器模块。P3接口则可以让你将这块评估板作为一个独立的调试器去调试其他基于TI SoC的设备。4. 测试点TP1-TP4原理图中标注的测试点方便了开发过程中的电压测量和信号探测。在自己的设计中为关键电源和信号线预留测试点是一个好习惯。5. 常见问题排查与实战技巧结合文档中的FAQ和实际经验以下是一些典型问题的排查思路问题1板子上电后无任何反应LED不亮。排查首先检查电源开关P8是否打开。然后逐一检查P1和P10上的所有跳线是否处于默认位置。一个常见的错误是为了电流测量移除了跳线之后忘记恢复导致MCU或外设失电。使用万用表测量VCC_IO和VCC_EM测试点TP1 TP2等是否有正确的3.3V电压。问题2USB连接电脑后无法识别或SmartRF Studio找不到设备。排查确认USB线缆良好。检查电脑设备管理器看是否有未知设备或带感叹号的设备。这可能需要手动安装驱动程序驱动文件通常位于C:\Program Files\Texas Instruments\Extras\Drivers。如果LED D6以1Hz频率闪烁说明CC2511进入了强制引导恢复模式。按照文档10.1节的方法断电在Rev 1.3板上将P21拨到CC2511JOYSTICK并拨动摇杆后上电在Rev 1.7板上短接P18的17和19脚并将电位器拧到最大后上电。此时D6应慢闪可用SmartRF Flash Programmer重新烧录固件。如果D6快速闪烁如10Hz说明引导程序未找到有效的应用程序同样需要重新烧录固件。问题3无法控制某个LED或读取某个按钮。排查确认硬件版本和P19开关位置。这是最常见的原因。在SoC模式下USB MCU无法控制LED2-4。检查P10上对应外设的跳线是否安装。例如LED1对应跳线P10的21-22。检查软件中对应的引脚初始化代码是否正确包括方向输入/输出、上拉/下拉电阻使能、以及功能复用选择。对于按钮注意其极性MSP模式低有效SoC模式高有效。问题4测量EM模块电流时数据不准或板子工作异常。排查为了准确测量EM模块的电流必须将EM模块的供电VCC_EM与其他电路隔离。正确做法是移除P10上所有会从VCC_EM取电的外设跳线如LED、按钮等。确保RS232电平转换器被禁用通过开关P14。将电流表万用表电流档或精密电流探头串联在P15V_EM的两个引脚之间。仅连接EM模块工作必需的跳线如SPI四根线P1的23-30或调试接口线P1的17-22。问题5固件升级失败。排查升级前务必断开所有EM模块。使用SmartRF Studio或Flash Programmer提供的官方hex文件。如果自动升级失败尝试进入强制引导恢复模式见问题2排查步骤3后进行手动升级。极端情况下可以通过“USB Debug”接口P2和另一块好的评估板作为编程器对CC2511进行外部编程这可以修复损坏的引导程序。理解SmartRF05EB的USB MCU引脚配置就像拿到了一张硬件地图。它不仅能指导你正确驱动每一个外设更能让你洞悉评估板整体的设计权衡与通信架构。当你需要超越评估板进行二次开发或自主设计时这份深入的理解将成为你最宝贵的财富。记住硬件设计是妥协的艺术而阅读原理图和引脚定义就是理解设计师如何在这些妥协中寻找最优解的过程。

相关新闻

基于CNN的森林火灾智能检测系统设计与优化

基于CNN的森林火灾智能检测系统设计与优化

1. 项目背景与核心价值森林火灾是全球范围内频发的自然灾害之一,传统的人工监测方式存在响应延迟、覆盖范围有限等问题。这个毕业设计项目采用卷积神经网络(CNN)构建智能检测系统,通过分析卫星或无人机拍摄的遥感图像,…

2026/10/2 8:41:21 阅读更多 →
深入解析CC2430无线SoC:硬件AES、RSSI/LQI与CSMA/CA协处理器实战

深入解析CC2430无线SoC:硬件AES、RSSI/LQI与CSMA/CA协处理器实战

1. 项目概述:深入CC2430的无线通信核心在嵌入式无线领域,尤其是基于IEEE 802.15.4标准的Zigbee、6LoWPAN等低功耗网络里,TI的CC2430 SoC曾经是许多工程师绕不开的一颗经典芯片。虽然官方早已将其标记为“Not Recommended for New Designs”&a…

2026/10/5 17:41:54 阅读更多 →
空间语义描述子增强技术与多模态特征融合实践

空间语义描述子增强技术与多模态特征融合实践

1. 空间语义描述子增强的核心概念空间语义描述子是计算机视觉领域中用于表征图像或场景中物体空间关系和语义信息的重要特征表示方法。简单来说,它就像给图像中的每个物体或区域贴上一个智能标签,不仅说明"这是什么",还描述"它…

2026/10/5 21:20:44 阅读更多 →

最新新闻

Windows下cudaMallocHost为何消耗显存?WDDM机制与规避策略

Windows下cudaMallocHost为何消耗显存?WDDM机制与规避策略

1. 一个让显存凭空消失的诡异现象如果你在 Windows 上做 CUDA 开发,尤其是涉及视频处理、深度学习推理或者大规模图像缓存这类需要频繁在主机内存和显存之间搬运数据的场景,大概率绕不开cudaMallocHost这个 API。它的官方定位很清晰:分配页锁…

2026/10/7 8:03:57 阅读更多 →
宏定义与位运算使用

宏定义与位运算使用

1 #define WORD_LO(xxx) ((byte)((word)(xxx) & 255))2 #define WORD_HI(xxx) ((byte)((word)(xxx) >> 8))一个字由2字节组成。因此 WORD_LO(xxx) 取参数 xxx 的低8位, WORD_HI(xxx) 取参数 xxx 的高8位。#define ARR_SIZE(a) (sizeof(a)) / sizeof(a…

2026/10/7 8:03:57 阅读更多 →
华硕新款34寸带鱼屏发布:三模高刷屏解锁PG幸运捣蛋鬼

华硕新款34寸带鱼屏发布:三模高刷屏解锁PG幸运捣蛋鬼

华硕更新TUF Gaming系列,推出新款VG34WQML5F超宽曲面电竞显示器,采用34英寸21:9 VA面板,1500R曲率,支持WHD 420Hz、WFHD 320Hz和WQHD 260Hz三种模式,玩家可根据不同场景自由切换。搭配PG幸运捣蛋鬼等PG游戏时&#xff…

2026/10/7 8:03:57 阅读更多 →
做全屋定制10年+,我把最常被忽略的几点说清楚

做全屋定制10年+,我把最常被忽略的几点说清楚

关键词:做全屋定制10年、全屋定制企业、立心木作 一、开头先交个底 我做全屋定制这行十来年,从量尺、画图、盯工厂到跟安装,基本每个环节都干过。 这行说复杂也复杂,说简单也简单——大部分翻车的单子,问题不在工艺&am…

2026/10/7 8:02:56 阅读更多 →
REST API封装成MCP服务:从零到生产级的完整实战指南

REST API封装成MCP服务:从零到生产级的完整实战指南

搞过系统集成的老哥都知道,把API暴露给AI模型这件事,最原始的做法是写一堆提示词,告诉模型“你要调用某某接口,参数格式是xxx”。但这种方式又脆又难维护,模型理解稍有偏差,参数就对不上,整条链…

2026/10/7 8:02:56 阅读更多 →
C#上位机集成SECS/GEM协议:从报文解析到WinForm界面完整实战

C#上位机集成SECS/GEM协议:从报文解析到WinForm界面完整实战

简介:面向半导体行业C#上位机开发工程师,这是一份以SECS/GEM协议为核心、WinForm为界面的集成资源,适用于晶圆制造、封装测试等设备通信场景,专门解决协议对接难、业务逻辑杂、开发周期长等痛点。资源不是零散示例,而是…

2026/10/7 8:02:56 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

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

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

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

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

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

2026/10/7 1:02:00 阅读更多 →

周新闻

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/6 7:15:40 阅读更多 →
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/6 5:29:09 阅读更多 →
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/6 6:26:51 阅读更多 →

月新闻

我发现了一个新思路:用 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/6 8:21:32 阅读更多 →
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/6 4:21:51 阅读更多 →
黑夜航拍船只数据集训练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/6 1:18:13 阅读更多 →