当前位置: 首页 > news >正文

ESP32-C3 入门笔记03:VScode + flash_download_tool 下载烧录程序(ESP-IDF + PlatformIO)

ESP32-C3 支持多种烧录方式,主要包括以下几种:

  1. VS Code 串口烧录:使用 VS Code 配合 PlatformIO 或 ESP-IDF 插件进行串口烧录。串口连接通常使用 UART 接口,通过 USB 转串口芯片与电脑连接。步骤大致如下:

    • 配置 VS Code 以使用 PlatformIO 或 ESP-IDF 插件。
    • 编译代码后,通过 VS Code 内置的烧录功能烧录到 ESP32-C3 开发板。
  2. USB 下载烧录:ESP32-C3 具有原生 USB 设备功能,可以直接通过 USB 接口与电脑通信进行烧录。使用官方的 esptool.py 工具或者 ESP-IDF 工具链,通过 USB 连接烧录程序。

  3. 通过 bin 文件下载烧录:如果已有编译好的 .bin 文件,可以使用 esptool.py 工具将二进制文件烧录到 ESP32-C3。步骤如下:

    • 使用命令行运行 esptool.py,指定目标设备端口,加载 .bin 文件,并烧录到指定的内存地址。命令示例如下:

      esptool.py --chip esp32c3 --port <端口号> --baud 460800 write_flash -z 0x1000 your_program.bin
      
  4. OTA(Over-the-Air)更新:通过无线方式(如 Wi-Fi)烧录固件到设备,无需物理连接。先在代码中实现 OTA 更新功能,并将新固件文件放置在指定服务器上,设备可以通过 HTTP 或 HTTPS 协议下载并更新自身固件。

这些方式均可以满足不同情况下对 ESP32-C3 进行固件烧录的需求。


1.Flash Download Tool + VSCode + PlatformIO

要使用 Flash Download Tool 下载通过 VSCode 和 PlatformIO 开发的 ESP32 的 .bin 文件,您可以按照以下步骤操作:

1. 准备工作

  • 确保您已安装并配置好 VSCode 和 PlatformIO,并且已经成功编译了您的 ESP32 项目,生成了 .bin 文件。
  • 下载并安装 Espressif 的 Flash Download Tool,您可以从 Espressif 官方网站 获取。

2. 找到 .bin 文件

编译命令:

pio run -v -t upload

在 PlatformIO 中,编译后的 .bin 文件通常位于以下路径(以项目名称为例):

在这里插入图片描述

