VSCode配置ESP32 MicroPython开发环境:从零搭建到点灯实战
在嵌入式开发领域ESP32 凭借其强大的双核处理能力、丰富的无线连接选项Wi-Fi 和蓝牙以及极佳的性价比已成为物联网和智能硬件项目的首选微控制器之一。而 MicroPython 作为一种在微控制器上运行的 Python 3 实现极大地降低了嵌入式开发的门槛让开发者可以用熟悉的 Python 语法快速实现硬件交互。然而直接在命令行或简陋的编辑器中编写和调试代码体验远不如在集成开发环境中流畅。Visual Studio Code 凭借其轻量、开源和强大的插件生态成为了连接 ESP32、MicroPython 和高效开发流程的完美桥梁。本文将聚焦于如何配置 VSCode 的 MicroPython 插件并完成一个经典的“点灯”实验带你从零搭建一个可用的 ESP32 MicroPython 开发环境让你后续的开发、上传和调试工作事半功倍。1. 理解 VSCode 插件在 ESP32 MicroPython 开发中的作用在开始动手配置之前我们需要明确为什么需要这些插件以及它们各自解决了开发流程中的哪些痛点。如果只是简单地将 MicroPython 固件烧录到 ESP32然后通过串口工具手动输入命令你很快会遇到代码管理困难、无法保存、调试不便等问题。1.1 核心痛点与插件解决方案传统的 ESP32 MicroPython 开发流程通常包括使用esptool.py烧录固件 - 使用screen、minicom或PuTTY连接串口 - 在 REPL 交互环境中逐行输入代码或使用ampy、rshell等工具上传文件。这个过程是割裂的代码编写、文件管理和设备交互在不同的工具间切换效率低下且容易出错。VSCode 插件旨在将这些环节无缝集成到编辑器内部代码编写与智能感知提供 MicroPython 的语法高亮、代码补全和函数提示让你像写普通 Python 项目一样编写硬件驱动代码。一键连接与文件管理通过串口直接连接到 ESP32 的 MicroPython REPL并提供一个可视化的文件浏览器可以方便地上传、下载、删除开发板上的.py文件。代码运行与调试能够将当前编辑器中的代码片段或整个文件直接发送到 ESP32 上运行并查看输出结果实现快速迭代测试。固件烧录与项目管理部分插件甚至集成了固件烧录功能并能管理针对不同开发板的项目配置。1.2 关键插件介绍我们将主要依赖以下两个核心插件来完成 ESP32 MicroPython 开发MicroPython IDE by dphans这是一个功能全面的插件它提供了连接 REPL、文件管理、代码运行、调试支持等核心功能。它是我们与 ESP32 交互的主要窗口。Python Extension for VSCode由 Microsoft 官方提供。虽然 MicroPython 是 Python 的子集但官方 Python 插件能提供更强大的语言服务如智能补全、代码分析和虚拟环境管理。我们需要对其进行适当配置以避免它用标准 Python 库的规则来“纠正” MicroPython 特有的硬件模块如machine。理解了插件的价值我们就可以开始着手准备整个开发环境了。2. 环境准备与 VSCode 基础安装在安装插件之前需要确保你的计算机上已经具备了基础的软件环境。这个步骤是后续所有工作的基石。2.1 硬件与软件清单请确保你已准备好以下物品项目说明备注ESP32 开发板如 ESP32-WROOM-32、ESP32-S3 等。确保其 USB 转串口芯片如 CP2102、CH340能被你的操作系统识别。USB 数据线一根可传输数据的 USB 线通常是 Micro-USB 或 Type-C。仅充电线无法进行数据传输。计算机Windows, macOS 或 Linux 系统。本文以 Windows 为例其他系统操作类似。Python 3需要在电脑上安装 Python 3.7 或更高版本。用于运行esptool.py等工具。安装时务必勾选“Add Python to PATH”。VSCode最新稳定版 Visual Studio Code。从官网下载安装即可。2.2 安装 VSCode 与 Python 扩展安装 VSCode访问 Visual Studio Code 官网下载对应操作系统的安装包并完成安装。安装 Python 扩展打开 VSCode。点击左侧活动栏的“扩展”图标或按CtrlShiftX。在搜索框中输入python。找到由Microsoft发布的“Python”扩展点击“安装”。安装 Python 扩展后VSCode 已经具备了强大的 Python 开发能力但它还不认识 MicroPython。接下来我们安装专为 MicroPython 设计的插件。3. 安装与配置 MicroPython 开发插件这是将 VSCode 转变为 ESP32 MicroPython IDE 的核心步骤。3.1 安装 MicroPython IDE 插件在 VSCode 的扩展市场中搜索micropython。找到名为“MicroPython IDE”的插件发布者是dphans。点击“安装”。安装完成后你会在 VSCode 左侧活动栏看到一个类似芯片的图标这就是 MicroPython IDE 插件的入口。3.2 配置串口连接要让插件与你的 ESP32 对话首先需要知道 ESP32 连接到了电脑的哪个串口。在 Windows 上查找串口将 ESP32 开发板通过 USB 线连接到电脑。打开“设备管理器”可以在开始菜单搜索。展开“端口 (COM 和 LPT)”选项。你会看到一个新增的端口例如Silicon Labs CP210x USB to UART Bridge (COM3)或USB-SERIAL CH340 (COM4)。记住后面的COMx数字如 COM3。在 macOS/Linux 上查找串口macOS在终端输入ls /dev/cu.*通常类似/dev/cu.usbserial-XXXX。Linux在终端输入ls /dev/ttyUSB*或ls /dev/ttyACM*。在 VSCode 中配置点击 VSCode 左侧的 MicroPython 芯片图标。插件界面顶部会显示“Select a serial port”。点击它会弹出一个列表选择你刚才查到的端口如COM3。选择后插件会尝试以默认波特率通常是 115200连接。如果连接成功下方的“REPL”终端区域会显示 MicroPython 的启动信息并出现提示符。注意如果连接失败请检查1) 开发板是否已烧录 MicroPython 固件未烧录则需先烧录2) 串口是否被其他程序如串口助手占用3) 尝试点击插件界面上的“断开连接”图标然后重新选择端口连接。3.3 配置 Python 扩展以兼容 MicroPython为了避免官方 Python 扩展对machine、network等 MicroPython 特有模块报错显示为未导入我们需要创建一个工作区设置。在 VSCode 中为你 ESP32 的项目创建一个新文件夹并打开。按CtrlShiftP打开命令面板输入Preferences: Open Workspace Settings (JSON)并选择。这会在项目根目录下创建或打开一个.vscode/settings.json文件。在其中添加以下配置{ python.languageServer: Pylance, python.analysis.extraPaths: [ // 这里可以添加本地 MicroPython 桩模块stub的路径如果不需要高级补全可暂时留空 ], python.analysis.diagnosticSeverityOverrides: { // 忽略 MicroPython 特有模块的“未导入”报告 reportMissingImports: none }, // 可选指定一个不存在的解释器路径避免 Python 扩展运行本地代码 python.defaultInterpreterPath: /usr/bin/fake_micropython_interpreter }这段配置的核心是“reportMissingImports”: “none”它告诉 Python 语言服务器不要对无法解析的导入如import machine报错。这样你在编写代码时就不会看到烦人的红色波浪线了。至此你的 VSCode 已经配置成了一个功能完整的 ESP32 MicroPython 开发环境。接下来我们将通过一个经典项目来验证整个工作流。4. 实战ESP32 MicroPython 点灯程序“点灯”是嵌入式世界的“Hello World”。我们将通过编写代码控制 ESP32 板载的 LED 灯闪烁。4.1 理解硬件与machine模块大多数 ESP32 开发板都有一颗板载 LED通常连接在 GPIO2 上但并非绝对请查阅你的开发板原理图。在 MicroPython 中所有与硬件相关的操作如 GPIO、定时器、PWM 等都通过machine模块进行。关键类machine.Pin(id, mode, pull)用于控制单个 GPIO 引脚。id引脚编号如2。mode模式Pin.OUT为输出Pin.IN为输入。pull上拉/下拉电阻如Pin.PULL_UP。Pin.value([x])设置或读取引脚电平。1或True为高电平0或False为低电平。LED 通常低电平点亮阳极接 VCC阴极接 GPIO或高电平点亮阳极接 GPIO阴极接 GND需要根据电路测试。4.2 创建项目文件并编写代码在 VSCode 的资源管理器中右键点击你的项目文件夹选择“新建文件”命名为boot.py。MicroPython 启动时会自动运行此文件。再创建一个新文件命名为main.py。当boot.py运行完毕后会接着运行main.py。我们将主要逻辑放在这里。在main.py中输入以下代码# main.py - ESP32 MicroPython 点灯示例 import machine import time # 初始化 GPIO2 为输出模式 # 注意根据你的开发板LED 可能接在其他引脚如 GPIO13NodeMCU-32S led_pin machine.Pin(2, machine.Pin.OUT) print(ESP32 Blink LED Demo Started!) try: while True: led_pin.value(1) # 设置引脚为高电平 print(LED ON) time.sleep(1) # 延迟 1 秒 led_pin.value(0) # 设置引脚为低电平 print(LED OFF) time.sleep(1) # 延迟 1 秒 except KeyboardInterrupt: # 当在 REPL 中按 CtrlC 时退出循环 print(Program interrupted by user.) finally: led_pin.value(0) # 确保程序结束时 LED 熄灭 print(Program ended. LED is OFF.)代码解释我们导入了machine和time模块。创建了一个Pin对象led_pin控制 GPIO2模式为输出。在一个无限循环中交替设置引脚电平为高和低并使用time.sleep()实现延时。使用try...except KeyboardInterrupt结构可以让你在 REPL 中通过CtrlC优雅地停止程序。finally块确保无论程序如何结束LED 都会被关闭。4.3 上传文件到 ESP32 并运行这是 MicroPython IDE 插件大显身手的时候。确保连接在 VSCode 左侧的 MicroPython IDE 面板中确认已连接到正确的串口并且 REPL 终端显示了提示符。上传文件在 MicroPython IDE 面板中找到“文件浏览器”区域。它可能显示为“Device is not connected”或已经显示了开发板上的文件列表如boot.py。点击文件浏览器上方的“上传文件到设备”图标通常是一个向上的箭头。在弹出的文件选择器中选择你刚刚创建的main.py文件。插件会将文件上传到 ESP32 的文件系统中。上传成功后你会在文件浏览器中看到main.py。运行程序方法一自动运行ESP32 在复位或上电后会自动依次运行boot.py和main.py。你可以点击 MicroPython IDE 面板上的“软复位”按钮类似刷新图标或者直接按一下 ESP32 开发板上的EN使能或RST复位按钮。观察 REPL 终端应该会打印出“ESP32 Blink LED Demo Started!”并且板载 LED 开始闪烁。方法二手动执行在 REPL 终端中你可以手动导入并运行模块。先按CtrlC停止任何正在运行的程序然后在提示符后输入 import main这也会执行main.py中的代码LED 开始闪烁。要停止同样按CtrlC。4.4 验证与调试观察硬件最直接的验证就是看到 ESP32 板载 LED 以 1 秒的间隔规律闪烁。观察输出在 VSCode 的 REPL 终端中你应该能看到交替打印的“LED ON”和“LED OFF”信息。交互调试你可以在程序运行时在 REPL 中直接与硬件交互。例如在另一个提示符下如果程序阻塞了 REPL先按CtrlC停止你可以手动控制 LED led machine.Pin(2, machine.Pin.OUT) led.value(1) # 手动开灯 led.value(0) # 手动关灯这种即时交互的能力是 MicroPython 结合 VSCode 插件带来的巨大优势。5. 常见问题排查与解决方案在配置和运行过程中你可能会遇到一些问题。以下是典型问题的排查路径。问题现象可能原因检查与解决方案VSCode MicroPython 插件无法连接串口1. 串口被占用。2. 波特率不匹配。3. 开发板未烧录 MicroPython 固件。4. 驱动未安装。1. 关闭其他串口工具如 PuTTY、串口助手。2. 尝试在插件设置中更改波特率常见为 115200。3. 使用esptool.py烧录正确的 MicroPython 固件。4. 到芯片厂商官网如 Silicon Labs, WCH下载安装 USB 转串口驱动。上传文件失败1. 未连接设备。2. 设备文件系统只读或已满。3. 文件名冲突。1. 确认 MicroPython IDE 已成功连接。2. 在 REPL 中执行import os; os.listdir()查看文件尝试删除不必要文件。3. 确保设备上没有同名的只读系统文件。import machine报错或代码无提示1. Python 扩展将machine视为未知模块。2. 代码运行在本地 Python 环境而非 ESP32。1. 按照本文 3.3 节配置工作区设置忽略缺失导入报告。2.绝对关键代码必须在 ESP32 的 REPL 中运行。VSCode 的“运行”按钮或终端运行的是你电脑的 Python不是 MicroPython。务必通过插件连接设备后上传并运行。LED 不闪烁1. 引脚号错误。2. LED 电路是低电平有效。3. 代码未上传或未运行。1. 查阅开发板原理图确认板载 LED 连接的 GPIO 编号。尝试改为Pin(13)或Pin(5)等常见引脚。2. 将代码中的led_pin.value(1)和led_pin.value(0)对调试试。3. 检查 REPL 是否有打印信息确认main.py已上传并执行。REPL 无响应或乱码1. 波特率设置错误。2. 接线松动或电源问题。3. 固件损坏。1. 确保 VSCode 插件、串口工具和固件设定的波特率一致通常是 115200。2. 检查 USB 线是否可靠连接尝试更换 USB 口或数据线。3. 重新烧录 MicroPython 固件。6. 最佳实践与扩展方向成功点灯只是第一步。遵循以下实践能让你的 ESP32 MicroPython 项目更加稳健和高效。6.1 开发工作流最佳实践项目结构清晰在 VSCode 中为每个 ESP32 项目创建独立的文件夹。里面存放你的.py文件、配置文件如.vscode/settings.json和文档。避免所有项目混在一起。使用版本控制使用 Git 管理你的源代码。将boot.py、main.py以及项目特定的库文件纳入版本控制。注意不要上传固件或临时文件。分离配置与逻辑将 WiFi SSID/密码、MQTT 服务器地址等配置信息单独放在一个config.py或secrets.json文件中并在.gitignore中忽略它防止敏感信息泄露。善用boot.py和main.pyboot.py用于执行一次性的启动设置如配置网络时区、连接 WiFi、挂载文件系统等。它应该尽快执行完毕。main.py放置你的主应用程序逻辑。确保它有良好的异常处理避免程序崩溃导致设备无响应。REPL 交互与文件操作在开发阶段充分利用插件的 REPL 进行快速测试。使用文件浏览器功能管理设备文件而非依赖命令行工具。6.2 代码编写建议异常处理硬件操作如网络、传感器读取极易失败。务必使用try...except包裹可能出错的代码并在except块中记录错误或进行恢复。try: sensor_value sensor.read() except OSError as e: print(f“Failed to read sensor: {e}”) # 可能的恢复逻辑如重置传感器深度睡眠与省电对于电池供电的项目在main.py末尾使用machine.deepsleep()让 ESP32 进入深度睡眠可以极大延长续航。使用uasyncio进行事件驱动编程对于需要同时处理多个任务如同时控制 LED、读取传感器、响应网络请求的应用学习 MicroPython 的uasyncio库它比传统的while True循环更加高效和清晰。6.3 下一步扩展方向掌握了基础的点灯和 VSCode 开发流程后你可以探索 ESP32 更强大的功能连接网络使用network模块连接 WiFi让你的设备接入互联网。Web 服务器使用microdot或picoweb等轻量库在 ESP32 上创建一个简单的 Web 服务器通过浏览器控制 LED 或查看传感器数据。MQTT 客户端使用umqtt.simple库将 ESP32 连接到 MQTT 消息服务器如 EMQX、Mosquitto实现物联网设备间的通信。驱动更多传感器学习使用 I2C、SPI、ADC、PWM 等接口连接温湿度传感器如 DHT22、SHT30、显示屏、电机等外设。使用硬件中断使用Pin.irq()来为 GPIO 引脚设置中断处理函数用于响应按键等即时事件。通过本文的步骤你已经成功地将 VSCode 配置成了一个高效的 ESP32 MicroPython 集成开发环境并完成了第一个硬件交互程序。这个环境将伴随你后续所有的 ESP32 MicroPython 项目无论是简单的传感器读取还是复杂的物联网应用高效的开发工具都是成功的第一步。记住当遇到问题时首先检查硬件连接然后查看 REPL 终端的输出信息最后再审视你的代码逻辑。

相关新闻

Sentinel热点参数限流:从原理到实战的完整指南

Sentinel热点参数限流:从原理到实战的完整指南

1. 从一次线上“秒杀”故障说起:为什么需要热点规则?去年双十一大促前,我们团队负责的一个商品秒杀系统在压测时遇到了一个诡异的问题。系统整体QPS(每秒查询率)和CPU使用率都在健康范围内,但RT&#xff08…

2026/10/15 5:32:02 阅读更多 →
Python.二.(三).迭代器和生成器

Python.二.(三).迭代器和生成器

Python 中迭代器的概念?核心结论:可迭代对象(Iterable)实现 __iter__,迭代器(Iterator)实现 __iter__ __next__。迭代器是带状态的惰性求值对象 。我们来看一个🌰:from …

2026/10/13 17:04:44 阅读更多 →
路径规划——地图

路径规划——地图

我们在做全局路径规划的时候会用到两种地图,一种是栅格地图,另一种是高精地图。二者并不是简单的低精度地图与高精度地图之分,而是面向不同规划问题的两种环境表达方式。 栅格地图将空间离散为规则单元,用于描述障碍物占据状态、可…

2026/10/7 8:33:14 阅读更多 →

最新新闻

云开发+短信API:零成本搭建员工生日自动提醒系统

云开发+短信API:零成本搭建员工生日自动提醒系统

每年一到员工生日这种日子,行政和HR就开始手忙脚乱。翻Excel、找手机号、挨个发祝福语,还要赶在当天发出,稍微一忙就会漏掉一两个。之前我们团队就是这么干的,直到有一次连续漏了三个同事的生日,被吐槽“公司没有人情味…

2026/10/15 20:02:24 阅读更多 →
Arcpy批量导出地图脚本:从手动出图到自动化流水线

Arcpy批量导出地图脚本:从手动出图到自动化流水线

1. 从手动一张张出图到批量流水线:这个脚本到底解决什么问题如果你做过GIS制图,大概率经历过这样的场景:手头有一份行政区划图层,领导要求按每个乡镇出一张专题图,一共几十上百个。打开ArcMap或ArcGIS Pro,…

2026/10/15 20:02:24 阅读更多 →
离散数学笔记高效整理法:五大板块与复习避坑指南

离散数学笔记高效整理法:五大板块与复习避坑指南

简介:这是一份系统梳理离散数学核心知识点的PDF笔记,围绕数理逻辑、集合论、数论、计数原理、概率论、关系论、代数系统与图论八大板块展开,适合高校本科生、考研复习者及程序员巩固理论基础。笔记从命题逻辑的永真式与范式讲起,依…

2026/10/15 20:02:24 阅读更多 →
python代码学习1

python代码学习1

摘要:f的用法、print中可用的操作、for、列表、ASCII编码一、f的用法:在输出里调整格式1.直接嵌入变量/表达式a 18 print(f"今年{a}岁") # 今年18岁2.保留有效数字pi 3.1415926 print(f"{pi:.2f}") # 3.14 print(f"{pi…

2026/10/15 20:02:24 阅读更多 →
IIS 6.0离线安装包:含全部DLL与注册表修复的SP2兼容部署方案

IIS 6.0离线安装包:含全部DLL与注册表修复的SP2兼容部署方案

简介:本资源为IIS 6.0完整安装支持包,面向Windows Server 2003系统管理员、传统Web运维人员及遗留系统维护开发者,专为解决IIS 6.0原生安装因缺失关键DLL导致失败或功能异常的典型问题。压缩包内含263个文件,涵盖19个核心DLL&…

2026/10/15 20:02:24 阅读更多 →
VMware复制粘贴失效?从VMware Tools到客户机隔离全排查指南

VMware复制粘贴失效?从VMware Tools到客户机隔离全排查指南

你是不是也遇到过这样的场景:虚拟机里装好了系统,想在宿主机和虚拟机之间复制一段代码、一个下载链接、一小段配置,结果CtrlC、CtrlV按了半天一点反应都没有;换成拖放文件,鼠标倒是能移过去,文件却死活拖不…

2026/10/15 20:01:22 阅读更多 →

日新闻

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 阅读更多 →