【ESP32 學習】在 window10 上,如何使用 IDF 開發 ESP32 ?

資源準備

  1. 在樂鑫官網找到 Get Started 教程(https://docs.espressif.com/projects/esp-idf/en/latest/get-started/index.html)
  2. 下載 ESP-IDF Tools Installer 準備安裝所需環境。
  3. 國內用戶請自行準備連接外網的方法,因爲部分程序(Python 、 Git)的官方版本在內網下載異常緩慢。或者可以選用自行下載的方式。

環境安裝

PS:在進行這一步之前,牆裂推薦國內的用戶自己安裝好 Python 和 Git 兩個工具、從其他位置下載 ESP-IDF SDK,因爲國內的網速確實太慢了。

樂鑫爲windows環境下的開發者準備了便捷的換進配置工具 ESP-IDF Tools Installer。可以從官網,或者我上面的連接下載該工具。

安裝界面
選擇你想要使用的 Python 版本,如果選擇 Install ,可能需要連接外網,否則速度很慢
選擇 Python 版本

選擇你想要使用的 Git 版本,同樣推薦使用已安裝好的
選擇 Git 版本

添加自己的 ESP-IDF SDK路徑,當然也可以選擇 download 下載最新的版本。同樣是考慮網速問題。
選擇使用的SDK

選擇一個自己的工具安裝路徑

選擇工具安裝路徑

默認選項,點擊下一步,Install ,
繼續安裝

安裝程序會自動幫你完成依賴環境的配置
在這裏插入圖片描述
在這裏我遇到過安裝失敗,是 Python 相關的問題,相關問題我在下面一章介紹,但是如果你的用戶名是英文的,程序是能夠正常安裝的。
環境安裝
安裝成功
安裝成功界面
安裝好的 IDF 可以在開始菜單直接啓動,也可以在任意 cmd 界面切換到 esp-idf 文件夾下輸入 export.bat 使IDF 的環境變量生效。
啓動IDF
安裝好的 IDF 界面,在這個界面下你可以像在 Linux 系統下一樣的使用 CMake 版本 IDF 的全部功能。
IDF界面
安裝了 VSCode 的同學也可以直接在命令窗中使用 code . 命令直接進入編輯界面,在此界面打開的 VSCode 中已經包含了 IDF 需要的所有環境,可以直接在 terminal 中使用了。

在這裏插入圖片描述

安裝可能遇到的問題

PS: 在這裏我介紹一下安裝過程中遇到的 N 個問題,如果沒有遇到的同學可以跳過這部分了。

第一個問題 安裝源的切換

pip 安裝時網速慢的問題,根據網上的人推薦,可以使用豆瓣的軟件安裝源
具體方法如下:
%APPDATA%\ 文件夾下創建 pip 文件夾 在pip文件夾裏創建 pip.ini 文件 寫入以下內容

[global]
timeout =6000
index-url =http://pypi.douban.com/simple/
[install]
use-mirrors =true 
mirrors =http://pypi.douban.com/simple/ 
trusted-host =pypi.douban.com

第二個問題 pip不識別中文路徑

在我的中文用戶名的 windows 系統下,會發生中文路徑不識別的問題。(PS:在英文用戶名下是沒有問題的。我直接安裝成功並能夠使用了。)
解決方法是
我分別在兩個可能需要的路徑下添加了編碼轉換的代碼

路徑1: C:\Python27\Lib\site-packages\sitecustomize.py (該文件可能不存在,需要自己創建)


# set system default encoding: gbk
import sys
 
reload(sys) # 可能不需要
sys.setdefaultencoding('gbk')

路徑2: G:\esp.espressif\python_env\idf4.1_py2.7_env\Lib\site-packages\pip\basecommand.py 文件 import 後面添加了 如下代碼

if sys.getdefaultencoding() != 'gbk':
 reload(sys)
 sys.setdefaultencoding('gbk')

第三個問題 No module named pip

可能是因爲我選擇了使用系統內部的 python ,但是程序卻將 Python 的 PTAH 指向了 .espressif\python_env\idf4.1_py2.7_env 所以儘管我安裝了 pip,但是在這個路徑下的 pip 並沒有安裝,所以我再該路徑下手動安裝了pip
使用的命令如下:

cd .espressif\python_env\idf4.1_py2.7_env
python.exe -m ensurepip 

使用該命令後 No module named pip 問題解決

第四個問題 no such option 報錯

它的報錯如下:

Installing Python packages from G:\esp\esp-idf\requirements.txt

Usage:
  G:\esp\.espressif\python_env\idf4.1_py2.7_env\Scripts\python.exe -m pip install [options] <requirement specifier> [package-index-options] ...
  G:\esp\.espressif\python_env\idf4.1_py2.7_env\Scripts\python.exe -m pip install [options] -r <requirements file> [package-index-options] ...
  G:\esp\.espressif\python_env\idf4.1_py2.7_env\Scripts\python.exe -m pip install [options] [-e] <vcs project url> ...
  G:\esp\.espressif\python_env\idf4.1_py2.7_env\Scripts\python.exe -m pip install [options] [-e] <local project path> ...
  G:\esp\.espressif\python_env\idf4.1_py2.7_env\Scripts\python.exe -m pip install [options] <archive url/path> ...

no such option: --no-warn-script-location
Traceback (most recent call last):
  File "G:\esp\esp-idf\tools\idf_tools.py", line 1344, in <module>
    main(sys.argv[1:])
  File "G:\esp\esp-idf\tools\idf_tools.py", line 1340, in main
    action_func(args)
  File "G:\esp\esp-idf\tools\idf_tools.py", line 1163, in action_install_python_env
    subprocess.check_call(run_args, stdout=sys.stdout, stderr=sys.stderr)
  File "C:\Python27\lib\subprocess.py", line 186, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['G:\\esp\\.espressif\\python_env\\idf4.1_py2.7_env\\Scripts\\python.exe', '-m', 'pip', 'install', '--no-warn-script-location', '-r', 'G:\\esp\\esp-idf\\requirements.txt']' returned non-zero exit status 2

這個問題報錯的部分是 no such option: --no-warn-script-location (沒有這個選項)的問題。解決它可以按照提示,刪除這個選項,直接在 cmd 中敲命令 命令如下 (對應路徑可能需要你自己修改)

G:\\esp\\.espressif\\python_env\\idf4.1_py2.7_env\\Scripts\\python.exe -m pip install -r G:\\esp\\esp-idf\\requirements.txt

使用了這個命令後,所需環境就能正常安裝了(雖然 install.bat 還是會報錯),但是 執行 export.bat 已經可以使用 IDF 了

PPS:熟悉 python 的同學可以直接去 esp-idf\tools\idf_tools.py 文件中修改,去掉 --no-warn-script-location 這個選項(執行的時候會多一些log),就可以直接使用 install.bat 去安裝了。

使用 IDF 開發 ESP32

安裝好工具之後,我們就可以在 cmd 中編譯和下載 ESP32 的程序了,常用的指令有

idf.py menuconfig //打開配置選項
在此處我遇到了亂碼問題
可以通過在cmd中執行 CHCP 437 設置編碼爲 MS-DOS 美國英語 來解決,也可以在 export.bat 文件的開頭添加這個命令,實現自動切換編碼。
menuconfig
在此附上其他編碼信息

65001 UTF-8代碼頁
950 繁體中文
936 簡體中文默認的GBK
437 MS-DOS 美國英語

另外,使用 cmd 界面時,可以使用 方向鍵Tab 進行操作。但是使用 VSCode 和 Windows Terminal 的時候需要使用 +-Tab 按鍵來進行操作。

idf.py build //編譯
build過程
idf.py -p COM5 flash //下載

你可以在設備管理器中找到你的設備 COM 標識
設備管理器
idf.py -p COM5 monitor //打開監視器
啓動ESP32

至此,我們就可以在 Window10 上進行 ESP32 的開發啦。不必在搭建 Ubuntu 虛擬機或者Linux子系統了。在 Windows 上愉快的使用 CMake 進行編譯,速度還是很快的。

歡迎大家來和我一起交流呀。O(∩_∩)O哈哈~

發佈了31 篇原創文章 · 獲贊 45 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章