【命令】pio run -v -t uploadPS C:\Users\Administrator\Documents\PlatformIO\Projects\ESP32_SL_CAR> pio run -v -t upload
Processing esp32-c3-devkitm-1 (platform: espressif32; board: esp32-c3-devkitm-1; framework: arduino; monitor_speed: 115200; lib_deps: adafruit/Adafruit NeoPixel@^1.12.3)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32-c3-devkitm-1.html
PLATFORM: Espressif 32 (6.9.0) > Espressif ESP32-C3-DevKitM-1
HARDWARE: ESP32C3 160MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-builtin, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:- framework-arduinoespressif32 @ 3.20017.0 (2.0.17)- tool-esptoolpy @ 1.40501.0 (4.5.1)- tool-mkfatfs @ 2.0.1- tool-mklittlefs @ 1.203.210628 (2.3)- tool-mkspiffs @ 2.230.0 (2.30)- toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 34 compatible libraries
Scanning dependencies...
Dependency Graph
|-- Adafruit NeoPixel @ 1.12.3 (License: Unknown, Path: C:\Users\Administrator\Documents\PlatformIO\Projects\ESP32_SL_CAR\.pio\libdeps\esp32-c3-devkitm-1\Adafruit NeoPixel)
|-- ESP32 BLE Arduino @ 2.0.0 (License: Unknown, Path: C:\Users\Administrator\.platformio\packages\framework-arduinoespressif32\libraries\BLE)
|-- EEPROM @ 2.0.0 (License: Unknown, Path: C:\Users\Administrator\.platformio\packages\framework-arduinoespressif32\libraries\EEPROM)
Building in release mode
<lambda>(["checkprogsize"], [".pio\build\esp32-c3-devkitm-1\firmware.elf"])
MethodWrapper(["checkprogsize"], [".pio\build\esp32-c3-devkitm-1\firmware.elf"])
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [=         ]  12.1% (used 39804 bytes from 327680 bytes)
Flash: [========  ]  77.5% (used 1015210 bytes from 1310720 bytes)
.pio\build\esp32-c3-devkitm-1\firmware.elf  :section                    size         addr.rtc.text                    16   1342177280.rtc.force_fast               0   1342177296.rtc_noinit                  16   1342177296.rtc.force_slow               0   1342177312.iram0.text               67114   1077411840.dram0.dummy              67584   1070071808.dram0.data               13436   1070139392.noinit                       0   1070152828.dram0.bss                26368   1070152832.flash.text              762404   1107296288.flash_rodata_dummy      786432   1006632992.flash.appdesc              256   1007419424.flash.rodata            172256   1007419680.eh_frame                 31032   1007591936.flash.rodata_noload          0   1007622968.iram0.text_end             470   1077478954.iram0.data                   0   1077479424.iram0.bss                    0   1077479424.dram0.heap_start             0   1070179200.debug_info             8223114            0.debug_abbrev            575837            0.debug_loc              1507798            0.debug_aranges            68216            0.debug_ranges            177296            0.debug_line             2926264            0.debug_str              1270706            0.comment                     93            0.riscv.attributes            55            0.debug_frame             211180            0Total                  16887943
<lambda>(["upload"], [".pio\build\esp32-c3-devkitm-1\firmware.bin"])
AVAILABLE: cmsis-dap, esp-bridge, esp-builtin, esp-prog, espota, esptool, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa
CURRENT: upload_protocol = esptool
BeforeUpload(["upload"], [".pio\build\esp32-c3-devkitm-1\firmware.bin"])
TimeoutError: Could not automatically find serial port based on the known UART bridges
Auto-detected: COM1
"C:\Users\Administrator\.platformio\penv\Scripts\python.exe" "C:\Users\Administrator\.platformio\packages\tool-esptoolpy\esptool.py" 
--chip esp32c3 
--port "COM1" 
--baud 460800 
--before default_reset 
--after hard_reset write_flash -z 
--flash_mode dio     
--flash_freq 80m 
--flash_size 4MB 【bin文件及地址】
0x0000 C:\Users\Administrator\Documents\PlatformIO\Projects\ESP32_SL_CAR\.pio\build\esp32-c3-devkitm-1\bootloader.bin 
0x8000 C:\Users\Administrator\Documents\PlatformIO\Projects\ESP32_SL_CAR\.pio\build\esp32-c3-devkitm-1\partitions.bin 
0xe000 C:\Users\Administrator\.platformio\packages\framework-arduinoespressif32\tools\partitions\boot_app0.bin 
0x10000 .pio\build\esp32-c3-devkitm-1\firmware.binesptool.py v4.5.1
Serial port COM1
Connecting......................................

请记下此文件的路径。

3. 使用 Flash Download Tool

  1. 打开 Flash Download Tool
    启动下载工具,您将看到一个界面。

在这里插入图片描述

在这里插入图片描述

  1. 配置选项

    • 在“Chip Type”中选择 ESP32
    • 点击右侧的“Add”按钮,选择您的 .bin 文件。
    • 设置 Flash 位置,通常为 0x1000(用于 bootloader),具体位置可以根据您的项目需求进行调整。
  2. 连接 ESP32
    使用 USB 数据线将 ESP32 开发板连接到计算机,确保驱动程序已正确安装。

  3. 选择串口
    在工具中,选择您的 ESP32 开发板的串口端口。

  4. 设置烧录选项

    • 选择“Download Path”对应您的 .bin 文件的路径。
    • 在“Flash Size”选项中,根据您的 ESP32 模型选择合适的 Flash 大小。
  5. 开始烧录
    点击“Start”按钮,等待烧录完成。烧录过程中,请保持串口连接,不要拔掉 USB 线。
    在这里插入图片描述

  6. 烧录完成
    烧录完成后,您可以重启 ESP32 开发板,您的程序应该就会运行。

