TI MCU时钟系统实战:LPOCLKDET与PLL配置避坑指南
1. 项目概述与核心价值在嵌入式系统开发尤其是汽车电子、工业控制这类对可靠性和功耗有严苛要求的领域时钟系统就像是整个系统的“心跳”。这颗“心跳”不仅要稳定、精准还要能在不同工况下灵活切换比如在待机时“慢跳”以省电在运算时“快跳”以提供性能。德州仪器TI在其许多微控制器MCU中集成了高度可配置的时钟子系统其中低功耗振荡器与时钟检测模块LPOCLKDET和锁相环PLL是两个核心组件。很多工程师初次接触这些寄存器配置时往往被手册里大段的位域描述和时序图搞得晕头转向配置不当轻则导致系统时钟不稳重则直接“锁死”或功耗失控。我处理过不少因为时钟配置问题导致的系统异常比如PLL无法锁定、低功耗模式下唤醒失败或是EMC测试时因为时钟频谱问题导致通信误码。这些经历让我意识到仅仅知道“怎么配”是不够的必须深入理解“为什么这么配”以及“配错了会怎样”。本文就将结合TI技术手册中的核心内容为你拆解LPOCLKDET与PLL的配置逻辑、实战要点以及那些手册里不会明写的“坑”。无论你是正在调试一块新的控制器板卡还是试图优化现有系统的功耗与稳定性这里的内容都能提供直接的参考。2. 低功耗振荡器与时钟检测模块深度解析LPOCLKDET模块是系统时钟的“守门人”和“安全员”。它的主要职责有两个一是提供一个低功耗、低精度的内部时钟源LPO用于在外部主振荡器失效时维持系统最基本的运行或安全状态二是持续监测外部主振荡器的健康状况一旦发现异常能自动触发切换动作防止系统因时钟丢失而崩溃。2.1 LPO时钟源系统的最后防线LPO通常指片内的RC振荡器分为高频HF LPO如~10MHz和低频LF LPO如~128kHz两个版本。它的优点是功耗极低、起振快但缺点是频率精度和稳定性远不如外部晶体。因此LPO在系统中的角色非常明确上电初始化阶段在主振荡器稳定之前为芯片提供初始时钟让CPU能执行最初的启动代码。低功耗模式在深度睡眠模式下可以关闭高精度但耗电的外部振荡器和PLL仅由LF LPO为看门狗、实时时钟等关键外设提供时钟。时钟失效安全备份当外部主时钟失效时自动切换至LPO保证系统不会完全死机为执行故障记录、安全关闭等操作争取时间。2.2 时钟检测电路的工作原理与配置时钟检测电路的核心是一个窗口比较器。它持续将外部主振荡器的频率与一个由LPO产生的参考频率进行比较。手册中提到的RANGE_DET_ENA_SSET和RANGE_DET_CTRL位就是控制这个比较器行为的“钥匙”。为什么需要两把“钥匙”这是一种防误触发的安全机制。时钟源是系统的根基不允许被软件随意关闭检测。通过两个非连续的位来控制降低了因程序跑飞、内存被意外改写而导致检测功能被误关闭的风险。你必须同时且正确地设置这两位才能改变检测电路的状态。禁用时钟检测的实战场景与风险在某些极端低功耗场景下为了省去检测电路本身消耗的微安级电流你可能会考虑禁用时钟检测。操作步骤是设置CLKTEST.24为1清除CLKTEST.25为0。但手册里那句警告至关重要“时钟检测会无条件地将GCM_CLK_SRC[0]切换回振荡器”。这意味着一旦你关闭了检测即使外部振荡器真的挂了系统也不会自动切到LPO而是会尝试使用一个已经不存在的时钟源导致系统挂起。因此在禁用检测前你必须百分百确认外部振荡器工作绝对正常通常这需要在特定温度、电压下进行全面的测试验证。2.3 LPO的功耗管理与精确关闭流程为了达到最低功耗LPOCLKDET模块允许你分层次地关闭其功能这需要严格按照顺序操作否则可能导致时钟域混乱。第一步禁用HF和LF LPO时钟你不能直接断电。首先需要确保没有任何时钟域正在使用LPO时钟。然后通过设置CSDIS寄存器的相应位如CSDIS.5对应HF LPOCSDIS.4对应LF LPO来复位这些时钟。手册推荐使用CSDISSET寄存器来设置特定位这是一个很实用的技巧因为它避免了“读-修改-写”操作可能带来的并发风险。时钟会在几个LPO周期后真正关闭。这种关闭属于“热重启”重新使能通过CSDISCLR速度很快。第二步禁用LPO偏置电流源这是功耗最低的状态。只有在时钟检测和LPO时钟都已禁用后才能清除LPOMONCTL.24BIAS_ENABLE位来关闭偏置电流。从这种状态恢复被称为“冷重启”需要更长的初始化时间类似于上电复位的过程。实操心得在调试低功耗模式时我习惯用示波器或芯片的GPIO翻转来可视化时钟状态。例如在关闭LPO时钟前先配置一个GPIO在LPO时钟驱动下定时翻转。当你执行关闭操作后如果GPIO停止翻转说明时钟已停如果还能翻转说明有某个模块还在偷偷使用它你需要回头检查所有时钟域的配置。2.4 HF LPO振荡器的修调由于工艺偏差不同芯片的HF LPO频率可能围绕9.6MHz有较大离散。为了让时钟检测电路能更精确地判断主振荡器是否“失频”需要对HF LPO进行修调。芯片出厂时会在一次性可编程存储器OTP的特定地址如0xF008_01B4写入一个16位的修调值。系统初始化时软件应读取这个值并写入LPOMONCTL[15:0]。这里的关键是“微调”。手册强调修调时应逐步改变TRIM值避免大幅跳变。想象一下这就像调校一把精密的机械表应该用小螺丝刀轻轻拧动而不是猛地一拨。更进一步的修调可以借助双时钟比较模块以高精度的晶体振荡器为参考来校准LPO的频率。这对于需要LPO作为某些定时功能基准的应用如在低功耗模式下维持基本计时尤为重要。3. 锁相环配置从理论到寄存器操作PLL是现代MCU获得高性能系统时钟的核心。它能够将外部一个相对低频、稳定的晶体振荡器时钟倍频到CPU、总线、外设所需的高频。3.1 PLL核心参数解析与计算理解PLL配置本质是理解其频率合成公式f_PLLCLK (f_CLKIN / NR) * NF * (1 / OD) * (1 / R)f_CLKIN输入时钟频率通常来自外部晶体振荡器。NR(REFCLKDIV)输入预分频器。用于降低进入PFD的频率这对提高频率分辨率和环路稳定性有好处。范围通常是1到64。NF(PLLMUL)反馈环路倍频系数。这是决定VCO输出频率的关键。它是一个整数或分数通过MULMOD位域实现分数倍频。OD(ODPLL)后分频器1。用于将VCO的高频分频到合适的水平。范围1到8。R(PLLDIV)后分频器2。产生最终的PLL_CLK输出。范围1到32。VCO频率f_OutputCLK (f_CLKIN / NR) * NF它必须严格控制在数据手册规定的范围内如150MHz - 550MHz。这是硬件设计的物理限制超出范围会导致PLL无法锁定或性能恶化。配置实战步骤确定需求明确你的系统需要f_PLLCLK是多少例如120MHz。选择f_CLKIN根据你的晶体确定例如10MHz。设定NR通常选择一个值使得f_INTCLK f_CLKIN / NR在1MHz到数据手册规定的上限之间。较小的f_INTCLK有利于降低相位噪声但过小会增加锁定时间。经验值通常在1-10MHz。计算NF根据公式反推NF (f_PLLCLK * OD * R) / f_INTCLK。你需要尝试不同的OD和R组合使得计算出的NF值在合理范围内并且f_OutputCLK落在VCO允许的区间内。验证与微调使用手册中的编码表如Table 10-2将计算出的NR、NF、OD、R值转换为对应寄存器的位域。特别注意PLLMUL字段的编码方式整数部分和分数部分是分开表示的。3.2 扩频调制降低EMI的利器PLL的时钟输出是强周期的其能量会集中在基频和倍频上容易产生电磁干扰。频率调制或扩频技术可以“涂抹”这些能量显著降低峰值EMI。TI的PLL支持三角波下调频。调制深度定义了频率向下波动的幅度。例如0.5%的深度意味着时钟频率会在标称值的99.5%到100%之间周期性变化。调制频率频率变化的速率。手册建议调制频率应低于PLL环路带宽通常通过设置NS值在20附近来实现。启用时机必须在PLL锁定之后才能启用调制。如果在锁定过程中启用会干扰锁相过程导致锁定失败或不稳。调制相关的参数SPR_AMOUNT、SPREADINGRATE和MULMOD需要根据公式(8)-(11)计算设置。MULMOD的设置是为了最小化调制引入的平均频率偏移。3.3 PLL的使能、禁用与动态重配使能序列配置好PLLCTL1和PLLCTL2寄存器。通过清除CSDIS相应位或设置CSDISCLR相应位来发出使能信号。PLL内部会先确保振荡器已开启然后开始锁定过程。锁定时间T_Lock由公式给出通常需要几十到上百微秒。锁定完成后CSVSTAT寄存器中对应的CLKSRnV位会置1表明PLL输出稳定有效。动态改变输出分频器在PLL运行期间可以改变ODPLL值来调整最终输出频率。但要注意这个操作会导致PLL_CLK被门控短暂关闭3或12个输入时钟周期。关键点在改变ODPLL之前必须将所有异步时钟域如RTICLK,VCLK2的时钟源切换到其他稳定时钟如直接使用振荡器时钟。因为异步时钟域与VCLK有严格的频率关系要求PLL_CLK的短暂停顿会破坏这种关系可能引发逻辑错误。动态改变工作点如果只是微调VCO频率变化小于10%可以直接修改PLLMUL等参数PLL会平滑地重新锁定。但如果要改变REFCLKDIV或进行大的频率跳变必须先禁用PLL修改参数再重新使能。试图在PLL运行时进行大幅跳频几乎必然会导致失锁和slip错误。4. PLL故障检测、恢复与深度测量可靠的系统必须能应对时钟故障。TI的PLL提供了完善的故障检测和恢复机制。4.1 滑差检测与自动切换PLL内部通过比较参考时钟和反馈时钟的相位产生RFSLIP太快和FBSLIP太慢信号。在锁定和禁用期间这些信号被屏蔽。一旦PLL稳定运行后发生滑差就表明PLL可能失效。BPOS[1:0]位域控制着对滑差的响应策略BPOS10b禁用自动响应。滑差仅设置状态位不触发任何动作。适用于需要软件完全接管错误处理的场景。BPOS00b, 01b, 11b启用自动响应。一旦检测到滑差系统会自动将GCM时钟源1从PLL切换回振荡器并可能触发ESM错误或系统复位取决于ROS位。滑差滤波为了防止噪声引起误报滑差信号会经过一个基于HF LPO的滤波器。只有连续多个HF LPO周期内滑差都有效才会被确认为一次故障。这增加了检测的可靠性。4.2 从PLL故障中恢复如果PLL1失效并触发了切换恢复流程需要软件干预切换时钟域将所有使用PLL1作为源的时钟域如GHVSRC切换到振荡器。禁用故障PLL通过CSDISSET寄存器禁用PLL1。这会停止滑差信号但VALID标志仍被锁存。清除滑差状态向GLBSTAT寄存器中的RFSLIP或FBSLIP位写1以清除它们。此操作会解锁并清除VALID标志。重新使能PLL通过CSDISCLR重新使能PLL1等待其锁定。切回时钟域将时钟域切换回PLL1。这个流程确保了在尝试恢复一个可能硬件故障的PLL时系统时钟不会出现中断。4.3 调制深度与频率测量PLL内部集成了一个非常实用的测量电路可以用于测量调制深度验证你配置的扩频调制是否按预期工作。通过配置SSWPLL1寄存器设置捕获窗口索引等于NR使能计数器然后读取SSWPLL2和SSWPLL3中的计数值代入公式(12)即可计算出实际的调制深度。测量PLL输出频率在需要精确校准或监控频率的应用中可以使用同一电路。设置EXT_COUNTER_EN1使能计数器在软件延时后读取计数值利用公式(13)计算实际的倍频系数NF从而反推输出频率。这两个功能为系统自检、生产测试和在线监控提供了强大的硬件支持。5. 关键寄存器操作指南与避坑实录理论最终要落到寄存器配置上。以下是几个核心寄存器操作的要点和常见陷阱。5.1 时钟源控制寄存器组CSDIS,CSDISSET,CSDISCLR功能这三个寄存器用于启用或禁用包括振荡器、PLL、LPO在内的所有时钟源。CSDIS直接读写1表示禁用。CSDISSET写1到某位会将CSDIS中对应位置1禁用。优势无需先读取CSDIS避免在多任务或中断环境下读-修改-写操作期间值被更改的风险。CSDISCLR写1到某位会将CSDIS中对应位清0启用。同样具有原子操作的优势。避坑提示在禁用一个时钟源前务必通过GHVSRC等寄存器确认没有任何时钟域在使用它。否则禁用操作可能不会立即生效或者导致依赖此时钟域的外设行为异常。5.2 PLL控制寄存器PLLCTL1与PLLCTL2这是配置PLL行为的核心。配置时必须严格遵循步骤在PLL禁用状态下写入所有配置参数。使能PLL等待锁定查询CSVSTAT。如果需要启用调制在锁定完成后设置FMENA位。参数计算验证在将计算出的NR,NF等值写入寄存器前最好用脚本或计算工具进行反向验证确保f_VCO和f_PLLCLK都在有效范围内。我曾遇到过因为OD和R值配反导致VCO频率超标PLL始终无法锁定的问题。5.3 状态寄存器GLBSTAT与CSVSTATGLBSTAT重点关注OSCFAIL、RFSLIP、FBSLIP位。它们是系统时钟健康状态的“晴雨表”。在系统初始化后和运行中可以定期查询这些位作为心跳检测的一部分。CSVSTAT其中的CLKSRnV位指示各个时钟源是否稳定有效。在切换时钟源前必须确认目标时钟源的CLKSRnV位已经置1。5.4 常见问题排查速查表现象可能原因排查步骤PLL无法锁定CLKSRnV始终为01. VCO频率超出范围2. 输入时钟f_CLKIN不稳定或幅值不足3. 环路滤波器参数异常对于可配置的PLL4. 电源噪声过大1. 重新计算并验证NR,NF,OD,R配置值。2. 用示波器测量输入时钟波形质量。3. 检查PLL供电引脚的去耦电容是否靠近芯片且容值正确。4. 尝试降低目标频率或更换更稳定的晶体。系统运行时偶尔发生复位或异常1. PLL偶然失锁产生滑差触发复位若ROS使能2. 电源电压跌落导致PLL失锁3. 强电磁干扰1. 检查GLBSTAT中的滑差标志是否被置位。2. 监测系统电源轨尤其在CPU负载突增时。3. 评估PCB布局确保时钟线路远离噪声源并考虑启用PLL扩频调制以降低EMI敏感性。进入低功耗模式后无法唤醒1. 用于唤醒的时钟源如LPO未正确配置或已关闭。2. 唤醒源的中断未正确映射到低功耗时钟域。3. 低功耗模式下的时钟切换序列错误。1. 确认在进入低功耗前LF LPO已使能且稳定。2. 检查相关外设如RTC、GPIO的时钟门控和中断配置。3. 单步调试进入低功耗的代码检查每一步的时钟状态寄存器。使能扩频调制后系统不稳定1. 在PLL锁定前就启用了调制(FMENA)。2. 调制深度或调制频率设置不当超出了PLL环路的跟踪能力。1. 确保在CSVSTAT显示PLL有效后再设置FMENA位。2. 按照手册公式计算SPR_AMOUNT和SPREADINGRATE并从小深度开始尝试。最后一点个人体会时钟配置是嵌入式系统底层最需要耐心和细致的工作之一。最好的实践是在项目初期就为时钟树配置编写一个清晰、模块化的驱动函数并对所有可能的时钟源切换路径进行充分的测试和验证。把每次配置都当成一次“手术”术前核对清单参数计算术中监控生命体征状态寄存器术后观察恢复情况系统稳定性。养成这种习惯能帮你避开绝大多数时钟相关的坑。

