PS:在进行这一步之前,墙裂推荐国内的用户自己安装好 Python 和 Git 两个工具、从其他位置下载 ESP-IDF SDK,因为国内的网速确实太慢了。
乐鑫为windows环境下的开发者准备了便捷的换进配置工具 ESP-IDF Tools Installer。可以从官网,或者我上面的连接下载该工具。
选择你想要使用的 Python 版本,如果选择 Install ,可能需要连接外网,否则速度很慢
添加自己的 ESP-IDF SDK路径,当然也可以选择 download 下载最新的版本。同样是考虑网速问题。
选择一个自己的工具安装路径
安装程序会自动帮你完成依赖环境的配置
在这里我遇到过安装失败,是 Python 相关的问题,相关问题我在下面一章介绍,但是如果你的用户名是英文的,程序是能够正常安装的。
安装成功
安装好的 IDF 可以在开始菜单直接启动,也可以在任意 cmd
界面切换到 esp-idf 文件夹下输入 export.bat
使IDF 的环境变量生效。
安装好的 IDF 界面,在这个界面下你可以像在 Linux 系统下一样的使用 CMake 版本 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
在我的中文用户名的 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')
可能是因为我选择了使用系统内部的 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 问题解决
它的报错如下:
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
去安装了。
安装好工具之后,我们就可以在 cmd 中编译和下载 ESP32 的程序了,常用的指令有
idf.py menuconfig //打开配置选项
在此处我遇到了乱码问题
可以通过在cmd中执行 CHCP 437
设置编码为 MS-DOS 美国英语
来解决,也可以在 export.bat 文件的开头添加这个命令,实现自动切换编码。
在此附上其他编码信息
65001 UTF-8代码页
950 繁体中文
936 简体中文默认的GBK
437 MS-DOS 美国英语
另外,使用 cmd 界面时,可以使用 方向键
和 Tab
进行操作。但是使用 VSCode 和 Windows Terminal 的时候需要使用 +
、 -
、Tab
按键来进行操作。
idf.py build //编译
idf.py -p COM5 flash //下载
你可以在设备管理器中找到你的设备 COM 标识
idf.py -p COM5 monitor //打开监视器
至此,我们就可以在 Window10 上进行 ESP32 的开发啦。不必在搭建 Ubuntu 虚拟机或者Linux子系统了。在 Windows 上愉快的使用 CMake 进行编译,速度还是很快的。
欢迎大家来和我一起交流呀。O(∩_∩)O哈哈~