资源准备

  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。可以从官网,或者我上面的连接下载该工具。

espidf多版本 espidf开发_ESP32


选择你想要使用的 Python 版本,如果选择 Install ,可能需要连接外网,否则速度很慢

espidf多版本 espidf开发_CMake_02

选择你想要使用的 Git 版本,同样推荐使用已安装好的

espidf多版本 espidf开发_Python_03

添加自己的 ESP-IDF SDK路径,当然也可以选择 download 下载最新的版本。同样是考虑网速问题。

espidf多版本 espidf开发_ESP-IDF_04

选择一个自己的工具安装路径

espidf多版本 espidf开发_ESP-IDF_05

默认选项,点击下一步,Install ,

espidf多版本 espidf开发_CMake_06

安装程序会自动帮你完成依赖环境的配置

espidf多版本 espidf开发_Python_07


在这里我遇到过安装失败,是 Python 相关的问题,相关问题我在下面一章介绍,但是如果你的用户名是英文的,程序是能够正常安装的。

espidf多版本 espidf开发_ESP-IDF_08


安装成功

espidf多版本 espidf开发_ESP32_09


安装好的 IDF 可以在开始菜单直接启动,也可以在任意 cmd 界面切换到 esp-idf 文件夹下输入 export.bat 使IDF 的环境变量生效。

espidf多版本 espidf开发_ESP32_10


安装好的 IDF 界面,在这个界面下你可以像在 Linux 系统下一样的使用 CMake 版本 IDF 的全部功能。

espidf多版本 espidf开发_ESP32_11


安装了 VSCode 的同学也可以直接在命令窗中使用 code . 命令直接进入编辑界面,在此界面打开的 VSCode 中已经包含了 IDF 需要的所有环境,可以直接在 terminal 中使用了。

espidf多版本 espidf开发_CMake_12

安装可能遇到的问题

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 文件的开头添加这个命令,实现自动切换编码。

espidf多版本 espidf开发_espidf多版本_13


在此附上其他编码信息

65001 UTF-8代码页
950 繁体中文
936 简体中文默认的GBK
437 MS-DOS 美国英语

另外,使用 cmd 界面时,可以使用 方向键Tab 进行操作。但是使用 VSCode 和 Windows Terminal 的时候需要使用 +-Tab 按键来进行操作。

idf.py build //编译

espidf多版本 espidf开发_ESP-IDF_14


idf.py -p COM5 flash //下载你可以在设备管理器中找到你的设备 COM 标识

espidf多版本 espidf开发_Python_15


idf.py -p COM5 monitor //打开监视器

espidf多版本 espidf开发_ESP-IDF_16

至此,我们就可以在 Window10 上进行 ESP32 的开发啦。不必在搭建 Ubuntu 虚拟机或者Linux子系统了。在 Windows 上愉快的使用 CMake 进行编译,速度还是很快的。

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