VSCode通过PlatformIO支持Arduino等微控制器开发,通过Remote-SSH实现树莓派等嵌入式Linux远程开发。安装PlatformIO IDE扩展后可创建项目、配置platformio.ini文件并完成编译上传;配合Python、C/C++等扩展可在远程设备上高效调试。相比传统IDE,VSCode具备轻量、跨平台、扩展丰富、统一开发体验等优势。常见问题包括Python环境冲突、驱动缺失、串口权限及网络下载失败,可通过指定解释器、安装驱动、调整用户组和配置代理解决。除PlatformIO外,Remote-SSH、Python、C/C++、Docker、GitLens等扩展进一步提升嵌入式开发效率。

将 VSCode 配置为支持 Arduino 或 Raspberry Pi 等嵌入式开发,核心在于利用其强大的扩展生态。通过安装特定的扩展,VSCode 能从一个轻量级代码编辑器摇身一变,成为一个功能齐全的嵌入式开发集成环境,无论是编译上传固件到微控制器,还是远程调试 Linux 设备上的 Python 或 C/C++ 程序,都能高效完成。这大大简化了开发流程,避免了在多个工具之间切换的繁琐。
解决方案
要让 VSCode 真正“活”起来,支持嵌入式开发,主要围绕两个方向展开:一是针对微控制器(如 Arduino),二是针对嵌入式 Linux(如 Raspberry Pi)。
针对 Arduino 等微控制器开发(PlatformIO IDE 扩展)
我个人觉得,PlatformIO 是目前 VSCode 上最成熟、最强大的嵌入式开发解决方案。它不仅支持 Arduino,还兼容 ESP32、ESP8266、STM32 等数百种开发板和几十种开发平台。
安装 PlatformIO IDE 扩展:
打开 VSCode,在侧边栏找到“扩展”图标(或按 Ctrl+Shift+X),搜索“PlatformIO IDE”并安装。安装过程可能需要下载一些必要的工具链和依赖,这取决于你的网络状况,第一次会比较慢,耐心等待。说实话,这个过程有时会让人头疼,尤其是网络不稳定的时候,你会看到各种下载失败的提示,但通常重试几次或者换个网络环境就能解决。
创建新项目: 安装完成后,VSCode 左侧会出现 PlatformIO 的小图标。点击它,选择“Open Project Example”或“New Project”。
MyArduinoBlink。Arduino Uno、ESP32 Dev Module。PlatformIO 会自动为你下载相应的板级支持包和工具链。Arduino。src 文件夹(放你的代码)、lib 文件夹(放库文件)、platformio.ini(项目配置文件)。编写代码与配置 platformio.ini:
在 src 文件夹下找到 main.cpp(或 main.ino),编写你的 Arduino 代码。
platformio.ini 是项目的灵魂,它定义了编译环境、上传方式、库依赖等。一个典型的 platformio.ini 文件可能长这样:
[env:uno]
platform = atmelavr
board = uno
framework = arduino
lib_deps =
#include <Adafruit_NeoPixel.h>
#include <DHT sensor library>
upload_port = COM3 ; Windows
; upload_port = /dev/ttyACM0 ; Linux
; monitor_speed = 9600这里我指定了平台、开发板、框架,甚至加入了两个常用库的依赖。lib_deps 会让 PlatformIO 自动管理这些库,非常方便。upload_port 需要根据你的实际串口号来修改,这通常是新手容易忽略的地方。
编译、上传与串口监视: PlatformIO 界面底部有编译、上传、监视串口等按钮。点击“Build”(打钩图标)编译代码,点击“Upload”(右箭头图标)上传到开发板。点击“Monitor”(插头图标)可以打开串口监视器,查看开发板的输出。
针对 Raspberry Pi 等嵌入式 Linux 开发(Remote - SSH 扩展)
对于 Raspberry Pi 这类运行完整 Linux 系统的设备,VSCode 的远程开发能力简直是神器。我个人觉得,这比在 Pi 上直接装 IDE 要高效得多,毕竟 Pi 的性能有时还是捉襟见肘。
安装 Remote - SSH 扩展: 在 VSCode 扩展市场搜索“Remote - SSH”并安装。
配置 SSH 连接: 安装后,VSCode 左下角会出现一个绿色的远程连接图标。点击它,选择“Connect to Host...”。
C:\Users\YourUser\.ssh\config 或 ~/.ssh/config)。Host raspberrypi
HostName 192.168.1.100 ; 你的树莓派IP地址
User pi ; 你的树莓派用户名
IdentityFile ~/.ssh/id_rsa ; 如果你使用SSH密钥,指定密钥路径
Port 22 ; SSH端口,默认为22保存配置文件后,再次点击绿色图标,选择 raspberrypi 连接。VSCode 会提示你输入密码(如果你没有设置密钥)。
在远程设备上打开文件夹:
连接成功后,VSCode 会在新窗口打开。你会发现底部状态栏显示“SSH: raspberrypi”。这时,你可以点击“Open Folder”按钮,选择 Raspberry Pi 上的任意文件夹,比如 /home/pi/my_project。VSCode 会自动在 Pi 上安装一个“VSCode Server”,所有文件操作、代码编辑、终端运行都在 Pi 上进行,但你依然享受本地 VSCode 的流畅体验。
安装远程扩展: 一旦连接到远程设备,你可以在远程 VSCode 窗口中安装 Python、C/C++ 等扩展。这些扩展会安装在 Raspberry Pi 上,并为远程项目提供智能感知、调试等功能。
为什么选择 VSCode 进行嵌入式开发,它比传统IDE有哪些优势?
选择 VSCode 进行嵌入式开发,对我来说,更多的是一种现代开发体验的追求。它与那些老牌的、往往是厂商定制的传统 IDE 相比,有着非常明显的优势。
首先,轻量化和高性能是其最直观的优点。传统的 IDE,比如 Arduino IDE、Keil、IAR,通常比较臃肿,启动慢,占用资源多。VSCode 则不同,它本身只是一个文本编辑器,通过按需安装扩展来增加功能,这使得它在大多数机器上都能流畅运行,即使是配置不高的笔记本电脑也能胜任。在我看来,这种“按需索取”的模式非常符合现代软件的哲学。
其次,强大的扩展生态是其核心竞争力。PlatformIO 只是冰山一角。对于树莓派这类嵌入式 Linux 设备,Remote - SSH 扩展简直是神来之笔。它让我可以直接在本地电脑上,以接近本地开发的速度,编辑、运行和调试远程设备上的代码,完全避免了文件传输的麻烦和性能瓶颈。此外,还有 Python、C/C++、Docker、GitLens 等无数高质量的扩展,它们共同构建了一个几乎无所不能的开发环境。这种开放性和可扩展性是传统 IDE 难以企及的。
再者,统一的开发体验。无论你是写前端、后端、嵌入式,还是数据科学,VSCode 都能提供一个统一的界面和操作逻辑。这意味着你不需要学习多套不同的 IDE 操作习惯,减少了认知负担。对我这种经常在不同项目类型间切换的人来说,这简直是福音。内置的终端、Git 版本控制集成也让整个开发流程更加顺畅,省去了频繁切换应用程序的麻烦。
最后,跨平台支持也是一个不可忽视的优势。VSCode 在 Windows、macOS、Linux 上都能完美运行,这对于团队协作或者个人在不同操作系统下工作都提供了极大的便利。传统 IDE 往往有平台限制,或者在不同平台上的体验差异较大。
当然,传统 IDE 也有其不可替代的优势,比如某些芯片厂商提供的深度优化调试工具、更专业的硬件调试器集成等。但话说回来,对于大多数日常的嵌入式开发任务,VSCode 的灵活性和效率已经足够让人满意了。
配置 PlatformIO IDE 扩展时,常会遇到哪些坑点及如何解决?
PlatformIO 确实强大,但它在配置和初次使用时,也埋了一些“坑”,我个人就踩过不少,有些真的让人抓狂。不过,大部分问题都有成熟的解决方案。
一个最常见的坑是Python 环境冲突或缺失。PlatformIO 依赖 Python 来运行其核心命令行工具 (CLI)。如果你的系统中有多个 Python 版本,或者 Python 环境配置不当,PlatformIO 可能无法正常启动。
第二个大坑是驱动程序问题,尤其是针对 Arduino 或 ESP32/ESP8266 这类通过 USB 转串口芯片连接的设备。
ls /dev/tty*(Linux/macOS)能识别出新的串口设备。如果不能,很可能是驱动没装好。dialout 或 uucp 用户组。例如:sudo usermod -a -G dialout $USER,然后重启系统。第三个是首次下载工具链和库的漫长等待和失败。PlatformIO 在创建项目或添加新板子时,需要从远程服务器下载对应的编译器、SDK 和库。这个过程可能非常耗时,而且如果网络不稳定,很容易下载失败。
~/.platformio/packages 目录下的相关文件,让它重新下载。最后,platformio.ini 配置错误也是新手常犯的。比如 board 名称写错、framework 选择不当、lib_deps 库名不准确等。
除了 PlatformIO,还有哪些 VSCode 扩展能提升树莓派或嵌入式 Linux 开发效率?
除了 PlatformIO 这个针对微控制器开发的利器,对于树莓派这类嵌入式 Linux 设备,VSCode 还有一系列扩展能显著提升开发效率,甚至改变你的开发模式。我个人觉得,这些扩展组合起来,让 VSCode 在嵌入式 Linux 开发领域几乎无懈可击。
Remote - SSH (必装) 这个扩展前面已经提到了,但它的重要性值得再次强调。它是连接本地 VSCode 和远程 Raspberry Pi 的桥梁。没有它,后续所有基于远程环境的开发都无从谈起。它让我在本地拥有强大的编辑器功能,同时代码却在远程 Pi 上运行,避免了文件同步的麻烦和 Pi 本身性能不足的问题。
Python 扩展 (Microsoft) 如果你主要在树莓派上进行 Python 开发,这个扩展是不可或缺的。它提供了:
Black 或 autopep8,保持代码风格一致。C/C++ 扩展 (Microsoft) 对于在树莓派上进行 C/C++ 开发(比如驱动开发、高性能计算或使用 WiringPi/pigpio 库),这个扩展提供了:
Clang-Format。tasks.json 来编译和运行远程 Pi 上的 C/C++ 代码。Docker 扩展 (Microsoft) 虽然不是直接针对 Pi 的,但它在嵌入式 Linux 开发中有着巨大的潜力。你可以:
GitLens — Git supercharged (Eric Amodio) 对于任何代码项目,版本控制都是核心。GitLens 极大地增强了 VSCode 的 Git 功能,它能让你在代码旁边直接看到每一行代码的作者、提交信息和修改时间,方便追溯代码历史。这在团队协作或理解老代码时特别有用。
ESLint (Nicolas Chambrier) / Prettier - Code formatter (Esben Petersen) 如果你在 Pi 上进行 Web 开发或 Node.js 开发,这些扩展能帮助你保持代码风格一致性,并捕获潜在的语法错误。
这些扩展共同构建了一个高效、流畅的嵌入式 Linux 开发工作流。我个人觉得,一旦你习惯了这种远程开发模式,就很难再回到传统的 SSH 命令行加 Vim 的开发方式了。
以上就是如何配置 VSCode 以支持 Arduino 或 Raspberry Pi 等嵌入式开发?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号