在这里插入图片描述

注意事项

  • 确保在烧录前选择正确的 Flash 地址和设置,避免覆盖重要的系统区域。
  • 如果您在烧录过程中遇到问题,请检查连接、驱动和串口设置是否正确。

通过这些步骤,您应该能够顺利使用 Flash Download Tool 下载 PlatformIO 开发的 ESP32 的 .bin 文件。


2.Flash Download Tool + VSCode + ESP-IDF

要使用 Flash Download Tool 下载通过 VSCode 和 ESP-IDF 开发的 ESP32 的 .bin 文件,您可以按照以下步骤进行操作:

1. 准备工作

  • 确保您已经安装并配置好 VSCode 和 ESP-IDF,并成功编译了 ESP32 项目,生成了 .bin 文件。
  • 下载并安装 Espressif 的 Flash Download Tool,从 Espressif 官方网站 获取。

2. 找到 .bin 文件

在 ESP-IDF 中,编译后的 .bin 文件通常位于以下路径(以项目名称为例):

<your_project_folder>/build/your_project_name.bin

请记下此文件的路径。

3. 使用 Flash Download Tool

步骤和内容跟PlatformIO差不多,注意 设置烧录地址

  • 对于 ESP32,通常主程序的烧录地址为 0x1000。根据您的项目需求,可能还需要添加其他区域(如 bootloader 和 partition table):
    • Bootloader:通常烧录在 0x1000
    • Partition Table:通常烧录在 0x8000
    • Main Application:烧录在 0x10000(主程序)。
  • 根据需要设置其他文件的地址。

工厂模式和开发者模式

Flash Download Tool 的工厂模式和开发者模式在烧录程序时有以下区别:

工厂模式(Factory Mode)

  1. 用途

    • 工厂模式主要用于将完整的固件烧录到设备上,通常是初次生产或批量出厂时使用。
  2. 特点

    • 在工厂模式下,固件通常包括设备的初始化代码和配置。
    • 一般会烧录 bootloader、partition table 和应用程序固件。
    • 适合于大规模生产或设备出厂时的固件配置。
  3. 烧录流程

    • 烧录过程中,可以设置多个地址,确保 bootloader、分区表和主应用程序正确烧录。

开发者模式(Development Mode)

  1. 用途

    • 开发者模式主要用于开发和调试阶段,用于频繁更新固件或测试。
  2. 特点

    • 通常只烧录应用程序固件,而不包括 bootloader 或 partition table,假设这些组件已经存在且是最新的。
    • 可以更快速地更新固件,便于开发人员在调试时频繁烧录。
  3. 烧录流程

    • 只需要设置目标地址为主应用程序的地址(如 0x10000),不需要关注 bootloader 和 partition table。

使用场景

  • 使用工厂模式

    • 当您需要将设备送到客户手中,确保设备已经预配置好所有必要的组件时。
    • 在生产过程中需要一次性烧录多个设备,确保每个设备的固件一致。
  • 使用开发者模式

    • 在开发阶段频繁更新和测试应用程序时。
    • 调试应用程序时需要快速烧录,而不必每次都重置 bootloader 或 partition table。

总结来说,工厂模式适合于出厂和批量烧录,开发者模式适合于开发和测试阶段的快速迭代。选择哪种模式取决于您当前的需求。


参考资料

  • [1] 【CSDN】使用 flash_download_tool 下载Vscode PlatformIO 开发ESP32的 bin 文件
  • [2] 【CSDN】 ESP32 使用下载工具烧录程序

相关文章:

ESP32-C3 入门笔记03:VScode + flash_download_tool 下载烧录程序(ESP-IDF + PlatformIO)

