VS Code 與 ESP32 官方SDK配置

開發基於 ESP XXX 微控制器應用,最簡單的環境搭建方案是像 MicroPython、CircuitPython、NanoFramework 等,下載固件,直接開刷;或者基於 Arduino 的開發組件,安裝起來都容易。不過,這些框架是經過封裝的,就目前而言,它們的功能還不完善,功能上肯定沒有樂鑫官方的 SDK 完整;當然了,也不是說這些框架不能用,只要能滿足你的需求就可以用。

樂鑫官方的 SDK 支持 Eclipse 、VS Code 插件方式使用 IDE。對於咱們一路喜歡 VS 的夥伴來說,當然是用 VS Code 寫代碼舒服了。本來嘛,在VS Code 中,只要安裝好 ESP – IDF 插件,然後運行 ESP-IDF: 配置 ESP-IDF 插件 就會自動下載 SDK 和工具。然而由於某些你懂的不可抗因素,這個方案是很難安裝成功的。SDK 部分多折騰幾次都能下載,但後面那十幾個工具就沒那麼好運氣了,老是失敗。

經過老周的各種嘗試,只有使用離線安裝這一招最靠譜。打開 //dl.espressif.com/dl/esp-idf/?idf=4.4

Windows 上還是很好弄的(Linux上可以手動下載.tar.gx,然後解壓),上圖中,點擊頁面中的 Offline installer,下載離線安裝包,大概 1.5 G,對於現在的網速來說,不算大。

下載之後,直接運行。

下一步。

這裡它會檢查你的系統環境適不適合安裝,如果沒有問題,Next 安鈕將可用。如果有問題,Apply Fixes 按鈕可用,點一下讓它自動修復問題。其實這裡一般不會有大問題,可能會存在的就是文件名字符數據的限制,點擊 Apply Fixes 按鈕即可。然後點 Next。

版本當然選新的,安裝目錄這裡最好改一下,這貨很不懂事,居然默認安裝到桌面上。

 

上一步選的目錄是放 SDK 的,這一步選的是放 SDK 工具的目錄,自己選一個吧,最好不要帶空格,出錯的概率達到 89.965%;也最好不要包含漢字,出錯率達 92.333%。

 

這個地方基本上可以全部清空,如果你要用 Eclipse ,就選上吧。

 

這裡讓你核對一下你前面所選的參數是否正確,不符合你的要求的話,就返回去重來。

接着一路下一步,然後坐和等待。

 

最後這裡,勾上這個選項,讓殺毒軟件跳過對編譯時的文件掃描。

 

Python 是內置的,這個沒辦法,如果你安裝了多套工具,比如 Thoony、Arduino IDE等,都會內置 Python,所以會多次重複安裝。Python 這貨也是個頭疼事,如果硬盤空間不緊張,就隨它去吧,因為這廝在版本兼容問題上也特嚴重,不同程序內置 Python 可能會減少許多問題。

然後幹嗎呢?對,環境變量,打開【設置】【系統】【關於】。

 

 點擊「高級系統設置」。

然後在打開的對話框中點擊「環境變量」。

 

 

至於說配置用戶級的環境變量還是機器級的環境變量,那隨你便,如果電腦是你一個人用的,那無所謂。如果是和「閨蜜」共享一台電腦,最好配置為用戶級別的,免得「閨蜜」不小心刺探到重要軍情。哈哈,這情節差點變成瓊瑤劇了。

環境變量名為 IDF_PATH,值是SDK的所在路徑,就是你剛剛安裝時選的路徑。例如,C:\\Users\\八格牙路\\esp\\esp-idf,注意要指向 esp-idf,因為文件是在這個文件夾下面的,指向它才能找到文件。IDF_TOOLS_PATH 是剛才安裝程序自動設置了的。

 

最後,打開VS Code,安裝 Espressif IDF、C/C++、CMake 等插件。其實,只要安裝 Espressif IDF 就行,其他的組件會自動安裝。

按【F1】,找到命令「配置ESP IDF擴展」,拚命點它就是了,讓它執行。

 

 

這貨能識別出我們剛剛安裝的SDK和工具集,選擇第三項,使用已有的配置。

 

 

打開【設置】窗口,找到【擴展】【ESP-IDF】,在右面頁面中往下翻,找到配置 Python 解析器的路徑選項,設置成我們剛剛安裝好的內置的Python二進制文件。

 

 帶有 「Win」 的表示 Windows 平台專用,如果不這樣配置,那麼那個內置的 Python 就沒有用處了。老周這機器上默認裝的是 Python 3.9 的,實話告訴你,不兼容的,會報錯。所以這個路徑必須改成內置的——剛剛安裝時選的 xxxxx\\.espressif 目錄下的。如果你的機器裝的 Py 版本和內置的版本相同,應該能用的,不能用了再改。

還有一處,咱們在把編譯好的 .bin 刷到 ESP32 板子上時,一般咱們買的板子是 Micro-USB 的,所以,燒寫模式是 UART。於是,把 Flash Type 改一下。這個後面你在燒寫是可以改的,不過現在提前改好也省了些功夫。

 

 

完工,為了使用一些環境變量能生效,可以重啟一下 VS Code,要是環境變量是配置在機器級別的,估計連電腦也要重啟。

現在,咱們試試能不能用。

1、啟動VSC,打開一個目錄作為工作區,這個可以隨意發揮。

2、在VS Code中按【F1】,選擇「從擴展模板創建項目」。

 

 

3、選擇 Use current folder,即使用你打開的工作目錄。

 

 

4、在選擇項目模板時,選最後一個,template-app,這TM很不友好,居然這樣創建項目。

 

 

5、這貨真是的,還會打開一個新的 VS Code 窗口來創建項目。然後讓你選編譯器,反正下面列出的幾個都不是,就選第一項好了 —— Scan Kits。

 

 

6、打開 main / main.c 文件,把代碼中 app_main 函數中,後半部分,也就是那個 for 循環倒數 10 秒重啟開發板那一段刪掉,不然燒上去後板子老是重啟,不好玩。

#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_spi_flash.h"


void app_main(void)
{
    printf("Hello world!\n");

    /* Print chip information */
    esp_chip_info_t chip_info;
    esp_chip_info(&chip_info);
    printf("This is ESP32 chip with %d CPU cores, WiFi%s%s, ",
            chip_info.cores,
            (chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
            (chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : "");

    printf("silicon revision %d, ", chip_info.revision);

    printf("%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024),
            (chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
}

app_main 類似於 main 入口點,經過封裝,就像以前寫 Windows 程序那樣,有個 WinMain。

 

7、把 ESP32 開發板連上電腦,按【F1】,選擇命令「選擇要使用的燒錄端口」,然後根據你電腦識別的結果選。

 

 

8、點擊底部工具欄中的「Build, Flash and Monitor」,這個按鈕可神了,編譯、燒錄、打開串口監視器,三個任務自動完成。

 

 

9、然後又是坐和等待,C 語言你懂的,編譯較慢。

 

 

 

 

注意觀察,如果看到下面這樣的輸出,說明程序成功運行了。

 

 

好了,大功告成,ESP 32 + VS Code 的開發環境就搭建好了。