目录

  • 一、概述
  • 二、开发环境搭建
  • 2.1 获取installer
  • 2.2 运行安装程序
  • 方法一 修改virtualenv版本(未解决)

  • 继续降级到16.7.9
  • 方法二 卸载已安装python(未解决)
  • 方法三 离线安装(解决!!)
  • 三、创建配置工程
  • 四、编译下载程序
  • 五、查看程序运行


一、概述

本文主要记录下使用ESP32的过程。这种环境搭建类笔记,都是在初次接触的时候一遍操作一遍写。所以过程中遇到的问题,也就一并写了进来。

首先是ESP32官方的参考链接:快速入门

esp32开发板引脚图 esp32开发工具_esp32开发板引脚图


可以看到,从环境搭建到API使用,内容是很丰富的。这个官方文档是接下来的主要学习资料。

另外一篇非常好的博客:ESP32开发之路

二、开发环境搭建

ESP32不像以往单片机,直接使用KEIL/IAP集成IDE进行开发。需要单独搭建开发环境,我使用的是windows 10。

2.1 获取installer

进入概述里面给出的快速入门文档,下滑进入windows:

esp32开发板引脚图 esp32开发工具_virtualenv_02


新界面中继续下滑,进入ESP-IDF工具安装器的下载链接:

esp32开发板引脚图 esp32开发工具_ESP32_03


选择需要的下载方式,公司网络还不错,我选择的第一个,在线安装:

esp32开发板引脚图 esp32开发工具_python_04

2.2 运行安装程序

下载完成得到esp-idf-tools-setup-online-2.15.exe,双击进行安装:

esp32开发板引脚图 esp32开发工具_python_05


选择好语言后,点击确定进入下一步:

esp32开发板引脚图 esp32开发工具_搜索_06


继续下一步:

esp32开发板引脚图 esp32开发工具_virtualenv_07


继续下一步:

esp32开发板引脚图 esp32开发工具_ESP32_08


继续下一步:

esp32开发板引脚图 esp32开发工具_ESP32_09


继续下一步:

esp32开发板引脚图 esp32开发工具_python_10


选择要安装的版本以及路径,继续下一步:

esp32开发板引脚图 esp32开发工具_virtualenv_11


选择安装路径,继续下一步:

esp32开发板引脚图 esp32开发工具_搜索_12


点击安装后等待,正常应该一直等待安装完成就可以了。结果我这里报错:

esp32开发板引脚图 esp32开发工具_ESP32_13


确定后会弹出查看安装日志的对话框,

esp32开发板引脚图 esp32开发工具_python_14


选择“是”,查看错误:

esp32开发板引脚图 esp32开发工具_搜索_15


搜索下UnicodeDecodeError: ...这个错误,基本都是在打开文件时加上encoding = ‘utf-8’。这就要修改python源文件,可能会影响电脑的python环境,所以从错误代码搜索下问题,看看能否解决。

方法一 修改virtualenv版本(未解决)

使用的第一个参考链接,是安装virtualenv-20.1.0-py2.py3-none-any_2.whlvirtualenv介绍):

esp32开发板引脚图 esp32开发工具_python_16


发生了错误,那就升级到最新的pip:

esp32开发板引脚图 esp32开发工具_搜索_17


按照完成后,删除掉之前安装生成的.espressif,重新运行esp-idf-tools-setup-online-2.15.exe安装程序。注意选择使用现有的ESP-IDF,避免再次下载浪费时间:

esp32开发板引脚图 esp32开发工具_virtualenv_18


最终仍然失败,此方法不适用。

继续降级到16.7.9

搜索到另一个链接,也是降级virtualenv版本,进入到python目录使用python.exe -m pip install --upgrade virtualenv==16.7.9

esp32开发板引脚图 esp32开发工具_virtualenv_19


仍然无效。

方法二 卸载已安装python(未解决)

本地搜索了下错误log中的__init___.py文件:

esp32开发板引脚图 esp32开发工具_virtualenv_20


在293行有一个load函数:

esp32开发板引脚图 esp32开发工具_搜索_21


但这是电脑之前安装的python3.9,并不是ESP-IDF使用的嵌入式python3.8.7。所以可能是python环境有问题?

删除原本的python3.9,见另一篇:添加链接描述

删除Anaconda3:

esp32开发板引脚图 esp32开发工具_搜索_22


反正就是everything能搜到__init___.py文件的,都删掉了。重新进行安装ESP-IDF,仍然失败,且仍然是:

File "json\__init__.py", line 293, in load
UnicodeDecodeError: 'gbk' codec can't decode byte 0xc5 in position 28: illegal multibyte sequence

真的是张嘴tm…

方法三 离线安装(解决!!)

问了下用过的同事,使用的离线安装包4.4版本。下载获取installer一节中第二个安装程序espressif-ide-setup-espressif-ide-2.4.2-with-esp-idf-4.4.exe,结果最后仍然安装失败–下载失败:

esp32开发板引脚图 esp32开发工具_ESP32_23


可能是网络不稳定,再次尝试,安装成功了:

esp32开发板引脚图 esp32开发工具_ESP32_24


点击完成,弹出命令提示符:

esp32开发板引脚图 esp32开发工具_esp32开发板引脚图_25


桌面也多了三个图标:

esp32开发板引脚图 esp32开发工具_ESP32_26


到这里,应该就是安装成功了。回到Windows 平台工具链的标准设置文档,可以看到:

esp32开发板引脚图 esp32开发工具_python_27


下面开始创建工程,验证开发环境。

三、创建配置工程

到examples目录下拷贝一个工程出来:

esp32开发板引脚图 esp32开发工具_virtualenv_28


切换目录、设置“目标”芯片、配置工程:

cd D:\esp32\workspace\hello_world
idf.py set-target esp32c3
idf.py menuconfig

结果如下:

esp32开发板引脚图 esp32开发工具_virtualenv_29


运行错误,看起来是环境变量有问题。在 ESP-IDF 的 examples 目录直接测试,是OK的:

esp32开发板引脚图 esp32开发工具_virtualenv_30


在看错误的运行信息,发现是目录没有成功切换到D盘的hello_world下面。重新操作:

esp32开发板引脚图 esp32开发工具_virtualenv_31


运行也OK了。设置“目标”芯片后,本地会多出一个build文件夹。接下来是配置工程:

esp32开发板引脚图 esp32开发工具_esp32开发板引脚图_32


弹出了图形化配置工具:

esp32开发板引脚图 esp32开发工具_搜索_33


这里只是了解下环境,先不做修改,按esc键退出。

四、编译下载程序

对程序进行编译:

idf.py build

运行错误。。。看来真的是keil用习惯了,现在只感觉为什么环境都搞得那么复杂:

esp32开发板引脚图 esp32开发工具_搜索_34


搜索了下,这种stray \357 in program错误,通常是程序中出现了中文的标点符号。查看源码C文件,发现已经被笔记本的加密软件处理。这样看可能就是机密导致的,python脚本读取异常无法进行编译。

命令行放弃,到VS Code试试。


2022.6.8补充:加密环境进行配置后正常了,继续完成命令行测试。

重新idf.py build编译:

esp32开发板引脚图 esp32开发工具_esp32开发板引脚图_35


下载程序,首先从设备管理器确认串口号:

esp32开发板引脚图 esp32开发工具_virtualenv_36


所以:

idf.py -p COM2 flash

esp32开发板引脚图 esp32开发工具_esp32开发板引脚图_37

五、查看程序运行

监视串口:

idf.py -p COM2 monitor

可以看到打印信息:

esp32开发板引脚图 esp32开发工具_ESP32_38


直接使用串口助手也可以。下载程序以后就和以往单片机调试没有区别了:

esp32开发板引脚图 esp32开发工具_esp32开发板引脚图_39