一、开发环境参考乐鑫开发文档
ESP-IDF编程指南——快速入门 stable(4.4)版本
我使用的开发板为果云的ESP32
二、安装准备(Linux、Ubuntu我用的是18.04)
(先安装好虚拟机、Ubuntu和Git,然后可以进行如下操作)
三、开始环境的配置
1、编译 ESP-IDF 需要以下软件包
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
2、ESP-IDF需要python3的支持,如果不是python3.7以上需要更新或者重装。
方法可以参考:Linux Ubuntu系统升级修改python至Python3.9版本,更新pip为pip3_qingeratech的博客-CSDN博客
$python --version
Python 3.9.0
3、 下载ESP-IDF,先新建一个esp目录(这是可以命名自己喜欢的名字),再clone。
mkdir -p ~/esp
cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git
注意:github比较容易失败,如果失败需要多试几次。
esp-idf的组件没有下载完全可以使用以下命令重新下载:
git submodule update --init --recursive
好了之后检查一下idf.py,出现idf.py:未找到命令
解决:添加环境变量
vim ~/.bashrc
export PATH=~/ESP32/esp-idf/tools:$PATH
source ~/.bashrc
四、设置工具
1、除了 ESP-IDF 本身,您还需要为支持 ESP32 的项目安装 ESP-IDF 使用的各种工具,比如编译器、调试器、Python 包等。
这是为esp32芯片同时安装工具:
cd ~/esp/esp-idf
./install.sh esp32
注:通过一次性指定多个目标,可为多个目标芯片同时安装工具,如运行 ./install.sh esp32,esp32c3,esp32s3。 通过运行 ./install.sh 或 ./install.sh all 可一次性为所有支持的目标芯片安装工具。
我是直接./install.sh all了。
如果你看到这就说明成功了:
五、配置环境变量
1、
alias get_idf='. $HOME/esp/esp-idf/export.sh'
配置好再:source ~/.bashrc一下,或者重启终端使得配置生效。
然后就可以用get_idf配置了。(以上命令就是用get_idf替代后面的一串)
2、终端打开
$vim ~/.bashrc
添加一行 ,保存退出,就可以用IDF_PATH替代后面的路径了,接下去会用到,esp-idf里面也要用的。
export IDF_PATH=~/esp/esp-idf
六、创建工程,开始编译下载。
1、复制工程,从 esp-idf 中 examples 目录下的 get-started/hello_world 工程开始。
将 get-started/hello_world 工程复制至本地的 ~/esp 目录下:
cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world .
2、连接设备查看端口
查看 ESP32 开发板(或外部转串口适配器)的串口设备名称,将以下命令运行两次。首先,断开开发板或适配器,首次运行以下命令;然后,连接开发板或适配器,再次运行以下命令。其中,第二次运行命令后出现的端口即是 ESP32 对应的串口:
我的就是/dev/ttyUSB0,这需要记一下,下面下载和调试会用到。
3、配置
开始创建工程中提到的 hello_world 目录,并运行工程配置工具 menuconfig
cd ~/esp/hello_world
idf.py set-target esp32
idf.py menuconfig
哎呦我去:终于报错了,难道是一路顺风的人生不太完美?还是得风雨后才能见彩虹。
报错如下:
第一次我给忽略了中间的错误提示,直接看了cmake failed with exit code 1。搜了一下,竟然还有人这错误。但是不适用我的。
最终定位到:
打开文件夹一看竟然空的,不晓得什么原因。管他什么原因呢。直接下载就是了,既然git不了。
再次执行:成功
=================分割一下,只有成功了才会有下面的界面================
打开一个新项目后,应首先设置“目标”芯片 idf.py set-target esp32。注意,此操作将清除并初始化项目之前的编译和配置(如有)。 也可以直接将“目标”配置为环境变量(此时可跳过该步骤)
如果之前的步骤都正确,则会显示下面的菜单:
hello_world 示例项目会以默认配置运行,因此可以跳过使用 menuconfig 进行项目配置这一步骤。
4、编译工程,小激动的时刻到了。
使用以下命令,编译烧录工程:
idf.py build
运行以上命令可以编译应用程序和所有 ESP-IDF 组件,接着生成引导加载程序、分区表和应用程序二进制文件。
看到以下界面就基本成功了:
编译好之后会提示接下去的操作:
方式一、运行以下命令,这PORT就是上面记下的端口号,波特率默认460800。
idf.py -p (PORT) [-b BAUD] flash
方式二、用提示生成的bin文件用ESPFlashDownloadTool_v3.6.3下到对应的地址即可。
我为了方便,使用方式一:
下载完成:
串口查看输出:
$idf.py -p (PORT) monitor
esp32会自动重启。输出如下:
总之:alias get_idf='. $HOME/esp/esp-idf/export.sh'这个需要在esp-idf目录下执行,否则在工程下直接编译会提示:
至此,已搭建好ESP32的软件开发环境,完成入门的学习,我也是刚入门搭建,如有不妥指出还望指正,希望对刚入门的小伙伴有帮助。