ESP32-C3 支持多种烧录方式&#xff0c;主要包括以下几种&#xff1a; VS Code 串口烧录&#xff1a;使用 VS Code 配合 PlatformIO 或 ESP-IDF 插件进行串口烧录。串口连接通常使用 UART 接口&#xff0c;通过 USB 转串口芯片与电脑连接。步骤大致如下&#xff1a; 配置 VS Co…...

Node.js——fs模块-文件重命名和移动

1、在Node.js中&#xff0c;我们可以使用 rename 或 renameSync 来移动或重命名文件或文件夹 2、语法&#xff1a; fs.rename(oldPath,newPath,callback) fs.renameSync(oldPath,newPath) 参数说明&#xff1a; oldPath 文件当前的路径 newPath 文件新的路径 callback 操…...

vue2.0版本引入Element-ui问题解决

作者&#xff1a;fyupeng 技术专栏&#xff1a;☞ https://github.com/fyupeng 项目地址&#xff1a;☞ https://github.com/fyupeng/distributed-blog-system-api 留给读者 使用版本&#xff1a; vue:2.6.14 element-ui:2.15.14 一、问题及解决 1、安装后组件没有生效&#x…...

qt QTableView详解

1、概述 QTableView 是 Qt 框架中的一个高级视图类&#xff0c;用于以表格形式展示二维数据。它基于 QAbstractItemView&#xff0c;并与模型&#xff08;通常是 QAbstractTableModel 或 QStandardItemModel&#xff09;结合使用&#xff0c;以实现数据的展示和交互。QTableVi…...

将Notepad++添加到右键菜单【一招实现】

一键添加注册表 复制以下代码保存为 Notepad.reg&#xff0c;将红框内路径修改为自己电脑的“Notepad.exe路径”后&#xff0c;再双击运行即可。 Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\NotePad] "Notepad" "Icon""D:\\N…...

Nature Methods | 基于流形约束的RNA速度推断精准解析细胞周期动态调节规律

生信碱移 VeloCycle算法 VeloCycle&#xff1a;基于流形约束的RNA速度推断在细胞周期动态中的精准解析 今天给各位老铁们分享一篇于2024年10月31号发表在 Nature Methods [IF: 36.1] 的文章&#xff1a;"Statistical inference with a manifold-constrained RNA velocity…...

在离线环境中使用sealos工具快速部署一套高可用的k8s服务集群

文章目录 项目基础信息工具版本测试环境 下载资源文件下载sealos二进制命令文件下载k8s安装镜像和组件资源下载docker离线安装包下载Docker Registry容器镜像 NFS共享配置coredns服务的DNS解析配置安装配置sealos、k8s服务安装sealos工具导入k8s及相关组件镜像安装 K8s 集群部署…...

ReactPress系列—Next.js 的动态路由使用介绍

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议&#xff0c;感谢Star。 Next.js 的动态路由使用介绍 Next.js 是一个流行的 React 框架&#xff0c;支持服务端渲染、静态站点生成和动态路由等功能&#xff0c;极大地简化…...

DevOps业务价值流:需求设计最佳实践

DevOps实践正推动着产品快速迭代与高质量交付&#xff0c;但需求设计作为产品开发的关键起点&#xff0c;往往被忽视。它不仅是收集与分析需求的过程&#xff0c;更是将需求转化为可实施产品特性的核心。本文深入探讨DevOps业务价值流中的需求设计&#xff0c;从调研、整理、原…...

A15基于Spring Boot的宠物爱心组织管理系统的设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600…...

RC高通滤波器Bode图分析(传递函数零极点)

RC高通滤波器 我们使得R1K&#xff0c;C1uF&#xff1b;电容C的阻抗为Xc&#xff1b; 传递函数 H ( s ) u o u i R X C R R 1 s C R s R C 1 s R C &#xff08;其中 s j ω &#xff09; H(s)\frac{u_{o} }{u_{i} } \frac{R }{X_{C}R} \frac{R }{\frac{1}{sC}R} \fra…...

