通过CLION配置了V445和V503版本的IDF。通过将环境变量添加在BAT文件中,解决了安装两个版本的IDF冲突的问题。CLION配置IDF效果要比VSCODE好,vscode代码补全太慢,功能也没有clion强大,因此使用clion是更好的IDF编译器。
进入以下网址,下载ESP32 IDF框架
https://dl.espressif.cn/dl/esp-idf/?idf=4.4
这里有多个版本,一般我们常用的是V4.4的版本,因此我们可以安装V4.4.5和最新版,两种。
在C盘根目录下,创建一个文件夹,路径为:C:\espressif\V445
这里的v445标志着不同的版本,我们电脑上可以同时安装多个所需的版本。
接着,打开下载好的idf,选择安装路径如下:
一路点击安装即可:
安装好后的文件夹内容如下:目前的idf已经把frameworks和tools整合到同一个文件夹内了,更方便用户安装。
打开桌面新增加的CMD图标,
输入idf.py
,出现以下内容,证明安装完成:
已经安装了CLION的同学,可以直接跳过这一步骤。
在以下链接下载并安装clion:https://www.jetbrains.com/clion/download/#section=windows
按照以下步骤讲clion汉化:
接着,打开IDF安装路径下的\Espressif\frameworks\esp-idf-v4.4.5\examples\get-started\hello_world
将该文件夹内的内容复制到桌面新建的一个TEST1文件夹,用来创建一个新的ESP32工程项目。
如下:并右键,用CLION打开。
选择第一个,并信任:
接着,我们添加ESP32的工具链,
右上角,打开设置:
找到工具链,并新建一个MINGW工具链
名称命名为ESP32V445,选择添加环境->来自文件,如下:
在IDF的安装根目录下,新建一个IDFV445.bat的文件,里面内容如下:如果没有idf_cmd_init.bat这个文件的,就去掉下面中的第三行
@call C:\espressif\V445\Espressif\python_env\idf4.4_py3.11_env\Scripts\activate.bat
@call C:\espressif\V445\Espressif\frameworks\esp-idf-v4.4.5\export.bat
@call C:\espressif\V445\Espressif\idf_cmd_init.bat
如下图:
内容里面的路径根据自己的安装路径来。新版本的IDF有时安装之后,目录下没有activate.bat文件,可以自己建一个该文件,内容如下:把其中的set "VIRTUAL_ENV=C:\espressif\V445\Espressif\python_env\idf4.4_py3.11_env"
。
路径改为自己的实际路径。
@echo off
set "VIRTUAL_ENV=C:\espressif\V445\Espressif\python_env\idf4.4_py3.11_env"
if defined _OLD_VIRTUAL_PROMPT (
set "PROMPT=%_OLD_VIRTUAL_PROMPT%"
) else (
if not defined PROMPT (
set "PROMPT=$P$G"
)
if not defined VIRTUAL_ENV_DISABLE_PROMPT (
set "_OLD_VIRTUAL_PROMPT=%PROMPT%"
)
)
if not defined VIRTUAL_ENV_DISABLE_PROMPT (
set "ENV_PROMPT="
if NOT DEFINED ENV_PROMPT (
for %%d in ("%VIRTUAL_ENV%") do set "ENV_PROMPT=(%%~nxd) "
)
)
set "PROMPT=%ENV_PROMPT%%PROMPT%"
)
REM Don't use () to avoid problems with them in %PATH%
if defined _OLD_VIRTUAL_PYTHONHOME goto ENDIFVHOME
set "_OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME%"
:ENDIFVHOME
set PYTHONHOME=
REM if defined _OLD_VIRTUAL_PATH (
if not defined _OLD_VIRTUAL_PATH goto ENDIFVPATH1
set "PATH=%_OLD_VIRTUAL_PATH%"
:ENDIFVPATH1
REM ) else (
if defined _OLD_VIRTUAL_PATH goto ENDIFVPATH2
set "_OLD_VIRTUAL_PATH=%PATH%"
:ENDIFVPATH2
set "PATH=%VIRTUAL_ENV%\Scripts;%PATH%"
我们看电脑的环境变量,发现IDF安装程序自动给我们设置了一个环境变量,如下:
如果我们要安装多个不同版本的IDF,我们就需要把这个环境变量删掉,将其添加在我们新建的IDFV445.bat里面。最终IDFV445.bat里面内容如下:
set IDF_TOOLS_PATH=C:\espressif\V445\Espressif
@call C:\espressif\V445\Espressif\python_env\idf4.4_py3.11_env\Scripts\activate.bat
@call C:\espressif\V445\Espressif\frameworks\esp-idf-v4.4.5\export.bat
@call C:\espressif\V445\Espressif\idf_cmd_init.bat
最后在clion里面,文件选择idf安装路径下我们新建的IDFV445.bat文件,如下:
配置好工具链之后,我们点击右边状态栏的cmake,选择到我们的ESP32V445工具链:如下配置
到这里,我们就可以进行编译了。首先回到工程,右键重新加载CMAKE。
待加载完成之后,在右上角选择编译:
最后编译成功后,结果如下:
多个版本的IDF难点是在环境变量的冲突,我们上面通过将环境变量删掉,添加在bat文件里,即可添加不同版本的IDF。
按与上面相同的步骤,我们添加IDF V503版本如下:
编译结果如下: