前言:为什么用CLion做开发?

网上看了好多关于适配Clion的教程,包括稚晖君那篇适配STM32CubeMX到Cion的教程也是。总的来说就两个字,好用!及其流畅的编码体验,尤其是自动补全,这是Jet家一贯的优势,用过Jet家的补全相信我你就回不去了。

那vscode不香吗? 香!但是“vscode确实香, 只要你不用它写C/C++”

下面的教程及其简单,为了让大家理解每一步都准备了图,别看教程感觉好长但大部分都是图片

为了保证对于Clion不同版本兼容,所以文章较长,强烈建议看本教程时先看一下目录,再决定看哪一章节

CLion新版设置方式

教程平台介绍(新版):

  • CLion 2022.3.1 并且开启了新版UI
  • ESP-IDF 5.0
  • MinGw 11.20 x64 from Qt6.4.0(Option)

1. 安装ESP-IDF 5.0

下载链接https://dl.espressif.com/dl/esp-idf/ 在线版离线版根据网络情况自行选择,这里个人选择在线版

1.1 应用修复

如果需要应用修复,则点击修复

esp32硬件设计 esp32配置_单片机

1.2 选择路径

为了方便查找,这里将工具和IDF存放一起

esp32硬件设计 esp32配置_单片机_02

esp32硬件设计 esp32配置_CL_03

个人不需要这四个,比较占地方,卸载的时候还不自动删除,强迫症,,

esp32硬件设计 esp32配置_单片机_04

配置好后,后续等待下载安装即可

esp32硬件设计 esp32配置_esp32硬件设计_05

2. 配置CLion

2.1 配置环境变量

修改自动配置文件idf_cmd_init.bat

esp32硬件设计 esp32配置_c++_06

编辑,首行添加

:: set IDF_PATH
set IDF_PATH=D:\ESP-IDF\IDF_5

esp32硬件设计 esp32配置_单片机_07

打开空项目,关闭自动弹出的项目配置指导

esp32硬件设计 esp32配置_CL_08

2.2 配置工具链

打开设置,新建工具链

esp32硬件设计 esp32配置_ide_09

选择刚才编辑的文件

注意,IDF5.0的mingw版本应当大于10.0,这里我Qt有11.20的,所以直接用Qt的

Clion自带的bundled为8.0,如果需要可以点击旁边的Download下载新版本

esp32硬件设计 esp32配置_c++_10

2.3 修改CMake

选择刚才配置好的工具链

esp32硬件设计 esp32配置_c++_11

设置自己的MCU型号,以及上传波特率

esp32硬件设计 esp32配置_单片机_12

点击"OK"自动配置CMake,如果没有自动配置,选择重设CMake即可

esp32硬件设计 esp32配置_CL_13

没有报错即为正常

esp32硬件设计 esp32配置_ide_14

2.4 测试编译上传

设置为flash,连接ESP32S3,烧录测试

esp32硬件设计 esp32配置_c++_15

测试上传正常

esp32硬件设计 esp32配置_单片机_16

3. 配置menuconfig

新建一个Shell Script即可,在Script text 添加如下内容,路径修改为自己的

D:\ESP-IDF\IDF_5\export.ps1; idf.py menuconfig

esp32硬件设计 esp32配置_esp32硬件设计_17

确认好之后运行即可,上下左右键可做菜单切换

esp32硬件设计 esp32配置_CL_18


CLion旧版设置方式

1. ESP-IDF开发环境准备

开发环境准备这里有两种方式:

  1. 直接使用vscode插件ESP-IDF下载安装,然后转到esp-idf的安装目录执行install.ps1即可
  2. 使用官方给的安装工具进行安装,防止篇目过长这里不再赘述

2. 环境变量配置(三选一)

文章中截图有主题不匹配的情况,因为文章部分是之后更新,而且Clion迎来了主题更新,不影响阅读。

2.1 全局环境配置 + CmakeLists.txt内的环境配置

这个的配置已经有人写的非常详细了,这里直接贴出博客,写的非常棒!

ESP32之 ESP-IDF + Clion 开发环境搭建(一)—— Windows版

这里我自己照着这个配置下来的话menucofig和flash是没有办法使用的,所以对其进行了补充和部分修改,,第二种方法就是结合了这里面这篇的方法和自己补充的方法实现flash和"伪"menuconfig.为什么是"伪",往下看慢慢道来

2.2 Clion内部环境变量配置 + 全局变量环境配置(个人推荐)

第一种方法我们提到,我对上面的方法进行了补充和修改,个人感觉修改内容还挺多的,懒得看上面的直接跟着这个来吧,但是要是想要在其他IDE使用ESP-IDF的话一定要看看上面那个博客,写的很棒!

举一反三,其他IDE如果支持直接软件内部配置环境变量的话也可以这么直接干

2.2.1 系统环境变量配置:

这里在系统变量里添加一栏IDF_PATH然后填入你的安装ESP-IDF时候的安装路径。(这里是windows系统的环境变量配置,不是Clion的界面)

esp32硬件设计 esp32配置_c++_19

2.2.2 创建一个工程
  1. 打开Powershell,然后使用cd命令到上图所示IDF_PATH路径下,执行:
.\export.ps1

如果你的环境是Powershell,那么必须执行export.ps1不能执行.bat,否则会有PATH写不进去的情况

出现如下相似语句则表示成功

esp32硬件设计 esp32配置_c++_20

  1. 然后cd到你自己的工程目录(自己随便选),执行idf.py create-project 你的工程名,比如我的就是
idf.py create-project TestenvByTxwh

esp32硬件设计 esp32配置_单片机_21

2.2.3 使用CLion配置你的工程

打开刚才创建的工程,如果弹出这个默认即可。

esp32硬件设计 esp32配置_单片机_22

预料到的报错,提示没有找到python对应路径。

esp32硬件设计 esp32配置_c++_23

到刚才创建工程的PowerShell窗口下执行(一定要在这个窗口,因为只有这个窗口的环境变量被拓展了,因为前面执行了export.ps1

$env:PATH

esp32硬件设计 esp32配置_esp32硬件设计_24

我们把所有的PATH复制下来,然后找到进入CLion的settings,设置Environment,然后把刚才复制的路径写到Path中(在用户环境变量),输入完之后点击确认

esp32硬件设计 esp32配置_ide_25

新建一个叫Path的变量,然后把刚才复制的填进去

esp32硬件设计 esp32配置_ide_26

确认之后再打开,你会发现Clion进行了自动整合。

esp32硬件设计 esp32配置_ide_27

点击应用之后,CLion会自动执行重构CMake, 出现这样的说明就没啥问题了哈

esp32硬件设计 esp32配置_esp32硬件设计_28

让我们点击绿色箭头编译一下,看起来没啥问题

esp32硬件设计 esp32配置_ide_29

头文件引用,补全都没有问题

esp32硬件设计 esp32配置_esp32硬件设计_30

2.2.4 下载配置

直接点击右上角切换Application

esp32硬件设计 esp32配置_esp32硬件设计_31


点击绿色三角按钮执行,弹出下面窗口

esp32硬件设计 esp32配置_CL_32


选择自己的工程,然后应用。运行之后如果存在多个COM口会自动遍历,符合条件则刷写

esp32硬件设计 esp32配置_单片机_33


这里要求我们指定端口和上传波特率打开Clion的环境配置页面,和上面加入PATH那个页面一样,添加相应环境变量即可

esp32硬件设计 esp32配置_ide_34

这次不会提示并且直接连接我设置的COM口了,以后执行建议直接运行flash就好了,flash运行之前可以看到会进行一遍编译

esp32硬件设计 esp32配置_esp32硬件设计_35

2.2.5 menuconfig配置

刚才选择flash界面就有menuConfig选项,但是由于CLion无法重定向的原因,没法执行

esp32硬件设计 esp32配置_单片机_36

所以这里我自己使用了另一种方法来解决这个问题。

选择Edit configuration

esp32硬件设计 esp32配置_单片机_37

然后添加Shell Script,再进行配置
在第四个里面添加如下代码:

.$env:IDF_PATH\export.ps1; idf.py menuconfig

esp32硬件设计 esp32配置_esp32硬件设计_38


esp32硬件设计 esp32配置_单片机_39

这里ESC和CLion快捷键冲突,设置好直接保存或者Q退出即可

删除一些个人不需要的配置

esp32硬件设计 esp32配置_esp32硬件设计_40

2.3 Clion内部完全的环境变量配置

这种方法每次新建一个工程就得进行一次配置,但是同样的修改ESP-IDF本身的文件也最少

这个和[Clion内部环境变量配置 + 全局变量环境配置(个人推荐)](#2.Clion内部环境变量配置 + 全局变量环境配置(个人推荐))没太大区别,无非就是把系统环境IDF_PATH放在CLion里面配置,这样系统变量就不用配置了

esp32硬件设计 esp32配置_esp32硬件设计_41

其他步骤和第二种完全一样,然后就可以开始享受了!