相关新闻

OpenClaw与飞书集成:企业自动化办公实战指南

OpenClaw与飞书集成:企业自动化办公实战指南

1. 项目背景与核心价值 OpenClaw作为一款新兴的自动化工具平台,其与飞书的集成能力正在成为企业数字化办公的重要突破口。这个教程要解决的核心痛点在于:很多非技术背景的行政、HR、运营人员需要将日常重复性工作自动化,但面对API对接、权限配…

2026/10/11 10:29:24 阅读更多 →
TMS320C6000 DSP EMIF异步接口配置与Flash存储器驱动开发实战

TMS320C6000 DSP EMIF异步接口配置与Flash存储器驱动开发实战

1. 项目概述与核心价值在嵌入式DSP系统开发中,如何让高速的处理器与相对“慢速”的外部Flash存储器稳定、高效地对话,是每个工程师都会遇到的经典难题。TMS320C6000系列DSP强大的外部存储器接口(EMIF)为解决这个问题提供了硬件基础…

2026/10/11 13:13:56 阅读更多 →
Gradio安装配置及经典案例说明

Gradio安装配置及经典案例说明

1. Gradio 基本介绍 1.1 定义与核心概念 Gradio 是一个开源的 Python 库,用于为 机器学习 模型和函数创建交互式网页界面。它成立于 2020 年,由 Ali Faisal、Hamza Khan 和 Muhammad Furqan 持续开发,最新稳定版本为 5.49.1。 # 示例&…

2026/10/11 13:14:57 阅读更多 →

最新新闻

政务审校AI一体机落地实践:规则引擎与领域模型如何守住公文红线

政务审校AI一体机落地实践:规则引擎与领域模型如何守住公文红线

1. 从一份被退回三次的红头文件说起去年帮一个做政务信息化的朋友看方案,他跟我吐槽:单位新上的公文流转系统什么都好,就是审校环节卡得人想砸键盘。一份通知,三个科室来回改,每次退回的理由都差不多——“表述不够规范…

2026/10/12 6:53:00 阅读更多 →
挪威邮轮重启90年代广告语:品牌资产运营与复古营销落地全解析

挪威邮轮重启90年代广告语:品牌资产运营与复古营销落地全解析

1. 事件拆解:为什么要把90年代的广告语翻出来?挪威邮轮公司宣布为平台和宣传活动重新启用90年代的广告语,这条消息在营销圈里很快传开了。乍一看,这像是一次简单的“复古操作”,把老口号翻出来再用一遍,成本…

2026/10/12 6:53:00 阅读更多 →
高铁5G低时延优化:多普勒补偿与QoS Flow端到端保障

高铁5G低时延优化:多普勒补偿与QoS Flow端到端保障

简介:本资源是一份面向通信行业网络规划与优化工程师、电信运营商技术骨干及高校教学研究者的5G高铁通信专项指导手册,聚焦高速移动场景下的覆盖增强、切换稳定性与NR/LTE协同优化等核心难题。文档系统梳理自动频率控制、超级小区(Hyper Cell…

2026/10/12 6:53:00 阅读更多 →
联合储能配电网优化调度与新能源消纳评估的Matlab实现

联合储能配电网优化调度与新能源消纳评估的Matlab实现

我在研究所做配电方向项目已经有几年了,从传统调度切到含储能的主动配电网优化,中间踩过的坑比代码行数还多。这套联合储能参与配电网优化调度及新能源消纳能力评估的Matlab实现,是我直接用于实际算例验证的工具链,今天把它完整拆…

2026/10/12 6:53:00 阅读更多 →
Python内置函数详解:classmethod、getattr、hasattr、callable等动态属性操作

Python内置函数详解:classmethod、getattr、hasattr、callable等动态属性操作

在Python里折腾类对象和属性,最绕不开的就是这几个内置函数:classmethod、delattr、dir、hasattr、getattr、callable。很多人一开始记不住它们的区别,总觉得这些是“边角料”,但真正写框架、做插件化设计、或者调试线上问题的时候…

2026/10/12 6:53:00 阅读更多 →
上下文管理实战:从预算、分层到压缩与外部记忆的工程取舍

上下文管理实战:从预算、分层到压缩与外部记忆的工程取舍

1. 上下文管理不是"记性好",而是"知道什么时候该忘"很多人第一次听到"上下文管理"这个词,脑子里浮现的是"让模型记住更多东西"。这个理解不能说错,但只对了一半。真正做过落地项目的人会告诉你&…

2026/10/12 6:51:59 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →