使用Clion编写ESP-IDF程序的环境配置

596 阅读3分钟

前言

用VSCode写c/c++十分不顺畅,再配合esp的插件,还有bug,体验不是很好。但VSCode安装ESP-IDF环境还是比较方便。这里我使用的开发板是合宙的ESP32C3核心板,带串口的那个。

使用VSCode安装环境

这个不说了,搜索安装插件,点击一键下载安装环境,保证VSCode下能编译能烧写就可以。

安装Clion

IDEA官网下载就行

在Clion中配置blink工程

以blink闪灯工程为例,把esp-idf/examples/get-started/blink自带的点灯实例工程复制出一份,然后再clion打开这个文件夹,我这里叫做blink_test.

a. 导入之后会出来下面的向导窗口,需要修改下图中Build dictory和Environment两项。 1.png

b. 其中Build dictory的文件夹名字改为build,目的是和命令行编译还有VSCode插件编译保持一致的构建文件夹;Environment环境变量点击输入框后面的列表按钮。

c. 点开后需要再上面的用户环境变量框里添加IDF_PATH和IDF_TARGET,在下面的已有环境变量里,将PATH变量替换成ESP-IDF/export.sh加载后的PATH,然后点击确定。 2.png

这里说明下,IDF_PATH是必须要配置的,因为项目根目录的CMakeLists.txt文件会使用这个环境变量加载ESP-IDF里的构建文件。

IDF_TARGET不一定非要配置,待会用Shell Script执行下set-target也是可以的,但待会点完向导窗口的ok后,Clion会自动load下项目的cmake文件,发现我们没有配置项目的芯片型号,就会使用默认的esp32芯片,这个信息会在cmake输出的log里找到。

这个向导窗口对应Preferences → Build,Execution... → CMake子项,错过了可以在这里继续配置。这个环境变量只针对这个项目,换个项目就没有了。

d. 向导窗口关闭后,cmake会reload整个工程,最后没有报错即可 3.png

e. reload完成后,项目构建选项框会出现非常多的可构建项,这是Clion自己分析出来的项,这里面的blink.elf、flash之类的项目都不怎么好用,这里建议全部删了,自己配置Shell script,详情见下一节。 4.png

配置set-target、menuconfig、build、flash

每个Shell Script环境变量中PATH需要配置成ESP-IDF/export.sh加载后的PATH,然后分别配置Script text 5.png 6.png

下面是四条命令,我的开发板芯片是esp32c3,串口设备是/dev/cu.wchusbserial544C00096701

配置好一个然后点左上角的复制,环境变量和命令都会复制下来,改下Script text和Name就可以用了

idf.py set-target esp32c3
idf.py menuconfig
idf.py build
idf.py -p /dev/cu.wchusbserial544C00096701 flash

执行build

执行build,如果没有任何错误的话,写代码智能联想、自动补全之类的功能就都没有问题了。 7.png

flash、menuconfig

8.png 9.png

总结

Clion官网的教程里自带了ESP-INF项目的配置教程,但是用了他们自己分析的CMake构建项,那个编译项目代码还行,烧写程序会默认使用115200波特率,然而idf.py -p PORT flash使用的460800波特率,明显后者烧写要快一些;Clion自己分析的menuconfig项目在对应的窗口完全不可操作,没有办法使用。