一、安装ESP32-IDF库
下载网址:https://dl.espressif.com/dl/esp-idf/
打开上面的网页,选择单击页面中 ESP32-IDF v5.0.2 - Offine Installer,5.0.2是当前最新版本,如果没有ESP32-IDF v5.0.2 - Offine Installer,说明官方有更新最新版本,如果想要安装此教程版本可以把页面翻到最下面,会列出所有历史版本供用户下载。
注意:ESP-IDF库各版本之间API函数各有差异,版本号差别越大,差异越大,如果是新手小白还是尽量遵循你的开发板卖家或你找的源码教程中的版本来。
下载成功后,在安装程序上单击右键选择 <以管理员身份运行>打开程序。
打开安装程序后选择简体中文安装
勾选我同意协议,单击下一步按钮。
如果是第一次安装,会出现如下提示。
安装程序会检查你当前系统有没有打开"长路径支持",因为GNU编译器产生的编译文件会有非常深的目录结构,如果不支持长路径,编译可能出现文件不存在,目录不存在等奇怪的错误。这里单击应用修复按钮,可以修复这个问题。
在弹出的确认对话框中,选择是,开始修复
修复完成,单击下一步
安装程序会提示修复成功;单击下一步。
注意:如果修复不成功,一般情况是安装软件打开时没有使用管理员权限打开,可以手动修改注册表来支持长路径:打开注册表HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled 设置为 1。该操作需要管理员权限。
接下来一步,开始选择安装目录,安装程序默认的安装位置为 C:\Espressif,但这里我是安装在F盘,如果全部源码编译后可能产生几十G的大小占用,我的F盘空间很大,我在F盘创建了两个文件夹,
一个 <ESP32> 文件夹放IDF库及后面学习用到的ADF,MDF等官方库。
一个 <ESP32_File> 文件夹放置所有的源码工程。
注意:强烈建议安装在其它盘符
原因1:有些电脑默认C盘空间较小,ESP-IDF安装后有几个G大小
原因2:使用命令行工具操作配置源码工程需要切换目录,多一步操作,而且源码工程编译会生成大量文件,每个工程都会有一两百MB的占用空间。
下一步,确认安装组件,这里全部打勾,默认完全安装时ESP32 C2是不打勾的,看需要自己选择。然后单击下一步
再次确认安装目录信息,然后单击安装。
开始解压离线安装文件,静静等待它完成
安装完成。三个全部勾选,1、2用于测试环境安装是否成功,3是将IDF工具链加入杀毒工具排除项,以加快编译速度。
单击完成后出现如下两个窗口,一个是PowerShell命令行,一个是传统的cmd命令行窗口。显示如下内容,说明可以进行工程编译了。
二、检查设置环境变量
安装IDF库完成后,虽然使用命令行的方式可以编译工程了,但每次使用命令行着实不方便,这里检查并创建两个环境变量,为把ESP32编译集成到VSCode中做准备。
重要的一步,检查你的系统环境变量,在用户变量中检查是否有 IDF_PATH和IDF_TOOLS_PATH这两个环境变量,如果没有的话,创建一下,注意你自己刚才安装ESP-IDF库的目录。
打开电脑的用户环境变量设置,计算机属性->高级系统设置->环境变量->xx用户环境变量:
IDF_PATH : ESP-IDF库的路径
IDF_TOOLS_PATH : ESP-IDF编译工具链的路径
检查并创建这两个用户变量,像我的变量如下,你们参照刚才安装ESP-IDF库的目录创建,确保目录确实存在
IDF_PATH : F:\ESP32\Espressif\frameworks\esp-idf-v5.0.2
IDF_TOOLS_PATH : F:\ESP32\Espressif
三、Visual Studio Code配置
下载地址:Visual Studio Code - Code Editing. Redefined
Visual Studio Code编辑器在Windows上安装比较简单,直接setup.exe。一路下一步,安装好后首次启动配置插件,插件配置必须联网,从网上下载
设置中文
同时按Ctrl + Shift + X 快捷键
在左侧“扩展”视图文本框中输入“Language Packs”,找到Chinese 中文插件,单击绿色的Install安装按钮,这里我们安装的是中文简体,安装完成右下角弹出一个重启按钮,点击重启,语言自动切换
安装C/C++扩展
同样的方式搜索C/C++,安装C/C++扩展来支持C语言代码高亮
打开ESP32工程
VSCode中打开ESP32的代码工程,可以直接打开代码所在的文件夹即可,文件菜单选择打开文件夹,选择一个源码目录打开
打开后的文件结构
安装Espressif IDF插件
在VSCode扩展插件中搜索 Espressif IDF,单击安装按钮
安装完成
配置Espressif IDF插件
单击VSCode设置齿轮菜单,弹出菜单选择设置
在打开的设置页面右上角单击 <以JSON打开设置> 的一个按钮
将设置以JSON方式打开,上面的是我自己创建的一些设置,下面是Espressif IDF插件根据ESP环境变量自动生成的一些配置,不用更改下面的,看自己情况更改上面的
这里贴出我的完整配置:
{
"editor.insertSpaces": false, // 自动插入空格禁用
"editor.detectIndentation": false, // 启用时根据文件内容进行重写
"editor.renderControlCharacters": true, // 是否显示控制字符:启用
"editor.renderWhitespace": "all", // 显示4个空格是....
"editor.tabSize": 4, // tab设置为4个空格
"editor.fontSize": 18, // 代码字体大小
"editor.fontFamily": "Monaco, 'Courier New', monospace", // 代码字体
"update.mode": "manual", // 设置不自动更新
"cmake.configureOnOpen": true,
"idf.adapterTargetName": "esp32",
"idf.espIdfPathWin": "F:/ESP32/Espressif/frameworks/esp-idf-v5.0.2/",
"idf.pythonBinPathWin": "F:/ESP32/Espressif/python_env/idf5.0_py3.11_env/Scripts/python.exe",
"idf.toolsPathWin": "F:\\ESP32\\Espressif",
"idf.customExtraPaths": "F:\\ESP32\\Espressif\\tools\\xtensa-esp-elf-gdb\\11.2_20220823\\xtensa-esp-elf-gdb\\bin;F:\\ESP32\\Espressif\\tools\\riscv32-esp-elf-gdb\\11.2_20220823\\riscv32-esp-elf-gdb\\bin;F:\\ESP32\\Espressif\\tools\\xtensa-esp32-elf\\esp-2022r1-11.2.0\\xtensa-esp32-elf\\bin;F:\\ESP32\\Espressif\\tools\\xtensa-esp32s2-elf\\esp-2022r1-11.2.0\\xtensa-esp32s2-elf\\bin;F:\\ESP32\\Espressif\\tools\\xtensa-esp32s3-elf\\esp-2022r1-11.2.0\\xtensa-esp32s3-elf\\bin;F:\\ESP32\\Espressif\\tools\\riscv32-esp-elf\\esp-2022r1-11.2.0\\riscv32-esp-elf\\bin;F:\\ESP32\\Espressif\\tools\\esp32ulp-elf\\2.35_20220830\\esp32ulp-elf\\bin;F:\\ESP32\\Espressif\\tools\\cmake\\3.24.0\\bin;F:\\ESP32\\Espressif\\tools\\openocd-esp32\\v0.11.0-esp32-20221026\\openocd-esp32\\bin;F:\\ESP32\\Espressif\\tools\\ninja\\1.10.2;F:\\ESP32\\Espressif\\tools\\idf-exe\\1.0.3;F:\\ESP32\\Espressif\\tools\\ccache\\4.6.2\\ccache-4.6.2-windows-x86_64;F:\\ESP32\\Espressif\\tools\\dfu-util\\0.9\\dfu-util-0.9-win64;F:\\ESP32\\Espressif\\tools\\esp-rom-elfs\\20220823",
"idf.customExtraVars": {
"OPENOCD_SCRIPTS": "F:\\ESP32\\Espressif\\tools\\openocd-esp32\\v0.11.0-esp32-20221026/openocd-esp32/share/openocd/scripts",
"IDF_CCACHE_ENABLE": "1",
"ESP_ROM_ELF_DIR": "F:\\ESP32\\Espressif\\tools\\esp-rom-elfs\\20220823/"
},
"idf.gitPathWin": "F:/ESP32/Espressif/tools/idf-git/2.39.2/cmd/git.exe",
"git.openRepositoryInParentFolders": "never"
}
四、Espressif IDF插件使用
依照上图Espressif IDF插件基本菜单一共12个,常用的只有两三个,依次为
1、选择串口(插头):即连接开发板的下载串口号,VS会列出当前连接电脑的所有串口让你选择,这个会记录,再新打开VSCode不用重新选择,开发过程中尽量不要更换USB线的电脑插口,否则串口号会变。
2、选择目标芯片:对应idf命令idf.py set-target xxxx。即你当前这个工程是要下载到什么芯片上面,如ESP32 S2,S3,C2,C3等等,工程要与芯片相匹配,这个选择是写入当前工程配置的,一般不用更改,工程下配置文件基本已经选择好的。
3、选择当前工程目录(文件夹):也不用修改,一般打开工程时会默认操作都在这个工程目录下
4、工程配置菜单(齿轮):对应idf命令idf.py menuconifg,用来配置当前工程的一些设置,配置项非常多,建议使用到再修改。一般代码工程都是配置好的,且不用修改
5、清除工程(垃圾桶):清除工程编译文件,一般用于压缩拷贝工程文件时用到,清除后工程目录占用空间会占用非常小,KB级,编译后为百MB级,还有一些编译过程中奇奇怪怪的问题也可以先清除编译后再编译
6、编译工程(圆柱体):编译当前工程,只是编译,没有下载功能
7、选择下载模式(五角星):一般都是选择串口UART方式下载
8、下载(闪电):下载编译好的固件到设备芯片上,这里只是下载,没有编译功能,修改代码后要先编译再点这个下载,所做的修改才有效。
9、串口监控(小电视):打开与设备连接的串口,打印设备串口信息
10、编译/下载/监控(一团火):最常用的一个,它将编译下载和打开串口监控做在了一起,点一次全部搞定
11、打开命令行:打开命令行窗口,且会定位在当前项目路径下,可以执行idf的一些命令
12、执行自定义任务:不使用