SpeechT5 模型

微软开源的 SpeechT5 语音模型&#xff0c;主要包括以下功能 语音转文字&#xff1a;用于自动语音识别&#xff08;ASR&#xff09;。文字转语音&#xff1a;用于合成音频&#xff08;TTS&#xff09;。语音转语音&#xff1a;用于不同声音之间的转换或进行语音增强。 T5 网络…...

网站用户行为分析:方法、工具与实践

摘要&#xff1a;随着互联网发展&#xff0c;网站竞争激烈&#xff0c;用户行为分析对网站建设与运营至关重要。本文综合介绍了基于服务器日志和客户端收集用户行为数据的方法&#xff0c;包括各自优缺点及相关工具&#xff1b;阐述了网站用户分析的五大常规方法&#xff1b;以…...

医疗医药企业新闻稿怎么写?健康行业品牌宣传背书的报纸期刊杂志媒体有哪些

【本篇由 言同数字全球媒体 原创】在撰写医疗、医学和制药相关稿件时&#xff0c;遵循一定的结构和内容规范至关重要。以下是一些写作建议以及适合发表健康类稿件的报纸、杂志及新闻媒体的推荐。 一、稿件写作结构 标题 原则&#xff1a;简洁、明了&#xff0c;能够准确传达主…...

2024-11-06 问AI: [AI面试题] 人工智能如何用于欺诈检测和网络安全?

文心一言 人工智能在欺诈检测和网络安全领域的应用日益广泛&#xff0c;其强大的数据处理和分析能力为这一领域带来了革命性的变化。以下详细介绍人工智能在欺诈检测和网络安全中的具体应用&#xff1a; 一、欺诈检测 身份认证和访问控制&#xff1a; 通过验证用户的身份信息…...

个人3DCoat设置分享

个人3DCoat设置分享 将当前选择的对象置于屏幕正中显示: /键 版本3DCoat 2023 3DCoat自定义快捷键: Quick Pick: Q Transform: T Primitives: Shift A Cut Off : K Res : Shift Clear Space : Delete 隐藏/显示对象&#xff1a; 点击Sculpt Tree中的眼睛按钮 显示隐…...

Spark 程序开发与提交:本地与集群模式全解析

Spark 的介绍与搭建&#xff1a;从理论到实践-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 目录 一、本地开发与远程提交测试 &#xff08;一&#xff09;问题背景 &#xff08;二&#xff09;解决方案 集群环境准…...

Linux编程:DMA增加UDP 数据传输吞吐量并降低延迟

文章目录 0. 引言1. 原理介绍1.1 DMA 与中断的协同机制1.2. DMA优化UDP 数据包发送 2. DMA 配置优化 0. 引言 UDP 网络传输常面临高 CPU 占用、传输延迟和丢包等挑战。本文将介绍 DMA 如何优化 UDP 数据包的发送&#xff0c;以提高吞吐量、减少延迟并降低 CPU 占用。 阅读本文…...

鸿蒙开启无线调试

DevEco Studio没找到通过WI-FI连接手机的可视化操作按钮&#xff0c;就去官网看了下hdc - TCP连接场景 操作也比较简单&#xff1a; 第1步&#xff1a;PC通过USB连接手机/平板&#xff1b; 第2步&#xff1a;在手机/平板的“开发者选项”中打开“无线调试”并记录下IP和端口…...

C. DS循环链表—约瑟夫环 (Ver. I - B)

题目描述 N个人坐成一个圆环&#xff08;编号为1 - N&#xff09;&#xff0c;从第S个人开始报数&#xff0c;数到K的人出列&#xff0c;后面的人重新从1开始报数。问最后剩下的人的编号。 例如&#xff1a;N 3&#xff0c;K 2&#xff0c;S 1。2号先出列&#xff0c;然后是…...

Mardi 品牌创始人是谁?一文读懂法国 Mardi Ladin

