ESP32-IDF linux開發環境搭建

第0步:選擇手冊

手冊有很多版本,不同版本針對的開發環境有所不同。

https://www.wolai.com/auPiYHni2Rxov7T2iVKDnv#pMyuWskA6vYmaUwvAitwnY

例如,舊版本的開發環境可能是Ubuntu 16.04默認的Python開發工具還是2.x.x版本。而現實情況是pythn2基本已經被淘汰了,新版的手冊對應的也是Python3,所以要選擇新版手冊,但是beta版不穩定,所以選擇一個最新的release。

第一步:安裝準備

按照手冊進行,根據自己的系統選擇合適的命令,這裏使用適合Ubuntu的命令。

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

Tips : 設置python版本

按照下面方式,設置 Python 3 爲 默認 Python 版本,否則後面會出現找不到python模塊的錯誤。

#安裝python3

sudo apt-get install python3 python3-pip python3-setuptools

#設置 Python3 爲默認 Python 版本

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10 && alias pip=pip3

第二步:獲取 ESP-IDF 和 工具模塊

使用GitHub倉庫下載速度過於緩慢,使用國內的Gitee倉庫可以上百倍的縮短獲取倉庫的時間,這裏只按照Gitee倉庫的方式說明。

https://www.wolai.com/auPiYHni2Rxov7T2iVKDnv#fvwBQNqu8Qkj7358cvwJqf

1,獲取 esp-idf

創建 esp 路徑,切換到 esp 路徑,並把ESP-IDF 下載至 ~/esp/esp-idf

按照以下命令進行,

mkdir -p ~/esp

cd ~/esp

git clone -b release/v4.3 --recursive https://gitee.com/EspressifSystems/esp-idf.git

補充說明:

--recursive參數代表克隆包括子模塊在內的所有倉庫。

-b release/v4.3 參數代表克隆 release 分支的 4.3 版本分支。

git clone https://gitee.com/EspressifSystems/esp-idf.git 則可克隆master分支。

https://gitee.com/EspressifSystems/esp-idf.git 參數則代表克隆的倉庫地址,如過想要使用GitHub倉庫則更換爲 https://github.com/espressif/esp-idf.git 即可

下圖可見,使用 GitHub 倉庫,龜速。

提示輸入當前gitee倉庫的登錄用戶名和密碼的時候,直接 ctrl + c 停止跳過即可。

2,獲取工具模塊

關於tools獲取,參考

把ESP-IDF 下載至 ~/esp/esp-gitee-tools

cd ~/esp

git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git

下載後的工具模塊需要更新

submodule-update.sh 腳本支持將待更新 submodules 的工程路徑作爲參數傳入,例如:submodule-update.sh PATH_OF_PROJ

假如 Step 2 中 clone 的 esp-idf 位於 ~/esp/esp-idf 目錄,可使用以下方式來更新:

cd esp-gitee-tools

./submodule-update.sh ~/esp/esp-idf

Tips

  • 注意路徑 esp-gitee-tools 和參數目錄 ~/esp/esp-idf

  • 如果倉庫中的 submodules 沒有增加或減少,在使用過該腳本的工程內需要對倉庫進行更新的情況下,無需一定要再次執行該腳本,可以使用標準的 git 命令,如 git pull && git submodule update --init --recursive 來更新,當然要再次使用該腳本也是沒有問題的。

  • 如果要切換版本,由於不同版本包含的 submodules 可能不同,建議切換版本後再次執行該腳本。

  • 如果執行腳本過程中由於網絡原因異常退出,可以重複執行該腳本。

第三步:設置工具

除了 ESP-IDF 本身,您還需要安裝 ESP-IDF 使用的各種工具,比如編譯器、調試器、Python 包等。

注意使用備選方案

按照備選方案安裝從Espressif服務器下載安裝,提高安裝速度。

要在安裝工具時優先選擇 Espressif 下載服務器,請在運行 install.sh 時使用以下命令:

cd ~/esp/esp-idf

export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"

./install.sh

很幸運的安裝成功咯,可以進入下一步設置環境變量了。

第四步:設置環境變量

安裝的工具尚未添加至 PATH 環境變量,無法通過“命令窗口”使用這些工具。因此,必須設置一些環境變量,這可以通過 ESP-IDF 提供的另一個腳本完成。

在需要運行 ESP-IDF 的終端窗口運行以下命令:

. $HOME/esp/esp-idf/export.sh

注意,命令開始的 “.” 與路徑之間應有一個空格!

運行過後,提示已經設置成功,可以編譯工程了。

第五步:開始創建工程

