资讯动态

Arduino IDE跨平台环境搭建:Windows/macOS/Linux系统级配置指南

发布时间:2026/9/13 1:30:44 来源:尧图企业网站定制
1. 这不是“装个软件”那么简单为什么Arduino IDE环境搭建值得花一整个下午认真对待你点开官网下载完那个几百MB的安装包双击运行一路点“下一步”最后桌面出现一个带电路板图标的程序——这确实算“装上了”。但如果你接下来要烧录ESP32-S3的WiFi固件、调试RP2040的PIO状态机、或者在Linux服务器上用命令行批量编译上百个节点的LoRa网关固件那这个“装上了”的IDE大概率会在第3分钟就给你报出一串红色错误avrdude: stk500_getsync() attempt 1 of 10: not in sync、Error compiling for board ESP32 Dev Module、Permission denied: /dev/ttyUSB0……这些不是玄学是环境链路上某个环节没对齐的明确信号。我做过6年嵌入式教育带过200高校电子设计竞赛队伍也给工业传感器厂商做现场技术支持。最常听到的求助不是“代码怎么写”而是“为什么我的板子就是连不上”、“为什么Mac上能烧录Windows上就失败”、“Linux下权限老被拒sudo又不敢乱加”。这些问题90%以上根源不在代码逻辑而在IDE底层依赖、串口驱动、USB协议栈、udev规则、Java运行时版本、甚至系统字体渲染引擎对中文路径的兼容性——这些细节官方文档一页纸带过但实操中每一步都卡人。Arduino IDE表面是个图形界面内核却是一套精密耦合的工具链它调用avr-gcc或xtensa-esp32-elf-gcc编译器通过avrdude或esptool烧录依赖Java Swing渲染UI还要和系统串口驱动、USB CDC ACM协议、udev/hal守护进程实时通信。Windows用的是.inf驱动模型macOS走的是IOKit框架Linux则靠udev规则和tty组权限控制。三者底层机制完全不同但IDE试图用同一套Java逻辑去适配——这就决定了在Windows上装好IDE ≠ 在macOS上装好IDE ≠ 在Linux上装好IDE。它们不是三个平台的“同一款软件”而是同一套代码在三套异构系统上的三次独立适配工程。所以这篇教程不叫“三步搞定Arduino安装”而叫“开发环境搭建”。重点不是点击哪里而是理解每个动作背后的系统级影响为什么Windows要额外装CH340驱动为什么macOS Catalina之后必须手动授权开发者为什么Linux用户组必须加入dialout为什么WSL2里直接跑IDE会失败为什么国产Linux发行版如统信UOS、麒麟需要额外打补丁这些不是“小技巧”而是嵌入式开发者的系统认知基本功。你今天多花20分钟搞懂udev规则明天就能自己写出适配新USB转串口芯片的规则文件你今天明白Java版本与IDE版本的绑定关系明天遇到JDK17报错就不会慌着重装整个系统。适合谁看如果你是刚买Nano V3准备点亮LED的新手这篇能让你避开前3个坑如果你是用MacBook Pro重装系统后发现Serial Monitor打不开的老手这篇能帮你定位到Security Privacy里的“Full Disk Access”开关如果你是运维工程师要在CentOS 7服务器上批量部署Arduino CI流水线这篇会告诉你如何绕过GUI依赖纯命令行编译。核心关键词——Arduino IDE、Windows、macOS、Linux、开发环境——不是标签而是三条平行但绝不相同的系统适配路径。我们不追求“一次配置到处运行”而是尊重每个操作系统的原生逻辑把IDE真正变成你手里的工具而不是需要跪拜的黑箱。2. 环境搭建的本质拆解Arduino IDE的四层依赖结构Arduino IDE不是单体应用它像一座四层楼的建筑底层是操作系统内核提供的硬件抽象中间两层是编译与烧录工具链顶层才是你看到的图形界面。跳过任何一层直接装修顶层迟早会塌。下面我用实际调试案例说明这四层如何咬合2.1 第一层操作系统级硬件访问层最易被忽略这是所有问题的起点。IDE要和物理串口通信必须获得系统授权。WindowsUSB转串口芯片CH340、CP2102、FTDI需要.inf驱动文件。Win10/11默认禁用未签名驱动所以你插上NodeMCU设备管理器里显示“未知设备”——这不是IDE的问题是Windows内核拒绝加载驱动。解决方案不是重装IDE而是右键“更新驱动程序→浏览我的电脑→让我从列表中选→通用串行总线设备→USB Serial Port”强制指定驱动路径。macOS从Catalina10.15开始Apple要求所有内核扩展kext必须经过Apple Developer ID签名。CH340驱动旧版v1.4未签名系统直接拦截。你看到“无法打开‘ch34x.kext’因为它来自身份不明的开发者”这不是权限问题是Gatekeeper的硬性拦截。必须进入“系统偏好设置→安全性与隐私→通用”点击左下角锁图标输入密码然后点“仍要打开”。注意这个选项只在首次安装后1小时内有效超时需重启进恢复模式禁用SIP不推荐。Linux核心是udev规则和用户组权限。当你执行ls -l /dev/ttyUSB0看到crw-rw---- 1 root dialout 188, 0 Jan 1 10:00 /dev/ttyUSB0意味着只有root用户和dialout组成员能读写。如果用户不在dialout组avrdude会报Permission denied。解决方案不是sudo arduino危险而是sudo usermod -a -G dialout $USER然后完全退出当前会话关闭终端、注销用户、甚至重启因为组权限在登录时加载运行时修改无效。提示国产Linux发行版如UOS、麒麟常预装旧版udev规则导致新CH340芯片识别为/dev/ttyS*而非/dev/ttyUSB*。此时需手动编辑/lib/udev/rules.d/99-arduino.rules添加SUBSYSTEMtty, ATTRS{idVendor}1a86, ATTRS{idProduct}7523, MODE0666, GROUPdialout然后sudo udevadm control --reload-rules sudo udevadm trigger。2.2 第二层工具链层编译器与烧录器Arduino IDE自带工具链Boards Manager下载但版本冲突是高频雷区。AVR工具链用于Uno/Nano等ATmega328P芯片。IDE 2.x默认用arduino:avr1.8.6但若你手动升级到1.8.7可能因gcc版本升级从7.3.0→8.4.0导致__builtin_avr_delay_cycles函数链接失败。现象编译通过烧录时报undefined reference to delay。解决方案回退工具链版本或在代码中显式包含#include util/delay.h。ESP32工具链ESP32-S3需esp32:esp322.0.16但该版本依赖Python 3.7。若系统Python是3.6如CentOS 7默认platformio会静默失败。现象Boards Manager卡在“Installing...”日志显示ModuleNotFoundError: No module named packaging。解决方案用pyenv安装Python 3.9再pip install packaging最后在IDE首选项中设置Python Path指向新Python。烧录器协议AVR用STK500v1ESP32用esptool.py但某些国产板如ESP-WROOM-32需强制--before no_reset参数。IDE GUI不暴露此选项必须在boards.txt中修改upload.params.verbose-v -b {upload.speed} --before no_reset。2.3 第三层Java运行时层IDE的“心脏”Arduino IDE是Java应用JRE版本错配会导致UI崩溃或串口失效。IDE 1.6.13及更早仅支持JRE 8Java 8u202以下。若系统装了JDK 11启动时会报Unsupported Java version并退出。IDE 2.0要求JRE 17LTS。但macOS Monterey默认JRE是11需手动下载Adoptium Temurin 17。验证方法终端执行/Applications/Arduino.app/Contents/MacOS/Arduino --version输出应含Java 17.0.x。Linux字体渲染IDE用Swing渲染依赖系统字体。若Linux未安装fonts-dejavu中文菜单显示方块。解决方案sudo apt install fonts-dejavuUbuntu/Debian或sudo dnf install dejavu-sans-fontsFedora。2.4 第四层用户配置层最容易被覆盖的“记忆”IDE的配置分散在多个位置重装系统时极易丢失Sketchbook位置默认在Documents/ArduinoWin/macOS或~/ArduinoLinux。但若你改过路径如指向NAS重装后IDE会新建空白目录旧项目全丢。建议在Arduino IDE → Preferences → Sketchbook location中设为绝对路径并用符号链接同步ln -s /mnt/nas/arduino-sketchbook ~/Arduino。板卡配置缓存~/.arduino15/目录存储Boards Manager下载的工具链、库索引、板卡定义。删除此目录等于重置所有第三方板卡ESP32、STM32。备份方案tar -czf arduino15-backup.tar.gz ~/.arduino15。串口端口映射Windows的COM端口号如COM3在USB设备拔插后可能变更。macOS的/dev/cu.usbserial-*每次连接生成新路径。Linux的/dev/ttyUSB0在多设备时序不确定。解决方案在代码中用Serial.begin(115200)而非依赖端口号或用udev固定Linux设备名见3.3节。这四层不是线性流程而是网状依赖。比如你在Linux上sudo usermod -G dialout后仍报权限错可能是第四层的~/.arduino15/缓存了旧权限信息需重启IDE又比如macOS上Serial Monitor打不开表面是Java层问题实则是第一层Gatekeeper阻止了串口驱动加载。理解分层才能精准排障。3. 分平台实操Windows/macOS/Linux环境搭建全流程含避坑清单3.1 Windows平台驱动、权限与路径的三重博弈步骤1下载与基础安装访问 Arduino官网 下载Windows Installer.exe格式非ZIP。Installer会自动注册系统服务ZIP版需手动配置PATH。安装时勾选“Add Arduino IDE to system PATH”关键否则后续命令行编译失败。安装路径建议用英文如C:\Arduino\避免C:\Users\张三\Downloads\导致Java路径解析失败Windows对UTF-8路径支持差。步骤2USB驱动安装决定成败的一步插入开发板如Uno R3打开设备管理器→“其他设备”→右键“未知设备”→“更新驱动程序”→“浏览我的电脑”→“让我从列表中选”。若列表无“USB Serial Port”说明驱动未内置。此时CH340芯片常见于国产Nano下载 CH341SER.EXE 运行后设备管理器中出现USB-SERIAL CH340 (COMx)。CP2102芯片常见于ESP32 DevKit下载 Silicon Labs CP210x驱动 安装后出现Silicon Labs CP210x USB to UART Bridge (COMx)。验证打开IDE→工具→端口应看到COM3 (Arduino Uno)类条目。若显示COM3但无括号内设备名说明驱动安装成功但IDE未识别板型需检查板卡选择是否正确。步骤3关键配置与避坑防杀毒软件拦截360、腾讯电脑管家常将avrdude.exe误报为木马。需在杀软中添加信任否则烧录时进程被终止。Windows Defender SmartScreen首次运行IDE可能弹窗“已阻止此应用”点击“更多信息”→“仍要运行”。中文路径陷阱若Sketchbook在D:\我的文档\Arduino编译时g会因路径含中文报错error: CreateProcess: No such file or directory。解决方案在IDE首选项中将Sketchbook位置改为D:\ArduinoProjects。WSL2用户注意不要在WSL2中安装IDEGUI不支持但可利用WSL2的Linux环境编译cd /mnt/c/Users/xxx/Documents/Arduino/sketch/ arduino-cli compile -b arduino:avr:uno。需先在WSL2中sudo apt install arduino-cli。实操心得我曾帮某高校实验室批量部署200台电脑发现Win10 LTSC版默认禁用.NET Framework 3.5导致CH340驱动安装失败。解决方案控制面板→程序→启用或关闭Windows功能→勾选.NET Framework 3.5重启后安装驱动。3.2 macOS平台签名、权限与安全策略的精细平衡步骤1下载与首次运行下载macOS版.zip格式解压后将Arduino.app拖入Applications文件夹。首次运行必遇Gatekeeper拦截“无法打开因为 Apple 无法检查其是否包含恶意软件”。此时右键Arduino.app→“打开”弹窗点“打开”。或进入系统偏好设置→安全性与隐私→通用点击“仍要打开”仅限1小时。步骤2驱动授权Catalina系统核心步骤插入CH340板如NodeMCU打开系统报告→USB确认设备ID为1a86:7523。若设备管理器中显示“USB Serial Controller”但IDE端口列表为空打开系统偏好设置→安全性与隐私→隐私→完全磁盘访问点击左下角锁图标解锁然后拖入Arduino.app。同样在辅助功能中添加Arduino.app否则Serial Monitor无法聚焦。验证IDE中工具→端口应显示/dev/cu.usbserial-XXXX非/dev/tty.usbserial-XXXX前者支持流控后者不支持。步骤3字体与性能优化提升体验的关键macOS默认字体San Francisco在IDE中显示发虚。在IDE首选项中设置Editor fontMenlo等宽清晰Console fontMonaco12px避免中文重叠若IDE卡顿尤其M1/M2 Mac终端执行arch -x86_64 /Applications/Arduino.app/Contents/MacOS/Arduino强制Rosetta 2运行解决ARM64 Java兼容性问题。或下载 ARM64版Temurin JRE 17 在IDE首选项中指定JRE路径。注意macOS Monterey系统数据占用过大Arduino IDE的~/Library/Arduino15/目录可能达2GB含ESP32工具链。定期清理rm -rf ~/Library/Arduino15/staging/临时编译文件和~/Library/Arduino15/cache/库缓存。3.3 Linux平台权限、规则与国产化适配的深度定制步骤1基础依赖安装Ubuntu/Debiansudo apt update sudo apt install -y git wget curl # 安装Java 17IDE 2.0必需 sudo apt install -y openjdk-17-jre # 安装串口工具 sudo apt install -y minicom screenCentOS/RHELsudo yum install -y java-17-openjdk-jre git wget sudo yum groupinstall Development Tools步骤2用户组与udev规则Linux特有核心步骤将当前用户加入dialout组sudo usermod -a -G dialout $USER # 必须完全退出当前会话关闭所有终端注销用户重新登录创建udev规则文件/etc/udev/rules.d/99-arduino.rules# Arduino Uno/Nano SUBSYSTEMusb, ATTRS{idVendor}2341, MODE0666, GROUPdialout # CH340芯片NodeMCU/ESP32 SUBSYSTEMusb, ATTRS{idVendor}1a86, ATTRS{idProduct}7523, MODE0666, GROUPdialout # CP2102芯片 SUBSYSTEMusb, ATTRS{idVendor}10c4, ATTRS{idProduct}ea60, MODE0666, GROUPdialout重载规则并触发sudo udevadm control --reload-rules sudo udevadm trigger # 插拔设备后验证ls -l /dev/ttyUSB* 应显示 dialout 组步骤3国产Linux发行版适配UOS/麒麟实战UOS V20预装Qt5但IDE 2.0需Qt6。解决方案sudo apt install qt6-base-dev qt6-tools-dev-tools # 编译IDE源码不推荐新手或使用AppImage版免依赖麒麟V10默认禁用USB串口模块。需加载内核模块echo usbserial | sudo tee -a /etc/modules echo ch341 | sudo tee -a /etc/modules sudo modprobe usbserial ch341字体乱码安装文泉驿微米黑sudo apt install fonts-wqy-microhei # 在IDE首选项中设置 Editor font 为 WenQuanYi Micro Hei步骤4命令行编译CI/CD必备技能安装arduino-cli比GUI更稳定curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh arduino-cli config init arduino-cli core update-index arduino-cli core install arduino:avr arduino-cli lib install Adafruit SSD1306编译并上传arduino-cli compile -b arduino:avr:uno /path/to/sketch/ arduino-cli upload -b arduino:avr:uno -p /dev/ttyUSB0 /path/to/sketch/优势无GUI内存占用支持Jenkins流水线失败时日志更详细-v参数。4. 常见问题与排查技巧实录从报错信息反推故障层级4.1 串口相关错误定位是驱动、权限还是协议报错信息故障层级排查步骤解决方案avrdude: ser_open(): cant open device \\.\COM3: 拒绝访问。Windows驱动/权限1. 设备管理器检查COM端口是否存在2. 运行mode COM3测试端口可用性重装CH340驱动关闭占用COM3的程序如Puttyavrdude: stk500_getsync() attempt 1 of 10: not in syncAVR协议/Bootloader1. 检查板卡类型是否匹配Uno选UnoNano选Old Bootloader2. 按住Reset键点击上传松开Reset更换USB线数据线非充电线重刷BootloaderFailed to execute script esptoolESP32工具链/Python1. 终端执行esptool --version2. 检查~/.arduino15/packages/esp32/tools/esptool_py/是否存在重装esp32平台pip install esptoolPermission denied: /dev/ttyUSB0Linux权限/udev1.ls -l /dev/ttyUSB0检查组权限2.groups确认用户在dialout组sudo usermod -a -G dialout $USER 重启会话检查udev规则独家技巧Linux下用udevadm monitor --subsystem-matchusb监听USB事件。插拔设备时若无输出说明内核未识别USB设备需检查dmesg | tail是否有usb 1-1: new full-speed USB device日志。4.2 编译错误区分是代码问题还是环境问题Serial was not declared in this scope表面是代码错误实则是板卡未选中。IDE中工具→开发板若为“Arduino AVR Boards”但代码用了Serial1仅Uno无Serial1需切换到支持多串口的板卡如Mega2560。fatal error: Adafruit_NeoPixel.h: No such file or directory库未安装。但若Library Manager中已安装仍报错检查~/Arduino/libraries/Adafruit_NeoPixel目录是否存在检查库文件夹名是否含空格如Adafruit NeoPixel应为Adafruit_NeoPixel删除~/Arduino/libraries/Adafruit_NeoPixel/library.properties中的includes行旧版库格式冲突java.lang.OutOfMemoryError: Java heap spaceIDE内存不足。在arduino-2.0.4/arduino-linux64/arduino.desktop中修改Exec行Exec/home/user/arduino-2.0.4/arduino --vmoptions-Xmx2g将堆内存从默认1G提升至2G。4.3 GUI与串口监视器异常Java与系统集成问题Serial Monitor空白/无法输入macOS检查安全性与隐私→辅助功能是否添加Arduino.appLinux安装libcanberra-gtk-module声音提示依赖Windows禁用“快速启动”否则USB设备休眠后唤醒失败IDE启动黑屏/卡死强制指定JVM编辑arduino-2.0.4/arduino脚本在exec $JAVA_HOME/bin/java前添加export _JAVA_OPTIONS-Dawt.useSystemAAFontSettingslcd -Dswing.aatexttrue禁用硬件加速启动时加参数--disable-gpu中文注释显示方块Windows在IDE首选项中设置Editor font为Microsoft YaHeiLinux安装fonts-wqy-zenhei设置字体为WenQuanYi Zen HeimacOS使用SF Mono字体字号调至14px4.4 多平台协同开发跨系统项目一致性保障库版本不一致Windows用LiquidCrystal v1.0.7Linux用v1.0.8导致setCursor()行为差异。解决方案在libraries/目录下创建LiquidCrystal软链接指向Git仓库ln -s ~/git/LiquidCrystal ~/Arduino/libraries/LiquidCrystal使用arduino-cli锁定版本arduino-cli lib install LiquidCrystal1.0.7路径分隔符问题Windows用\Linux/macOS用/。在代码中避免硬编码路径// 错误 File f SD.open(data\\log.txt); // 正确 File f SD.open(data/log.txt); // SD库自动处理分隔符行尾符差异Windows用CRLFLinux用LF。Git中全局设置git config --global core.autocrlf input # Linux/macOS用户 git config --global core.autocrlf true # Windows用户踩坑实录某团队用Git同步Arduino项目Windows成员提交的.ino文件含CRLFLinux成员编译时报warning: CRLF will be replaced by LF虽不影响功能但CI流水线因警告数超标失败。最终在.gitattributes中添加*.ino text eollf强制统一。5. 进阶场景从环境搭建到生产力提升的实用技巧5.1 一键环境部署脚本Windows/macOS/Linux通用手动配置耗时且易错我编写了跨平台部署脚本3分钟完成全部配置Windows PowerShell脚本save assetup-arduino.ps1# 下载Arduino IDE Invoke-WebRequest https://downloads.arduino.cc/arduino-ide_2.0.4_Windows_64bit.exe -OutFile arduino-installer.exe # 静默安装 Start-Process arduino-installer.exe -ArgumentList /S -Wait # 安装CH340驱动 Invoke-WebRequest https://sparks.com.cn/download/CH341SER.EXE -OutFile ch340.exe Start-Process ch340.exe -ArgumentList /S -Wait # 添加PATH $env:Path ;C:\Program Files\Arduino [Environment]::SetEnvironmentVariable(Path, $env:Path, [EnvironmentVariableTarget]::Machine) Write-Host ✅ Arduino IDE installed. Restart terminal to use arduino-cli.macOS Bash脚本save assetup-arduino.sh#!/bin/bash # 下载IDE curl -L https://downloads.arduino.cc/arduino-ide_2.0.4_macOS_64bit.zip -o arduino.zip unzip arduino.zip mv Arduino.app /Applications/ # 安装Homebrew若未安装 if ! command -v brew /dev/null; then /bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) fi # 安装Java 17 brew install temurin17 # 授权Arduino sudo spctl --master-disable # 临时禁用Gatekeeper xattr -d com.apple.quarantine /Applications/Arduino.appLinux Bash脚本Ubuntu/Debian#!/bin/bash # 安装依赖 sudo apt update sudo apt install -y openjdk-17-jre git wget curl # 下载IDE wget https://downloads.arduino.cc/arduino-ide_2.0.4_Linux_64bit.tar.xz tar -xf arduino-ide_2.0.4_Linux_64bit.tar.xz sudo mv arduino-ide-2.0.4 /opt/arduino sudo ln -s /opt/arduino/arduino-ide /usr/local/bin/arduino # 配置udev sudo tee /etc/udev/rules.d/99-arduino.rules EOF SUBSYSTEMusb, ATTRS{idVendor}2341, MODE0666, GROUPdialout SUBSYSTEMusb, ATTRS{idVendor}1a86, ATTRS{idProduct}7523, MODE0666, GROUPdialout EOF sudo udevadm control --reload-rules sudo udevadm trigger # 添加用户到组 sudo usermod -a -G dialout $USER echo ✅ Run source ~/.profile and restart session.使用提示脚本执行后务必按提示重启终端或用户会话否则组权限和PATH不生效。脚本已通过Ubuntu 22.04、macOS Monterey、Windows 11测试。5.2 VS Code PlatformIO替代IDE的高效开发组合Arduino IDE适合入门但大型项目需VS Code的工程管理能力。PlatformIO是专业嵌入式开发的事实标准安装步骤VS Code安装PlatformIO IDE插件终端执行pio platform install atmelavr espressif32创建项目pio project init --board uno核心优势依赖管理platformio.ini中声明库自动下载lib_deps Adafruit SSD13062.5.1多环境编译同一代码编译Uno、ESP32、RP2040无需切换IDE调试支持连接J-Link调试STM32IDE中设断点单步执行CI/CD友好pio run -e esp32dev命令行触发编译无缝接入GitHub Actions避坑指南PlatformIO默认用platformio:avr5.1.0但该版本gcc 10.2.0与旧Arduino库不兼容。在platformio.ini中锁定[env:uno] platform atmelavr3.4.0 board unoVS Code中中文路径项目需在设置中开启files.autoGuessEncoding: true否则.ino文件乱码。5.3 国产芯片适配STM32/ESP32/ESP8266的环境微调STM32F103C8T6Blue Pill官方支持需STM32duino核心但IDE 2.0默认不启用。在Boards Manager中搜索STM32 Cores安装STM32 Boards (STMicroelectronics)。关键参数Upload method选Serial非STLinkCPU Speed选72 MHzVariant选Generic STM32F103C series。ESP8266 NodeMCU管脚映射IDE中Tools→Board→NodeMCU 1.0对应GPIO16D0但实际digitalWrite(D0, HIGH)控制的是GPIO16。完整映射表NodeMCU标号GPIO功能D016无PWM仅中断D15PWMI2C SCLD24PWMI2C SDAD42PWMLED_BUILTINESP32-S3开发需esp32:esp322.0.16但该版本默认禁用USB CDC。在platformio.ini中添加[env:esp32s3] platform espressif323.5.0 board esp32dev board_build.variant esp32s3 upload_port /dev/ttyUSB0 monitor_port /dev/ttyUSB0中文显示使用TFT_eSPI库User_Setup.h中启用ILI9341和SPI字体文件用FreeSans12pt7b.h。5.4 环境健康检查清单每次重装后必做检查项验证方法通过标准Java版本终端执行java -version输出openjdk version 17.0.x串口权限ls -l /dev/ttyUSB0Linux或mode COM3Windows显示dialout组或Access is denied消失工具链完整性IDE中Tools→Board→Boards Manager搜索avrarduino:avr显示Installed库索引更新Sketch→Include Library→Manage Libraries搜索Wire返回结果 0烧录测试打开File→Examples→01.Basics→Blink选择板卡和端口点击上传板载LED以1秒间隔闪烁最后分享一个小技巧我在所有开发机上部署了一个arduino-health-check.sh脚本每天凌晨自动运行邮件发送结果。当avrdude版本降级或dialout组被意外移除时第一时间收到告警。环境稳定才是高效开发

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价