开发板购买链接淘宝网 - 淘!我喜欢
1、windows VSCode ESP32开发环境搭建(建议)
2、Windows Visual Studio 2019 ESP32开发环境搭建(不建议)
一、安装Git
安装程序下载地址:Git for Windows
最新版本为 2.33.0.2,安装最新版本即可,如果版本不一致导致后面安装过程有差异可以留下邮箱问我要此版本,其实都是可以用的!~基本上都是一路Next下去
单击页面中的Download按钮,下载安装包。打开下载好的Git-2.33.0.2-64-bit.exe,开始安装,单击Next按钮
选择安装路径,默认C盘就好,后面步骤非常多,全部默认即可。
安装完成后,取消两个勾,单击Finish完成按钮
二、安装python
下载地址:Python Release Python 3.9.2 | Python.org
打开下载好的python-3.9.2-amd64.exe
一定一定要勾选Add Python3.9 to PATH,单击Install Now开始安装,
安装完成,单击Close完成安装
三、安装ESP32编译工具链esp-idf-tools-setup-2.10.exe
下载网址:https://dl.espressif.com/dl/esp-idf/
最新的esp-idf-tools-setup版本为2.10,安装程序分在线安装和离线安装,这里强烈建议使用离线安装方式,因为涉及到在线下载一些国外镜像失败的情况。
单击下载离线版本1.6G左右,文件虽然很大,但后期会省很多事情!!~
双击下载好的esp-idf-tools-setup-offline-2.10.exe。
勾选我同意协议,单击Next按钮下一步
这里要注意!~
安装程序会检查你当前系统有没有打开"长路径支持",因为GNU编译器产生的编译文件会有非常深的目录结构,如果不支持长路径,编译可能出现文件不存在,目录不存在等奇怪的错误。
安装程序如果有如下提示:
* Starting system check ...
* Checking "Long Paths Enabled" in Windows registry [WARN]
* Hint:
Please set registry HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled to 1. The operation requires Administrator privileges. Command:
powershell -Command "&{ Start-Process -FilePath reg 'ADD HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f' -Verb runAs}"
Click 'Apply Fixes' button after finishing System Check.
* Detected antivirus: 鐏粧瀹夊叏杞欢
* Check complete.
大概意思是安装程序检查到在注册表中未启用长路径支持。
解决办法1:(推荐),直接单击Apply Fixes按钮,弹出确认对话框,是否应用命令修复更新你的系统环境并重新检查,单击是,会弹出系统注册表管理员权限打开,单击确认
解决办法2:打开注册表 HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled 设置为 1。该操作需要管理员权限。
解决办法3:使用管理员权限打开Windows PowerShell输入命令:powershell -Command "&{ Start-Process -FilePath reg 'ADD HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f' -Verb runAs}"
经过上面的操作,注册表会打开长路径支持。(下图操作可不用打开)
以上操作后重新打开安装程序,就可以接着往下安装了
安装程序出现下图中圈1的信息,说明检查完成,可以下一步,如果没有此信息,检查上一步操作或重新打开安装程序。
接下来安装idf库,选择最新的V4.3版本,单击Browse选择或与直接输入方式(F:\ESP32\ESP_IDF\esp-idf-v4.3这个目录是我新建的,当然你们也可以自己创建,最好和后期的源码放在同一磁盘下),选择安装位置。单击下一步
接下来选择idf tools的安装目录(F:\ESP32\ESP_IDF_Tools2.9这个目录是我自己建立的)\.espressif是安装程序自动加的,不用管,单击下一步
选择安装组件,这里选择全部安装(Full installation),单击下一步
确认一下安装信息和目录,单击Install按钮,开始安装
开始安装,这个步骤要等很久
还是各种安装
提示安装完成,单击Finish按钮。
完成后会自动打开PowerShell和CMD窗口,分别输入idf.py --version可正常查看到idf版本号即可
至此,idf工具安装完成,现在就可以直接在这两个窗口内编译你的esp32工程了。
举个栗子,使用cd命令进入你的一个工程源码目录
使用idf.py fullclean命令清除这个工程(此步可不要)
使用idf.py build命令来编译这个工程
当然也可以把你的板板插上电脑,看看设备管理器你的开发板串口号,直接使用组合命令,编译+下载+查看串口信息,
idf.py -p COM4 flash monitor 其中COM4 是设备管理器中我的开发板串口号
开始编译
编译成功会自动从串口下载,并启动APP,打印你程序内的调试信息
五、esp-idf-tools常用命令(需用CD命令进入源码工程进行操作)
配置项目
idf.py menuconfig
- 打开项目的文本配置菜单。
- 使用上下键浏览菜单。
- 使用回车键进入子菜单,退出键返回上一级菜单或者退出配置。
- 输入
?
查看帮助界面,按下回车键可以退出帮助界面。 - 使用空格键或者
Y
和N
按键来启用和禁用带复选框“[*]
”的配置项。 - 高亮某个配置项的同时按下
?
键可以显示该选项的帮助文档。 - 输入
/
可以搜索指定的配置项。
一旦配置完成,请按下退出键多次以退出配置界面,当提示是否保存新的的配置时,选择 “Yes”。
编译项目
idf.py build
编译应用程序,引导程序,并根据配置生成分区表。
烧写项目
当构建结束,终端会打印出一条命令行,告知如何使用 esptool.py 工具烧写项目到芯片中。但是你还可以运行下面这条命令来自动烧写:
idf.py -p PORT flash
将其中的 PORT 替换为系统中实际串口的名字(比如 Windows 下的 COM3
,Linux 下的 /dev/ttyUSB0
,或者 MacOS 下的 /dev/cu.usbserial-X
。如果省略 -p
选项,idf.py flash
会尝试使用第一个可用的串口进行烧写。
这会烧写整个项目(包括应用程序,引导程序和分区表)到芯片中,此外还可以使用 idf.py menuconfig
来调整串口烧写相关的配置。
你也不必先运行 idf.py build
,再运行 idf.py flash
,idf.py flash
会根据需要自动重新构建项目。
观察串口输入
idf.py monitor
会调用idf_monitor工具来显示 ESP32的串口输出。idf_monitor
还包含一系列的功能来解析程序崩溃后的输出结果并与设备进行交互。
输入 Ctrl-]
可退出监视器。
想要一次性执行构建,烧写和监视,可以运行如下命令:
idf.py flash monitor
仅编译并烧写应用程序
在第一次烧写过后,你可能只想构建并烧写你的应用程序,不包括引导程序和分区表:
idf.py app
- 仅构建应用程序。idf.py app-flash
- 仅烧写应用程序。
idf.py app-flash
会自动判断是否有源文件发生了改变而后重新构建应用程序。
(在正常的开发中,即使引导程序和分区表没有发生变化,每次都重新烧写它们并不会带来什么危害。)
擦除 Flash
idf.py flash
并不会擦除 Flash 上所有的内容,但是有时候我们需要设备恢复到完全擦除的状态,尤其是分区表发生了变化或者 OTA 应用升级。要擦除整块 Flash 请运行 idf.py erase_flash
。
这条命令还可以和其余命令整合在一起,idf.py -p PORT erase_flash flash
会擦除一切然后重新烧写新的应用程序,引导程序和分区表
六、Visual Studio Code配置
下载地址:Visual Studio Code - Code Editing. Redefined
Visual Studio Code编辑器在Windows上安装比较简单,直接setup.exe。一路下一步,安装好后首次启动配置插件,插件配置必须联网,从网上下载
设置中文
同时按Ctrl + Shift + X 快捷键
在左侧“扩展”视图文本框中输入“Language Packs”,点击你所需要的语言,这里我们安装的是中文简体,安装完成右下角弹出一个重启按钮,点击重启,语言自动切换
安装C/C++扩展
打开工程文件
文件菜单选择打开文件夹,选择一个源码目录打开
七、使用外部cmd命令行编译下载
打开ESP-IDF Command Prompt
默认是进入ESP_IDF框架库的目录中的,使用cd 命令进入代码目录
例:cd F:\ESP32_DevBoard_File\0_hello_bug
如果你的idf库目录不是和源码同目录,还要先切换目录,这也是前面安装环境我建议的,ESP_IDF最好和源码同盘符的原因。
idf.py build或idf.py all来编译当前目录下的工程
idf.py clean清除编译
idf.py menuconfig配置环境
idf.py -p PORT flash下载固件到芯片
idf.py erase_flash擦除整片flash
idf.py -p PORT erase_flash flash 擦除flash并下载
示例:idf.py -p COM9 flash monitor从串口9下载并运行打开口显示设备调试信息
可以直接在命令行窗口内看到设备的调试信息输出
八、集成cmd/powershell命令行到VSCode内部进行编译下载
经过以上操作我们可以编辑工程和下载了,但要用到两个窗口,一个cmd命令行负责编译下载,一个code负责编辑代码。这节我们将cmd或powershell集成到code中。这里注意一下,1.5版本以下的code是支持cmd的,1.5以上只能集成powershell
重要的一步,检查你的系统环境变量,在用户变量中检查是否有 IDF_PATH和IDF_TOOLS_PATH这两个环境变量,如果没有的话,创建一下,注意你自己的目录
打开你的vscode,单击左下角的齿轮按钮,里面选择设置菜单,打开code的设置
打开设置页后,单击右上角以JSON打开按钮
覆盖输入如下内容,根据你自己的code版本来注释掉对应部分,注意代码中你的目录
// vscode 1.5以上PowerShell 注意修改下面配置中的ESP_IDF和ESP_IDF_Tools的路径
{
"idf.showOnboardingOnInit": true,
"idf.espIdfPathWin": "F:/ESP32/ESP_IDF/esp-idf-v4.3/",
"editor.fontSize": 18, // 代码字体大小
"editor.fontFamily": "Monaco, 'Courier New', monospace", // 代码字体
"update.mode": "manual", // 设置不自动更新
"terminal.integrated.defaultProfile.windows": "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe (migrated)",
"terminal.integrated.cwd": "F:/ESP32/ESP_IDF/esp-idf-v4.3/",// 起始目录
"terminal.integrated.profiles.windows": {
"C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe (migrated)": {
"path": "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"args": [
"-ExecutionPolicy",
"Bypass",
"-NoExit",
"-File",
"F:/ESP32/ESP_IDF_Tools2.9/.espressif/Initialize-Idf.ps1",
]
}
},
}
/*
//vscode 1.5以下cmd 注意修改下面配置中的ESP_IDF的路径
{
"terminal.integrated.shell.windows": "C:\\Windows\\system32\\cmd.exe",
"terminal.integrated.shellArgs.windows": [
"/k",
"D:\\ESP32\\esp-idf-v4.2\\export.bat"
],
"idf.showOnboardingOnInit": true,
"idf.espIdfPathWin": "D:\\ESP32\\esp-idf-v4.2",
}
*/
单击文件菜单,选择打开文件夹,打开一个工程目录,再单击菜单终端,选择新终端,在code下方会显示终端并已经运行IDF环境,我code版本是1.6,只能使用powershell,cmd的话会自动切换到工程目录,直接输idf命令即可,powershell终端的话要用cd 命令手动来切换到你的当前源码目录,你可以在code左侧的文件结构空白处单击右键选择复制目录,然后再cd 粘贴到命令行来切换目录