設置環境變量成功後,可以開始準備開發 ESP32 應用程序了。

esp-idf 中 examples 目錄下的 get-started/hello_world 爲例。

將 get-started/hello_world 工程複製到本地的 ~/esp 目錄下。也可以不復製出來,直接編譯示例,但是不推薦,直接修改或編譯會污染參考文件,爲後續檢查問題帶來麻煩。

cd ~/esp

cp -r $IDF_PATH/examples/get-started/hello_world .

第六步:連接設備

將 ESP32 開發板連接到 PC,並查看開發板使用的串口。

通常,串口在不同操作系統下顯示的名稱有所不同:

  • Windows 操作系統: COM1 等

  • Linux 操作系統: 以 /dev/tty 開始

  • macOS 操作系統: 以 /dev/cu. 開始

有關如何查看串口名稱的詳細信息,請見 與 ESP32 創建串口連接

Tips

請記住串口名,您會在下面的步驟中用到。

選擇連接到虛擬機

成功連接到 linux 虛擬機

使用 ls /dev/tty* 命令查看端口,因爲這裏只連接到虛擬機一個USB設備,所以最後一個 ttyUSB0 就是我們設備的端口

**Linux 添加用戶到 **dialout

需要把當前用戶添加到 dialout 用戶組,用於通過 USB 對串口進行讀寫操作。可以通過以下命令,將用戶添加到 dialout 組,從而獲許讀寫權限:

sudo usermod -a -G dialout $USER

請重新登錄,確保串口讀寫權限生效。

用以下命令查看當前用戶的所屬組

groups $USER

第七步:配置

請進入 第五步:開始創建工程 中提到的 hello_world 目錄,並運行工程配置工具 menuconfig

cd ~/esp/hello_world

idf.py set-target esp32

idf.py menuconfig

運行 idf.py set-target esp32 成功後,結果如下:

運行 idf.py menuconfig 成功後,結果如下:

可以通過配置 Serial flasher config - - - > 調試時(即燒錄完成後芯片對外通信的)的串口波特率,下圖中默認波特率是115200 bps。

第八步:編譯工程

請在工程目錄下使用以下命令,編譯燒錄工程:

idf.py build

運行以上命令可以編譯應用程序和所有 ESP-IDF 組件,接着生成 bootloader、分區表和應用程序二進制文件。如果一切正常,編譯完成後將生成 .bin 文件。

運行成功結果如下:

~/esp/hello_world 目錄下有生成的 .bin 文件。

第九步:燒錄到設備

使用以下命令,將剛剛生成的二進制文件 (bootloader.bin, partition-table.bin 和 hello-world.bin) 燒錄至您的 ESP32 開發板:

sudo chmod 777 PORT

idf.py -p PORT flash

請將 PORT 替換爲 ESP32 開發板的串口名稱,具體可見  第六步:連接設備。我這裏是 /dev/ttyUSB0 因此需要用如下指令:

sudo chmod 777 /dev/ttyUSB0

idf.py -p /dev/ttyUSB0 flash

運行命令後,成功結果如下:

Tips

  • 添加 flash 選項將自動編譯並燒錄工程,因此無需再運行 idf.py build

  • 更多有關 idf.py 參數的詳情,請見 idf.py

第十步:檢查燒錄結果

按照上一步的提示,硬復位設備。短按boot 按鍵

1,方式一,使用linux監聽結果

使用 idf.py -p PORT monitor 命令,監視 “hello_world” 工程的運行情況。注意,不要忘記將 PORT 替換爲相應的端口名稱,我們這裏是 /dev/ttyUSB0,因此運行下面命令。

idf.py -p /dev/ttyUSB0 monitor

運行成功結果如下:

如圖所示,監聽到端口收到 hellow world!數據

使用 ctrl + ] 組合鍵,停止監聽端口數據。

2,方式二,使用Win串口調試助手監聽結果

點擊 虛擬機 - 可移動設備 - 對應的移動設備(這裏是SiliconCP2102xxx) - 斷開連接(連接主機) ,釋放設備的端口給windows。

打開串口調試助手。選擇對應的 串口號 ,配置對應的波特率,這裏是 115200 然後點擊打開串口,即可接受到 相應的串口數據了。

恭喜,完成了ESP32開發環境的快速搭建了。

【參考】

https://docs.espressif.com/projects/esp-idf/zh_CN/release-v4.3/esp32/get-started/index.html

https://gitee.com/EspressifSystems/esp-idf

https://gitee.com/EspressifSystems/esp-gitee-tools/blob/master/docs/README-submodule-update.md

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章