及ESP32板卡實(shí)操指南)
Arduino IDE 裝起來(lái)本身不難但我見(jiàn)過(guò)太多人卡在第一關(guān)官網(wǎng)打開(kāi)后不知道下載哪一個(gè)裝完之后板子認(rèn)不出來(lái)或者端口怎么都選不對(duì)。尤其是 Windows、macOS、Linux 這三個(gè)系統(tǒng)的安裝方式差別挺大里面藏了一堆小坑網(wǎng)上搜到的教程往往只講其中一個(gè)平臺(tái)而且很多是拿老版 1.8.x 截圖寫(xiě)的和現(xiàn)在的新版界面對(duì)不上。這篇文章我會(huì)把三大平臺(tái)從下載、安裝、驅(qū)動(dòng)、權(quán)限到板卡管理器配置全部走一遍每一步盡量寫(xiě)清楚“為什么要這樣做”而不只是讓你照著一路 Next。無(wú)論你是剛拿到第一塊開(kāi)發(fā)板的新手還是準(zhǔn)備把 Arduino 當(dāng)作 ESP32、ESP8266 開(kāi)發(fā)入口的進(jìn)階玩家這篇都值得存下來(lái)照著做。1. 版本選擇和環(huán)境準(zhǔn)備1.1 先搞清楚自己該裝哪個(gè)版本打開(kāi) Arduino 官網(wǎng)下載頁(yè)面第一眼看到的是兩個(gè)選擇Arduino IDE 2.x 和 Arduino IDE 1.8.x。我現(xiàn)在直接給結(jié)論新用戶一律裝 2.x除非你有特殊原因非用 1.8.x 不可。Arduino IDE 2.x 是官方從 2022 年開(kāi)始力推的新版底層改成了 Electron 架構(gòu)和微軟 VS Code 的技術(shù)棧一樣所以界面響應(yīng)更快自帶代碼自動(dòng)補(bǔ)全、語(yǔ)法高亮更智能、串口監(jiān)視器也是獨(dú)立窗口。1.8.x 是 Java 寫(xiě)的老版雖然占用資源少、啟動(dòng)快但界面老舊沒(méi)有自動(dòng)補(bǔ)全對(duì)新手來(lái)說(shuō)體驗(yàn)差不少。不過(guò)有一類(lèi)用戶要注意如果你用的是老電腦CPU 弱、內(nèi)存只有 4GB 甚至更少那 2.x 啟動(dòng)時(shí)確實(shí)會(huì)覺(jué)得有點(diǎn)吃力。這種情況下可以選擇 1.8.19它是 1.8 系列的最終版本運(yùn)行起來(lái)輕量很多。另外就是公司內(nèi)網(wǎng)、離線環(huán)境裝 IDE1.8.x 也可以下載 zip 版免安裝使用比 2.x 的包好分發(fā)。操作系統(tǒng)方面Windows 版本支持 Win 10 / 11最新版對(duì) Win 7 已經(jīng)不再支持了還在用 Win 7 的話需要去找 1.8.13 左右的舊包。macOS 版本官方提供了一個(gè) Universal 包Intel 和 Apple Silicon 芯片都能用不用費(fèi)心區(qū)分。Linux 則有 Debian/Ubuntu 的 apt 源、AppImage、tar.xz 壓縮包三種方式后面我會(huì)細(xì)說(shuō)。1.2 安裝前的前置準(zhǔn)備在正式動(dòng)手之前有幾個(gè)東西最好提前確認(rèn)第一你的網(wǎng)絡(luò)環(huán)境能不能順暢訪問(wèn) Arduino 官網(wǎng)。Arduino 的服務(wù)器在國(guó)外國(guó)內(nèi)訪問(wèn)時(shí)官網(wǎng)頁(yè)面一般能打開(kāi)但后續(xù)下載開(kāi)發(fā)板索引和庫(kù)的時(shí)候速度可能會(huì)很折磨。做好心理準(zhǔn)備也先別急著開(kāi)什么加速工具后面我會(huì)給你一個(gè)繞過(guò)慢下載的穩(wěn)妥方案。第二確認(rèn)開(kāi)發(fā)板是哪一家的。市面上絕大多數(shù) Arduino 開(kāi)發(fā)板分兩類(lèi)一類(lèi)是官方板比如 Arduino Uno、Arduino Mega它們?cè)?Windows 下基本免驅(qū)插上就能識(shí)別另一類(lèi)是國(guó)產(chǎn)兼容板最常見(jiàn)的是用 CH340 這顆 USB 轉(zhuǎn)串口芯片比如各種 Nano、Pro Micro、ESP32 DevKit 的板子這類(lèi)板子在 Win 10 以上系統(tǒng)基本也能自動(dòng)裝驅(qū)動(dòng)但偶爾會(huì)有簽名問(wèn)題導(dǎo)致識(shí)別失敗需要手動(dòng)處理。第三搞清楚自己要用到的附加開(kāi)發(fā)板平臺(tái)。這句話什么意思呢Arduino IDE 默認(rèn)只帶 Arduino AVR 系列的支持你如果用的是 ESP32、ESP8266、STM32 這些板子需要額外往 IDE 里添加板卡索引這一步后面單獨(dú)講。2. Windows 安裝全流程與 CH340 驅(qū)動(dòng)處理2.1 下載與安裝的細(xì)節(jié)進(jìn)入官網(wǎng)下載頁(yè)后選擇 Windows 版本IDE 2.x 會(huì)提供一個(gè) exe 安裝包文件名類(lèi)似arduino-ide_2.3.x_Windows_64bit.exe。下載好后雙擊安裝這個(gè)步驟基本就是一路 Next但有一個(gè)容易被忽略的選項(xiàng)是否勾選“為所有用戶安裝”。我的建議是如果你這臺(tái)電腦只有自己用直接默認(rèn)安裝到當(dāng)前用戶的 AppData 目錄就行不需要管理員權(quán)限以后更新時(shí)沖突也少。如果是要給公司、實(shí)驗(yàn)室的公共機(jī)器裝那就勾上所有用戶裝到 C:\Program Files\Arduino IDE 這種公共位置。另外無(wú)論哪種方式安裝路徑里不要出現(xiàn)中文和空格以外的特殊字符避免后續(xù)某些第三方工具鏈編譯時(shí)路徑解析出錯(cuò)。安裝完成之后首次啟動(dòng) IDE 2.x 會(huì)自動(dòng)檢查更新和加載各種組件。如果你看到底部狀態(tài)欄一直有轉(zhuǎn)圈那多半是在連網(wǎng)下載東西耐心等一下。如果你完全斷網(wǎng)IDE 也能正常進(jìn)入主界面只是暫緩了啟動(dòng)時(shí)的網(wǎng)絡(luò)請(qǐng)求不影響本地編輯。2.2 CH340 驅(qū)動(dòng)新手最容易卡住的一步Win 10 / Win 11 系統(tǒng)下絕大多數(shù) CH340 板子插上 USB 后系統(tǒng)會(huì)自動(dòng)聯(lián)網(wǎng)安裝驅(qū)動(dòng)在設(shè)備管理器里能看到“USB-SERIAL CH340”出現(xiàn)在端口節(jié)點(diǎn)下面。但如果你遇到了設(shè)備管理器里出現(xiàn)黃色感嘆號(hào)右鍵更新驅(qū)動(dòng)也裝不上或者插上后沒(méi)有任何反應(yīng)就需要手動(dòng)安裝驅(qū)動(dòng)。去 WCH沁恒官網(wǎng)搜索 CH340 驅(qū)動(dòng)下載找一個(gè)支持當(dāng)前系統(tǒng)的驅(qū)動(dòng)包安裝。安裝完成后別急著歡呼把板子拔掉重新插一次再在設(shè)備管理器里刷新看是否變成了正常的 COM 端口。這里有一個(gè)經(jīng)驗(yàn)法則在 Windows 下查看 Arduino 板子有沒(méi)有被識(shí)別別只看設(shè)備管理器里的端口號(hào)還要注意端口號(hào)是多少。Arduino IDE 上傳程序時(shí)默認(rèn)會(huì)選擇端口如果系統(tǒng)里 USB 設(shè)備很多COM 號(hào)是會(huì)變的比如你之前是 COM3換了一個(gè) USB 口插就變成了 COM7。程序一直傳不上去的時(shí)候先檢查選中的端口和當(dāng)前設(shè)備管理器里的端口號(hào)是否一致這是排障第一步。我自己踩過(guò)一個(gè)大坑給某國(guó)產(chǎn) Nano 板子裝驅(qū)動(dòng)時(shí)不小心裝了一個(gè)非常老的 CH340 驅(qū)動(dòng)結(jié)果設(shè)備管理器里一直顯示“設(shè)備無(wú)法啟動(dòng)代碼 10”折騰了一下午發(fā)現(xiàn)是驅(qū)動(dòng)版本和 Win 11 的內(nèi)置驅(qū)動(dòng)沖突。后來(lái)在設(shè)備管理器里右鍵卸載設(shè)備勾選“刪除此設(shè)備的驅(qū)動(dòng)程序軟件”再重裝新驅(qū)動(dòng)解決。所以如果你遇到代碼 10第一反應(yīng)應(yīng)該是卸載舊驅(qū)動(dòng)而不是反復(fù)更新。3. macOS 安裝與權(quán)限處理3.1 dmg 安裝和 Gatekeeper 的繞行方式macOS 上安裝 Arduino IDE 非常簡(jiǎn)單官網(wǎng)下載 dmg 文件后打開(kāi)把 Arduino 圖標(biāo)拖進(jìn) Applications 文件夾就算裝好了。但我敢說(shuō)很多人第一次雙擊打開(kāi)時(shí)會(huì)碰到“無(wú)法打開(kāi) Arduino因?yàn)闊o(wú)法驗(yàn)證開(kāi)發(fā)者”這個(gè)彈窗。原因相信老 Mac 用戶都清楚Gatekeeper 安全機(jī)制默認(rèn)只允許運(yùn)行經(jīng)過(guò) Apple 公證的應(yīng)用而 Arduino IDE 不一定每版都走完公證流程。解決辦法不是跑到系統(tǒng)設(shè)置里去降低安全級(jí)別而是用右鍵打開(kāi)這個(gè)平穩(wěn)做法。在訪達(dá)里找到 Arduino 應(yīng)用圖標(biāo)按住 Control 鍵點(diǎn)它選擇“打開(kāi)”系統(tǒng)這次會(huì)彈出一個(gè)確認(rèn)框里面會(huì)有個(gè)“打開(kāi)”按鈕點(diǎn)它就能跑起來(lái)。如果你的 Mac 設(shè)置得比較特殊也不想每次右鍵可以在系統(tǒng)設(shè)置 - 隱私與安全性 - 安全性里面看到底部出現(xiàn)“仍要打開(kāi)”的選項(xiàng)。這比把“允許任何來(lái)源”整個(gè)開(kāi)關(guān)打開(kāi)要安全得多畢竟我們只是放行一個(gè)軟件而不是放行所有。3.2 驅(qū)動(dòng)與端口權(quán)限macOS 下官方板基本也是免驅(qū)但國(guó)產(chǎn) CH340 板子在 macOS 上不需要裝額外的內(nèi)核驅(qū)動(dòng)系統(tǒng)自帶 AppleUSBFT 的底層支持大多數(shù)情況下插上就能在/dev/cu.usbserial-xxx或/dev/cu.wchusbserialxxx看到對(duì)應(yīng)端口。注意如果你的 Mac 是 Apple Silicon 芯片M1/M2/M3有些老教程會(huì)讓你安裝一個(gè)針對(duì) Intel 芯片的 pkg 驅(qū)動(dòng)包千萬(wàn)別裝裝了反而可能引起內(nèi)核擴(kuò)展沖突導(dǎo)致端口消失。插上板子后打開(kāi) Arduino IDE在“端口”菜單里應(yīng)該有串口設(shè)備列表。如果列表里什么都看不到先查兩件事一是數(shù)據(jù)線是不是只能充電不能傳數(shù)據(jù)市面上這種“充電線”太多了二是打開(kāi)“終端”工具輸入ls /dev/cu.*看系統(tǒng)層面到底有沒(méi)有識(shí)別到設(shè)備。如果終端里能看到cu.usbserialxxxx那說(shuō)明驅(qū)動(dòng)沒(méi)問(wèn)題只是 IDE 暫時(shí)沒(méi)刷新把 IDE 退掉重開(kāi)一次基本就好。還有一個(gè) macOS 特有的權(quán)限坑從 macOS 10.15 Catalina 開(kāi)始系統(tǒng)會(huì)在應(yīng)用首次使用串口時(shí)彈窗詢(xún)問(wèn)是否允許訪問(wèn)可移動(dòng)卷和外部設(shè)備。如果你曾經(jīng)點(diǎn)過(guò)“不允許”之后在 IDE 里就永遠(yuǎn)看不到端口了而且菜單里也不會(huì)主動(dòng)提示。這時(shí)候需要去系統(tǒng)設(shè)置 - 隱私與安全性 - 完全訪問(wèn)外部設(shè)備找到 Arduino 程序并打開(kāi)權(quán)限然后重啟 IDE。4. Linux 安裝方式與端口權(quán)限配置4.1 不要只依賴(lài) apt 源Linux 下裝 Arduino IDE 的門(mén)道比 Windows 和 macOS 都多。很多教程上來(lái)就讓執(zhí)行sudo apt install arduino這在 Ubuntu/Debian 上確實(shí)一鍵搞定但裝出來(lái)的版本往往停留在老舊的 1.8.x 系列界面老不說(shuō)后續(xù)想升級(jí)還得手動(dòng)刪舊裝新一堆依賴(lài)還容易適得其反。所以我的建議是去 Arduino 官網(wǎng)下載 Linux 版本目前提供 AppImage 和 tar.xz 兩種格式。AppImage 是綠色免安裝的方式下載后給它可執(zhí)行權(quán)限chmod x arduino-ide_xxx_AppImage.AppImage然后直接雙擊或./運(yùn)行。非常干凈卸載時(shí)刪掉文件即可不會(huì)污染系統(tǒng)。但 AppImage 有個(gè)毛病在某些精簡(jiǎn)版 Linux 發(fā)行版上可能缺少 FUSE 庫(kù)啟動(dòng)時(shí)會(huì)報(bào)fuse: failed to exec fusermount。這時(shí)候可以先把 AppImage 解壓再運(yùn)行./xxx.AppImage --appimage-extract然后到解壓出的目錄里執(zhí)行./arduino-ide。tar.xz 壓縮包則更通用一些解壓后進(jìn)入arduino-ide目錄直接運(yùn)行里面的可執(zhí)行文件。這種方式適合那些 FUSE 有問(wèn)題、又想保持二進(jìn)制完整性的場(chǎng)景也更方便打包進(jìn)自己的安裝腳本。我自己在 Ubuntu Server 無(wú)桌面環(huán)境測(cè)試構(gòu)建時(shí)就用 tar.xz 方式能減少不少依賴(lài)問(wèn)題。4.2 分配串口權(quán)限的兩個(gè)關(guān)鍵操作Linux 下板子插上了、IDE 里卻看不到端口90% 都是權(quán)限問(wèn)題。默認(rèn)情況下/dev/ttyUSB0、/dev/ttyACM0這些串口設(shè)備歸 dialout 用戶組所有普通用戶沒(méi)有讀寫(xiě)權(quán)限。解決辦法是把當(dāng)前用戶加進(jìn) dialout 組sudo usermod -a -G dialout $USER執(zhí)行完這個(gè)命令后必須注銷(xiāo)重新登錄或者重啟一次組權(quán)限才會(huì)生效。這一步千萬(wàn)別跳過(guò)否則你會(huì)發(fā)現(xiàn)自己明明加了組IDE 里還是看不到設(shè)備。驗(yàn)證是否生效可以在終端里輸入groups看看輸出里有沒(méi)有dialout。對(duì)于 CH340 等 USB 轉(zhuǎn)串口芯片還有一個(gè)值得做的操作配置 udev 規(guī)則。雖然很多現(xiàn)代發(fā)行版默認(rèn)已經(jīng)能識(shí)別 CH340 設(shè)備但如果你的系統(tǒng)里總是出現(xiàn)設(shè)備節(jié)點(diǎn)不出來(lái)、或者每次插拔設(shè)備名變化的問(wèn)題寫(xiě)一條規(guī)則能一勞永逸echo KERNELttyUSB*, MODE0666 GROUPdialout | sudo tee /etc/udev/rules.d/99-arduino.rules sudo udevadm control --reload-rules sudo udevadm trigger這條規(guī)則的意思是把所有 ttyUSB 設(shè)備的權(quán)限設(shè)為 0666歸屬 dialout 組。這樣任何用戶其實(shí)是任何能操作 dialout 組的用戶都能直接訪問(wèn)串口不需要反復(fù) sudo 運(yùn)行 IDE。順帶一提如果你用 WSL尤其是 WSL 2 的時(shí)候串口直通支持已經(jīng)比較好了但偶爾會(huì)出現(xiàn)權(quán)限映射問(wèn)題WSL 里操作串口還是建議把 Windows 側(cè)驅(qū)動(dòng)裝好、以及確認(rèn) WSL 的 usbip 配置沒(méi)有問(wèn)題這又是一個(gè)話題以后專(zhuān)門(mén)寫(xiě)一篇展開(kāi)。5. 板卡管理器配置讓 IDE 支持 ESP32 和 ESP82665.1 添加第三方開(kāi)發(fā)板索引Arduino IDE 默認(rèn)只支持 Arduino 自家的板子比如 Uno、Mega、Nano。但你買(mǎi)到的很多板子尤其是帶 WiFi、藍(lán)牙功能的 ESP32 和 ESP8266并不在默認(rèn)列表里。這時(shí)候需要通過(guò)“附加開(kāi)發(fā)板管理器網(wǎng)址”功能把第三方硬件的索引文件加進(jìn)去。具體操作是打開(kāi) IDE在左菜單欄找到“文件 - 首選項(xiàng)”或者按快捷鍵Ctrl ,Windows/Linux或Cmd ,macOS在“附加開(kāi)發(fā)板管理器網(wǎng)址”欄里粘貼以下兩個(gè)地址多個(gè)地址之間用英文逗號(hào)分隔https://dl.espressif.com/dl/package_esp32_index.json,http://arduino.esp8266.com/stable/package_esp8266com_index.json粘貼好點(diǎn)確定再去左側(cè)工具欄找到“開(kāi)發(fā)板管理器”圖標(biāo)是一個(gè)芯片搜索esp32或esp8266找到 Espressif 出品的對(duì)應(yīng)“ESP32 by Espressif Systems”或“ESP8266 by ESP8266 Community”點(diǎn)安裝。這一步下載量非常大因?yàn)槔锩姘送暾慕徊婢幾g工具鏈幾百 MB 到上 GB 都有可能所以首次安裝耗時(shí)很常見(jiàn)。日本韓國(guó)等地的網(wǎng)絡(luò)環(huán)境下載這個(gè)相對(duì)快中國(guó)大陸的用戶如果速度實(shí)在太慢有幾個(gè)辦法一是選特定版本安裝而不是最新版版本下拉菜單里可以選有些老版本體積更小二是如果公司或?qū)W校有鏡像服務(wù)器可以把 URL 替換成鏡像源但我不在這里具體貼地址大家按自己的網(wǎng)絡(luò)環(huán)境去搜索引擎查最新的鏡像地址即可。裝完之后重新回一下 IDE 頂部的“開(kāi)發(fā)板選擇器”輸入esp32或者esp8266就能看到對(duì)應(yīng)的開(kāi)發(fā)板型號(hào)列表了。比如你用的是 NodeMCU就搜索NodeMCU 1.0用的是 ESP32 DevKit就選ESP32 Dev Module這些型號(hào)選錯(cuò)通常不致命但會(huì)影響默認(rèn)的 Flash 大小和上傳方式盡量選和你硬件一致的。5.2 庫(kù)管理器和第三方庫(kù)的坑開(kāi)發(fā)板配好之后第二個(gè)經(jīng)常出問(wèn)題的位置是“庫(kù)”。Arduino 的庫(kù)類(lèi)似于各種軟件的插件比如用 SSD1306 OLED 屏幕需要 Adafruit SSD1306用 DHT11 溫濕度傳感器需要 DHT sensor library。在左側(cè)工具欄點(diǎn)那個(gè)“庫(kù)管理器”圖標(biāo)一個(gè)放大鏡加方塊搜索庫(kù)名直接安裝即可。但這里有幾個(gè)非常實(shí)用的經(jīng)驗(yàn)。第一很多國(guó)產(chǎn)傳感器的庫(kù)在 Arduino 官方倉(cāng)庫(kù)里可能過(guò)時(shí)比如某些 OLED 庫(kù)在最新版里改了 API舊代碼編譯不過(guò)這時(shí)可以去該芯片廠商的 GitHub 倉(cāng)庫(kù)下載 zip 包然后通過(guò)“項(xiàng)目 - 包含庫(kù) - 添加 .ZIP 庫(kù)”的方式導(dǎo)入第二同名庫(kù)可能因?yàn)椴煌髡邔?dǎo)致沖突搜索結(jié)果里會(huì)顯示維護(hù)者和下載量?jī)?yōu)先選下載量多、更新時(shí)間近的那個(gè)第三庫(kù)安裝后如果提示依賴(lài)缺失在庫(kù)管理器安裝庫(kù)時(shí) IDE 會(huì)自動(dòng)檢測(cè)并讓你一并安裝依賴(lài)這個(gè)彈窗千萬(wàn)別跳過(guò)直接點(diǎn)安裝全部。我之前遇到過(guò)一個(gè)問(wèn)題給 OLED 屏寫(xiě)代碼時(shí)安裝了兩個(gè)不同作者的文化庫(kù)結(jié)果編譯一直報(bào)multiple definition錯(cuò)誤排查了很久才意識(shí)到是兩個(gè)庫(kù)之間的頭文件互相覆蓋。后來(lái)把兩個(gè)庫(kù)全卸掉只裝一個(gè)問(wèn)題立刻解決。所以如果你編譯報(bào)錯(cuò)的內(nèi)容和“重復(fù)定義”有關(guān)先查看近期是不是裝了多個(gè)類(lèi)似功能的庫(kù)。6. 編譯燒錄與常見(jiàn)問(wèn)題排查6.1 經(jīng)典錯(cuò)誤找不到端口、上傳失敗Arduino 開(kāi)發(fā)流程一般是“選板子 - 選端口 - 點(diǎn)上傳”三個(gè)環(huán)節(jié)環(huán)環(huán)相扣。上傳時(shí)報(bào)錯(cuò)基本集中在兩類(lèi)一類(lèi)是avrdude: ser_open(): cant open device /dev/ttyUSB0另一類(lèi)是An error occurred while uploading the sketch。第一類(lèi)在中英文狀態(tài)下都很好認(rèn)意思是打不開(kāi)串口設(shè)備優(yōu)先排查權(quán)限和端口號(hào)。第二類(lèi)信息比較模糊可能是開(kāi)發(fā)板型號(hào)選錯(cuò)、連接線問(wèn)題、或者板子處于異常狀態(tài)。ESP32/ESP8266 還有一個(gè)特有狀況上傳時(shí)需要開(kāi)發(fā)板自動(dòng)進(jìn)入下載模式。大多數(shù)開(kāi)發(fā)板串口芯片支持自動(dòng)下載不需要手動(dòng)按 Boot 鍵但如果你買(mǎi)到的是某些精簡(jiǎn)版模塊或者串口芯片沒(méi)有 DTR/RTS 引腳可能就需要在上傳啟動(dòng)時(shí)按住板載“BOOT”鍵然后按一下“EN”復(fù)位鍵等出現(xiàn)Connecting...提示時(shí)松開(kāi) BOOT 鍵。這也是 ESP32 玩家必須掌握的技能建議提前練幾遍。6.2 常見(jiàn)問(wèn)題排查速查表下面這個(gè)表格是我這幾年做項(xiàng)目、帶新人時(shí)總結(jié)的高頻問(wèn)題速查基本覆蓋了 80% 的 Arduino 環(huán)境問(wèn)題現(xiàn)象可能原因排查方向設(shè)備管理器/系統(tǒng)信息里看不到端口USB 線只能充電、接口接觸不良、驅(qū)動(dòng)未裝換一根數(shù)據(jù)線換 USB 口重裝 CH340 驅(qū)動(dòng)設(shè)備管理器有黃色感嘆號(hào)驅(qū)動(dòng)簽名沖突或安裝不正確右鍵卸載設(shè)備并刪除驅(qū)動(dòng)重啟后重裝IDE 里端口列表是空的權(quán)限不足Linux或應(yīng)用沒(méi)有外部設(shè)備權(quán)限macOSLinux 檢查 dialout 組macOS 檢查隱私設(shè)置板子能看到端口但上傳時(shí)打不開(kāi)端口選擇錯(cuò)、端口號(hào)變化、另一個(gè)程序占用串口重新選擇端口關(guān)閉串口監(jiān)視器編譯時(shí)報(bào)找不到開(kāi)發(fā)板板卡索引沒(méi)裝好、板卡型號(hào)沒(méi)選重裝對(duì)應(yīng)開(kāi)發(fā)板包確認(rèn)開(kāi)發(fā)板選擇器里選了型號(hào)編譯時(shí)報(bào)某個(gè)庫(kù)不存在依賴(lài)庫(kù)沒(méi)裝、庫(kù)版本不兼容去庫(kù)管理器安裝依賴(lài)庫(kù)或換用舊版本庫(kù)上傳時(shí)一直Connecting...板子沒(méi)進(jìn)入下載模式、串口芯片不支持自動(dòng)下載手動(dòng)按鍵進(jìn)入下載模式按 BOOT 再按 ENLinux 下能看到串口但提示權(quán)限不夠用戶不在 dialout 組、udev 規(guī)則缺失執(zhí)行 usermod 加組配置 udev 規(guī)則并重載補(bǔ)充一個(gè)排除軟件問(wèn)題的小技巧如果上傳一直失敗先用一個(gè)最簡(jiǎn)單的 Blink 例程測(cè)試板子能不能亮燈。不亮燈先懷疑硬件能亮燈但上傳失敗再懷疑驅(qū)動(dòng)、端口、板型設(shè)置。這樣能快速把 bug 范圍縮小不至于在環(huán)境上瞎折騰很久。6.3 幾個(gè)容易被忽略的日常操作習(xí)慣最后分享幾個(gè)我自己的使用習(xí)慣都是長(zhǎng)期踩坑換來(lái)的。第一每次打開(kāi)新項(xiàng)目第一步就是保存成文件再寫(xiě)代碼。Arduino IDE 即使是新版本偶爾還是會(huì)崩潰未保存的代碼一切都要重新來(lái)。養(yǎng)成 CtrlS / CmdS 的習(xí)慣不管你寫(xiě)的是不是只有幾行的 Blink。第二串口監(jiān)視器的波特率一定要和代碼里 Serial.begin 的參數(shù)一致。這是新人最常懵的問(wèn)題代碼里寫(xiě)的 9600監(jiān)視器右下角選的是 115200打出亂碼。除了波特率要特別注意換行符選項(xiàng)有些傳感器協(xié)議對(duì)末尾的換行符敏感如果你收到的數(shù)據(jù)奇怪試著切換監(jiān)視器輸出程序的“無(wú)換行”或“換行”模式。第三多板卡切換時(shí)盡量記住板型選擇。IDE 2.x 會(huì)在最近使用的開(kāi)發(fā)板列表里顯示歷史記錄選板很方便。但不要因?yàn)榉奖憔鸵恢庇猛粋€(gè)板型適配所有板子型號(hào)選錯(cuò)了輕則上傳后沒(méi)反應(yīng)重則某些代碼在錯(cuò)誤的 CPU 配置下無(wú)法編譯。Arduino IDE 的安裝和環(huán)境搭建本身沒(méi)有太高深的技術(shù)含量但它就像一個(gè)門(mén)檻跨過(guò)去了后面寫(xiě)代碼、調(diào)硬件都會(huì)順很多。如果看了這篇之后你安裝過(guò)程中還有哪里卡住了別急著懷疑自己的動(dòng)手能力99% 的情況下都是驅(qū)動(dòng)、權(quán)限、端口這三個(gè)環(huán)節(jié)里的小問(wèn)題。建議再回到對(duì)應(yīng)的章節(jié)排查一次尤其注意把本文里面提到的那幾個(gè)“等待時(shí)間”都等夠——有時(shí)候不是你沒(méi)操作對(duì)只是網(wǎng)絡(luò)慢、編譯時(shí)間長(zhǎng)了點(diǎn)而已。