第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
第十步:檢查燒錄結果
按照上一步的提示,硬復位設備。短按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