法国 Mardi Ladin 品牌创始人是La Bergon&#xff08;Baudino Cd L&#xff09;&#xff0c;一位出身法国时尚世家的设计师&#xff0c;品牌的灵感直接来自于 1975 年法国经典电影《表兄妹》中入围奥斯卡最佳女主角的角色 "玛尔蒂 MARDI"。创始人 La Bergon 解析La B…...

CentOS Stream 9初体验:除了名字加了Stream,桌面和内核到底有哪些升级?

CentOS Stream 9深度评测&#xff1a;技术选型者的上游发行版实战指南 当红帽宣布CentOS Linux转向Stream模式时&#xff0c;整个开源社区掀起了一场关于"稳定性与前瞻性如何平衡"的持久讨论。作为RHEL上游的滚动预览版&#xff0c;CentOS Stream 9的定位已从传统的&…...

Linux调度器演进:从O(1)到CFS再到EEVDF

Linux 进程调度演化史&#xff1a;从 O(n) 到 CFS 再到 EEVDF&#xff0c;30 年调度器的三次跃迁 进程调度是操作系统的脉搏。这篇文章不堆概念&#xff0c;带你从 Linux 0.01 走到内核 6.6&#xff0c;看懂调度器为什么这样设计&#xff0c;以及每次重构到底解决了什么问题。 …...

数采网关的应用与特点

摘要在工业自动化、智能制造和物联网&#xff08;IoT&#xff09;快速发展的背景下&#xff0c;数据采集网关&#xff08;数采网关&#xff09;作为连接现场设备与上层管理系统的关键枢纽&#xff0c;发挥着至关重要的作用。它能够实现工业设备数据的实时采集、协议转换、边缘计…...

6.解决 99% 刷机故障|GPT 分区修复 + SEP 兼容检测 + 全分区备份,工程师实战手册

摘要 本文面向具备基础Linux命令行操作能力的维修工程师与高级发烧友,系统阐述主流品牌手机刷机与维修的底层逻辑与标准化操作流程。内容覆盖高通、联发科、苹果A系列三大芯片平台的刷机协议差异,提供完整的刷机工具链搭建脚本、分区备份恢复脚本、以及底层驱动级故障诊断代…...

2026年WMS软件怎么选?10款主流WMS软件功能对比与避坑指南

在2026年企业数字化转型的浪潮下&#xff0c;WMS软件&#xff08;仓库管理系统&#xff09;已经成为提升供应链效率的核心工具。面对市面上琳琅满目的产品&#xff0c;很多企业都在纠结2026年WMS软件怎么选才能避开那些“买得起用不起”的坑。本文将为您带来10款主流WMS软件的深…...

2026年AI写作辅助网站测评:5款神器从选题到格式全流程护航

写论文的焦虑&#xff0c;是每个科研人和学生都无法回避的“成长痛”。选题无从下手&#xff0c;文献检索耗时费力&#xff0c;写作过程卡顿不断&#xff0c;格式调整反复修改&#xff0c;查重降重更是让人抓耳挠腮。进入2026年&#xff0c;AI工具早已不只是“文字助手”&#…...

D1094UK,500MHz频段下20W高功率输出的单端式硅RF MOSFET射频晶体管

简介今天我要向大家介绍的是 TT Electronics / Semelab 的硅RF MOSFET晶体管——D1094UK。这是一款专为VHF/UHF通信频段设计的单端式射频功率场效应管&#xff0c;在28V工作电压、500MHz频率下可提供20W的输出功率。作为一款高性能射频器件&#xff0c;它具备极低的反向传输电容…...

多智能体系统的最大难题:不是推理,而是协同

网罗开发&#xff08;小红书、快手、视频号同名&#xff09;大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等方…...

使用Taotoken后API调用稳定性与延迟的实际体验观察

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用Taotoken后API调用稳定性与延迟的实际体验观察 在最近一个为期一周的后端服务开发项目中&#xff0c;我们将原本直接调用多个厂…...