ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

2025.5最新 基于VSCode简单开发Arduino:把settings.json改到TaoToken

2025.5最新 基于VSCode简单开发Arduino:把settings.json改到TaoToken 1. VSCode 开发 Arduino 的真实痛点插件装完却卡在工具链拉取很多人第一次在 VSCode 里写 Arduino卡住的地方根本不是代码而是环境。你搜到的教程大多停留在“装个插件、选个板子、点编译”但真正动手时插件装完会去自动拉取 arduino-cli、板级支持包core和一堆索引文件。这一步只要网络稍微不稳终端就会停在Downloading index: package_index.tar.bz2或者Error initializing instance: Loading index file: reading file这类报错上进度条一动不动。我试过在一台新机器上从零配 Arduino 环境插件装好后点“Select Board”它提示要下载arduino:avr这个 core结果卡了十几分钟最后超时。换到 Arduino IDE 里下载同样的 core 却很快原因就是两者走的下载通道和索引地址不一样。VSCode 插件默认走官方downloads.arduino.cc而 Arduino IDE 有时会命中本地缓存或不同的镜像逻辑。于是问题就变成了怎么让 VSCode 里的 Arduino 工具链拉取走一条稳定、可控的通道。这就是本文要解决的核心场景。目标很明确在 VSCode 里完成一次从建工程、编译到上传的完整动作并且把settings.json里那些容易配乱的 endpoint、代理、路径字段一次性理清楚。适合谁适合已经装了 VSCode、想用 Arduino 做小项目、但被工具链下载和配置字段劝退的人。你不需要先精通 arduino-cli只要跟着把几个关键字段填对编译上传就能跑通。这里要区分两个概念。一个是Arduino Maker Workshop这类插件它负责在 VSCode 里提供板子选择、串口选择、编译上传按钮另一个是底层的arduino-cli真正干活的是它。插件只是壳cli 才是引擎。很多人配置混乱是因为把“插件设置”和“cli 配置”混在一起改结果settings.json里字段互相覆盖。我们要做的是让插件去调用一个配置好的 cli 通道而不是让插件自己去猜下载地址。还有一个常见误区以为装了插件就自带编译器。实际上arduino-cli和对应的 core比如arduino:avr是分开的。插件首次运行会尝试自动装 cli但如果你机器上已经有 cli它可能版本不匹配如果没有它下载又可能失败。所以更稳的做法是自己先把 cli 装好、把 core 装好再让插件指向这个现成的 cli。这样settings.json里只需要写清楚 cli 路径和板子 FQBN编译上传就顺了。下面进入实操。我会先讲怎么把 TaoToken 的 API 通道准备好因为工具链拉取和后续如果用到 AI 辅助编码都会走这条统一通道然后给出可直接复制的settings.json片段接着演示一次真实的编译上传最后把几个高频报错逐个拆开。整个过程不依赖任何特殊网络手段只靠配置字段把请求导向稳定 endpoint。2. TaoToken 前置准备统一 Key 与 API 通道让工具链拉取不再超时在改settings.json之前先把 TaoToken 这边的 Key 和通道准备好。这一步的意义在于Arduino 工具链拉取、core 安装、以及你后续可能用到的 AI 辅助补全都可以通过同一个 API 入口走不用每个工具单独配一套地址。TaoToken 的官网入口是https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentAPI 基址是https://taotoken.net/api这个不加 UTM。先拿 Key。打开控制台页面https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite登录后进 API Keys 管理页https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite新建一个 Key。建议按用途命名比如vscode-arduino方便后面区分。复制出来的 Key 形如sk-开头的一串字符先存到本地密码管理器别直接贴到会提交到 Git 的文件里。拿到 Key 后确认你要用的模型 ID。如果你只是做 Arduino 编译上传其实不强制用模型但如果你想让 VSCode 里的 AI 补全或对话走 TaoToken就需要一个模型 ID。可以到模型对话页https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite看看当前可用的模型列表记下你要用的那个 ID。长期做编码和 Agent 任务的话Coding Plan 页面https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite里有套餐说明按需选。这里要强调一个配置原则Base URL、Key、Model ID 三件套要成组出现。不管你是配 Cline、Continue 还是别的 VSCode 插件只要它支持自定义 OpenAI 兼容接口就填这三个字段。Base URL 统一用https://taotoken.net/apiKey 用刚建的Model ID 用你选的那个。不要一个插件填 A 地址、另一个填 B 地址否则排障时根本分不清是哪条通道出问题。对于 Arduino 工具链本身它拉取 core 和库走的是 arduino-cli 的配置不是 OpenAI 接口。但我们可以通过settings.json里的 cli 路径和额外的索引地址字段把下载行为控制住。TaoToken 在这里的角色是当你需要 AI 辅助写代码、解释报错、生成库调用示例时VSCode 里的 AI 插件通过统一通道请求不用再单独找别的入口。这样一套 Key 覆盖编码辅助工具链本身则靠本地 cli 配置稳定下来。还有一点如果你在团队里协作建议把 Key 放在环境变量里而不是硬编码进settings.json。VSCode 的settings.json支持引用环境变量但不同插件支持程度不一样。稳妥做法是settings.json里只写非敏感的路径和 FQBNKey 通过插件自己的设置界面或系统环境变量注入。这样你分享工程配置时不会泄露 Key。准备好这些后我们就可以进入settings.json的配置环节了。下一节给出的片段可以直接复制字段含义我会逐个解释避免你改错位置。3. 可复制的 settings.json 配置Arduino 路径、FQBN 与统一 API 通道这一节是全文的核心。VSCode 的settings.json分两层用户级全局和工作区级.vscode/settings.json。Arduino 相关配置建议放在工作区级这样每个项目可以有不同的板子和串口不会互相干扰。下面这个片段你可以直接复制到工作区的.vscode/settings.json里然后按你的实际路径改。{ arduino.path: C:/Users/yourname/AppData/Local/Arduino15, arduino.commandPath: C:/tools/arduino-cli/arduino-cli.exe, arduino.additionalUrls: [ https://taotoken.net/api/arduino/package_index.json ], arduino.defaultBaudRate: 115200, arduino.logLevel: info, arduino.allowPDEFiletype: false, arduino.enableUSBDetection: true, arduino.disableTestingOpen: false, arduino.skipHeaderProvider: false, arduino.useArduinoCli: true, arduino.boardManager: { additionalUrls: [ https://taotoken.net/api/arduino/package_index.json ] }, C_Cpp.default.includePath: [ ${workspaceFolder}/**, C:/Users/yourname/AppData/Local/Arduino15/packages/** ], C_Cpp.default.defines: [ ARDUINO10819, USBCON ], files.associations: { *.ino: cpp }, editor.formatOnSave: true, editor.tabSize: 2 }逐字段说明。arduino.path指向 Arduino15 数据目录Windows 默认在C:/Users/你的用户名/AppData/Local/Arduino15macOS 在~/Library/Arduino15Linux 在~/.arduino15。这个目录里放着已安装的 core 和库。arduino.commandPath指向你手动下载的arduino-cli可执行文件。如果你把 cli 放进了系统 PATH这个字段可以省略但显式写出来更稳避免插件找不到。arduino.additionalUrls和arduino.boardManager.additionalUrls是控制板级支持包索引地址的关键。默认它会去官方地址拉package_index.json网络不稳时容易卡住。这里把它指向 TaoToken 的统一通道https://taotoken.net/api/arduino/package_index.json让索引拉取走稳定入口。注意这个地址是示例格式实际使用时以 TaoToken 文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite里给出的为准。两个字段都写是因为不同版本的插件读取的键名不一样双写可以兼容。arduino.defaultBaudRate设成 115200这是大多数现代 Arduino 板子的串口速率。arduino.logLevel设info编译上传时终端会输出足够的过程信息排障时有用。arduino.useArduinoCli设true强制走 cli 而不是旧的内置编译逻辑。C_Cpp.default.includePath和C_Cpp.default.defines是给 C/C 插件用的让代码提示能识别 Arduino 的库和宏。ARDUINO10819这个宏值对应 IDE 版本号写进去后#if ARDUINO 100这类条件编译能正确高亮。files.associations把.ino关联到 cpp语法高亮和补全才正常。如果你还要在 VSCode 里配 AI 辅助插件比如 Cline 或 Continue它们的配置通常不在settings.json而在各自的设置文件里。以 Cline 为例它的配置里需要填 Base URL、API Key、Model ID 三件套{ apiProvider: openai, openAiBaseUrl: https://taotoken.net/api, openAiApiKey: sk-你的Key, openAiModelId: 你的模型ID }这三行就是前面说的三件套。Base URL 用https://taotoken.net/apiKey 用你在控制台建的Model ID 用模型对话页里确认的那个。填完后 Cline 的请求就走 TaoToken 通道。注意不要把 Key 提交到公开仓库工作区里可以用.gitignore排除相关配置文件。配置改完后重启 VSCode 让settings.json生效。然后打开命令面板CtrlShiftP运行Arduino: Board Manager看能不能正常列出板子。如果列表能出来说明索引地址通了如果报错看下一节的排障。4. 验证一次编译上传从空 ino 到板载 LED 闪烁配置就绪后我们做一次完整的验证。新建一个文件夹比如blink_test在里面建blink_test.ino。VSCode 打开这个文件夹插件会自动识别为 Arduino 工程。如果没识别用命令面板运行Arduino: Initialize。先写一段最小代码让板载 LED 闪烁void setup() { pinMode(LED_BUILTIN, OUTPUT); Serial.begin(115200); } void loop() { digitalWrite(LED_BUILTIN, HIGH); Serial.println(LED ON); delay(1000); digitalWrite(LED_BUILTIN, LOW); Serial.println(LED OFF); delay(1000); }这段代码用LED_BUILTIN宏不同板子会自动映射到对应的板载 LED 引脚不用改代码。Serial输出用来验证串口监视器是否正常。接下来选板子。命令面板运行Arduino: Select Board输入你的板子型号比如Arduino Uno。插件会返回对应的 FQBNUno 是arduino:avr:uno。如果列表里没有你的板子说明对应的 core 没装需要先装 core。选串口。命令面板运行Arduino: Select Serial Port插上板子后会出现类似COM3Windows或/dev/ttyUSB0Linux/macOS的选项。选错串口会导致上传失败所以插拔一次确认端口号变化。编译。命令面板运行Arduino: Verify或者点右下角的对勾图标。终端会输出编译过程类似Compiling sketch... Using board uno from platform in folder: C:\Users\yourname\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6 ... Sketch uses 924 bytes (2%) of program storage space. Global variables use 9 bytes (0%) of dynamic memory.看到Sketch uses ... bytes就说明编译成功。如果卡在Downloading或者报reading file回到上一节检查索引地址。上传。命令面板运行Arduino: Upload。终端会先编译再调用 avrdude 写入avrdude: Version 6.3-20190619 Copyright (c) 2000-2005 Brian Dean ... avrdude: writing flash (924 bytes): Writing | ################################################## | 100% 0.28s avrdude: 924 bytes of flash written avrdude: verifying flash memory against ...看到bytes of flash written和verifying通过上传就成功了。板子上的 LED 应该开始一秒一闪。打开串口监视器命令面板Arduino: Open Serial Monitor波特率选 115200能看到LED ON/LED OFF交替输出。这一步验证了三件事工具链能拉取、编译能通过、上传通道正常。如果任何一步失败下一节的报错对照表能帮你定位。5. 高频报错排查401、local proxy failed、reading choices、OAuth这一节把几个真实会撞上的报错拆开。每个报错我都给出触发场景和对应改法。401 Unauthorized。这个通常出现在 AI 辅助插件请求 TaoToken 时。原因一般是 Key 填错、Key 过期、或者 Base URL 写成了带路径的地址。检查三件套Base URL 必须是https://taotoken.net/api不要多加/v1或/chat/completionsKey 必须是控制台里新建的那串注意前后不要有空格Model ID 必须是模型对话页里确认存在的。改完重启插件。local proxy failed / connection refused。这个报错说明请求被导向了一个本地代理端口但那个端口没有服务在跑。常见于之前配过代理工具settings.json或环境变量里残留了http.proxy字段。检查 VSCode 设置里的http.proxy如果指向127.0.0.1:某端口而你没开对应服务就清空它。同时检查系统环境变量HTTP_PROXY/HTTPS_PROXY有残留也清掉。清完后重启 VSCode。Error reading choices / reading file。这是 Arduino 插件拉取板子列表或库索引时解析失败。原因通常是索引地址返回了非 JSON 内容或者下载中断导致文件损坏。先删掉缓存目录里的索引文件Windows 在C:/Users/你的用户名/AppData/Local/Arduino15/package_index.jsonmacOS 在~/Library/Arduino15/package_index.json删掉后重新运行Arduino: Board Manager让它重新拉。如果还失败检查arduino.additionalUrls里的地址是否可达用浏览器打开看返回的是不是 JSON。OAuth 相关报错。如果你在配 Claude Code 或类似工具时看到 OAuth 失败通常是因为它默认走 OAuth 登录流程而你要用的是 API Key 模式。以 Claude Code 为例需要设置环境变量指向统一通道export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEYsk-你的Key然后在settings.json或对应配置文件里指定模型 ID。三件套齐全后OAuth 流程就不会被触发。如果你用的是 Codex它的auth.json里需要填 Base URL 和 Key格式参考文档页https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite。编译报错 undefined reference to。这个不是通道问题是库没装或没引用。比如用了Servo库但没装编译会报找不到符号。用Arduino: Library Manager搜库名安装或者手动把库放到Arduino15/libraries目录下。装完重启 VSCode。上传报错 avrdude: ser_open(): cant open device。串口被占用或选错。关掉 Arduino IDE 的串口监视器确认没有其他程序占用该端口重新选串口再上传。把这几类报错对照着排查大部分环境问题都能解决。核心思路是先分清是通道问题401、proxy、OAuth还是工具链问题reading file、编译报错再针对性改配置。6. 长期编码与 Agent 场景把统一通道用起来环境跑通后如果你打算长期用 VSCode 做 Arduino 项目甚至让 AI 帮你写库调用、解释报错、生成测试代码那统一通道的价值就体现出来了。你不需要每个工具单独配一套地址Base URL、Key、Model ID 三件套在 Cline、Continue、Claude Code 里保持一致排障时只需要检查一处。对于长期编码和 Agent 任务Coding Plan 页面https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite里有对应的套餐说明按你的使用频率选。如果只是偶尔问几个问题模型对话页https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite直接开网页用就行。需要新建更多 Key 做项目隔离去 API Keys 页https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite。配置字段有疑问就查文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite。最后给一个实用技巧把工作区的.vscode/settings.json和 AI 插件的配置文件分开管理前者提交到 Git 方便团队共享板子和 FQBN 配置后者用.gitignore排除Key 通过环境变量注入。这样既保证协作一致又不会泄露凭证。Arduino 项目本身不大但环境配置一次理顺后面每个新工程复制.vscode目录就能直接开工。
返回列表