CLion入门2.0(优雅进行STM32和ESP32开发)(船新版本)

0.前言
先偷懒抄一段自己的前言:
在正点原子和学校教学中都是教我们使用Keil进行代码编写,但是估计用过Keil的用户都会觉得这个软件的界面实在是太老了,看上去实在不是特别的舒服。之前学python接触了PyCharm这款编译器,发现JetBrains家编译器很全,也包括C的编译器CLion。搜一下发现还真有大佬将CLion配置用于STM32开发,因此就学着配了一下。
对了,假如你和笔者一样是学生,可以通过学信网的验证报告申请免费的JetBrains全家桶。
笔者的CLion和PyCharm就是白嫖来的
补充一些:
JetBrains不仅支持学生认证,还支持开源开发者认证,具体如何认证都可以在CSDN上找到详细教程,此处不再赘述。
其实用了一阵Keil感觉编译尤其是调试还是很方便的,本来不打算换回CLion了(毕竟配环境实在是太痛了)。但是接触了ESP32,发现自己实在是不适应VSCode,查到CLion也可以开发ESP32,那就长痛不如短痛,直接把STM32和ESP32的环境都配好。查了查相关的资料,现在已经有很多博客讲怎么配置CLion开发STM32,怎么配置CLion开发ESP32,好像还没有人在一篇里把这俩都讲了。
这篇博客的目的就是一口气配好这两个环境,并且实现开发过程的无缝切换。
配环境是一个比较有时效性的工作,我再根据两年前写的那篇【软件入门】 CLion在工程中添加目录&新文件_clion中鼠标右键怎么设置-CSDN博客,发现已经有很多东西都变了。所以在前面声明一下:本文写于2025.01.03,写完于2025.01.08。如果间隔的时间很长,很可能会在配置过程中具体步骤有变化,但是如果你仔细思考配置的过程其实都大差不差,一定要边配边琢磨。
如果严格按照本博客的顺序配环境出了问题,可以在网上搜一搜那个报错,一般都会有解决办法。如果搜不到解决办法,可以全部卸载环境全部重装一次,有时候重装一次问题就解决了,可能是不知道在哪一步细节搞错了自己却没发现。本文的安装过程是经过二次验证的,我在配好所有环境之后又卸掉了所有环境,重新配了一遍,是没问题的(起码在我写博客的时候是没问题的)。
建议大家在选择版本时,选择当时最新的release版,如果没有特别的需求就不要选老的。尤其不要其中几个组件选老版本,几个组件选新版本,很可能会出现不能互相配合工作的情况。
1.准备工作
1.1.安装CLion
有两种方法,一种是先安装一个JetBrains Toolbox,一种是直接在官网安装CLion。推荐第一种。
下载链接:JetBrains Toolbox App: Manage Your Tools with Ease
JetBrains Toolbox可以对JetBrains家的IDE进行统一管理。软件安装一路下一步即可,唯一需要注意的是Toolbox工具安装的默认位置是C盘,需要手动改一下:


然后直接在Toolbox下载CLion即可,他直接会自动安装好。
如果不想用这个Toolbox,就直接下载CLion:CLion: A Cross-Platform IDE for C and C++ by JetBrains,与Toolbox一样都是一路下一步即可。
1.2.下载STM32环境依赖
注意,以下链接和版本截至2025年01月04日都是最新的,但是所有东西都在更新,请在跳转官网后下载最新的release版本,以防出现新老版本不匹配的问题。如:我一开始装的是21年更新的gcc-arm,但是使用的是最新的STM32CubeMX,导致编译报错:non constant or forward reference address expression for section .ARM.extab
。
1.2.1.STM32CubeMX
STM32CubeMX - STM32Cube initialization code generator - STMicroelectronics
这个软件的快速入门教程链接:【软件入门】STM32CubeMX快速入门_cubemx stm32c0-CSDN博客
这篇博客中有详细的安装和使用教程。
1.2.2.OpenOCD
Download OpenOCD for Windows (gnutoolchains.com)
先下载&解压,无需安装。
1.2.3.MinGW
Releases · niXman/mingw-builds-binaries (github.com)
先下载&解压,无需安装。
注意,后续版本号可能会更新,但是我们选择的都是x86_64-版本号-release-posix-seh-ucrt-rt_v12-rev0
。关于这些参数,可以参考这位大佬的博客:[CLion搭建STM32开发环境(基于野火开发板STM32F103C8T6)_clion stm32-CSDN博客](https://blog.csdn.net/qq_46226142/article/details/142715291?ops_request_misc=%7B%22request%5Fid%22%3A%221103a1bb8609b3a9633f0f431a77538b%22%2C%22scm%22%3A%2220140713.130102334…%22%7D&request_id=1103a1bb8609b3a9633f0f431a77538b&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-2-142715291-null-null.142v101pc_search_result_base2&utm_term=CLion STM32&spm=1018.2226.3001.4187),相关描述如下:
注意,如果链接失效,可以在CLion的设置中直接点击下载
跳转到最新链接:
1.2.4.GNU Arm Embedded Toolchain
Arm GNU Toolchain Downloads – Arm Developer
先下载&解压,无需安装。往下翻,选一个zip格式的:
1.3.下载ESP32环境依赖
1.3.1.ESP-IDF
先下载,无需安装。
1.4.整理
建议临时放至一个文件夹中:
并准备好这样一个路径:
注意,这个路径需要全程没有空格、没有中文,文件夹的名字随意。以图中的文件夹为例,CLion-Environment
中可以有任何其他的文件/文件夹。
如果实在下载不成功: https://pan.baidu.com/s/1gxEOqZyS7jf1nCtyD2j-0Q?pwd=hdgy 提取码: hdgy
2.实现STM32开发
2.1.配置STM32开发环境
依然参考稚晖君大佬的经典文章:配置CLion用于STM32开发【优雅の嵌入式开发】 - 知乎 (zhihu.com)
当然了,也可以直接看本篇博客,比较新一些。下面正式开始配环境。
2.1.1.配置OpenOCD
把解压好的OpenOCD
文件夹复制到CLion-Environment
中,具体如下:
在系统的环境变量中加入一条:

打开命令行,输入:
openocd -v
说明安装成功。如果不成功,可以试试重启电脑,重新输入这行指令。
2.1.2.配置MinGW
把解压好的mingw64
文件夹复制到CLion-Environment
中,具体如下:
在系统的环境变量中加入一条:

打开命令行,输入:
gcc -v
说明安装成功。如果不成功,可以试试重启电脑,重新输入这行指令。
2.1.3.配置gcc-arm
把解压好的arm-gnu-toolchain-14.2.rel1-mingw-w64-x86_64-arm-none-eabi
文件夹复制到CLion-Environment
中,具体如下:
添加系统环境变量如下:

打开命令行,输入:
arm-none-eabi-gcc -v
说明安装成功。如果不成功,可以试试重启电脑,重新输入这行指令。
2.1.4.配置CLion
注意:每次设置完环境变量都必须重启CLion!
打开CLion,进入设置:
选择嵌入式开发
选项卡,配置路径,并进行测试:
完成后点击右下角应用
。
新建一个MinGW工具链:
设置如下:
然后配置CMake:
至此所有环境配置完成。
注意:每次设置完环境变量都必须重启CLion!
2.2.验证环境
点个灯看一下。
2.2.1.新建CLion工程
在CLion中新建项目:
创建好后会有一个.ioc
文件:
直接双击,通过STM32CubeMX打开:
2.2.2.配置CubeMX
默认芯片是STM32F030F4P,点击左上角更改芯片:
配置IO、时钟的过程略,具体可以参考这篇:【软件入门】STM32CubeMX快速入门-CSDN博客
如果你使用的是H7系列,也可以参考这篇:STM32H7开发笔记(1)——H7基本配置_stm32 h7-CSDN博客
配置完IO和时钟树后,来到Project Manager
,配置如下:
路径需要一致:
然后配置Code Generator
如下:
配置好后,点击GENERATE CODE
,会提示你已经存在文件,直接覆盖即可。生成完毕后回到CLion: