使用CLion+stm32cubmx替代keil实现stm32F103点亮 LED


一. 环境(windows下)

环境搭建挺简单的,有的以前装过,这里就不演示了

clion:CLion: A Cross-Platform IDE for C and C++ by JetBrains

CLion 是 JetBrains 推出的全新的 C/C++ 跨平台集成开发环境。与vscode类似

arm-none-eabi-gcc:GNU Toolchain | GNU Arm Embedded Toolchain Downloads – Arm Developer

用来编译stm32程序的交叉编译工具链

mingw:(对于最新版的clion,这似乎是个可选的)
MinGW-w64 - for 32 and 64 bit Windows - Browse /Toolchains targetting Win64/Personal Builds/mingw-builds at SourceForge.net

gcc/g++工具,用来编译调试C/C++的

OpenOCD:Download OpenOCD for Windows (gnutoolchains.com)

用来下载程序和调试程序

检测安装是否成功:(需要添加环境变量)

如果对于环境变量的添加有疑问的,留言即可,我补上这个过程

添加变量就是在高级系统设置的环境变量中,用户变量和系统变量选一个,将要添加的路径添加到path中即可。
添加到用户变量的path就是只能在当前用户中有效,系统变量就是全部用户都有效。

  • gcc -v :检测mingw
  • arm-none-eabi-gcc -v
  • openocd -v

gcc是我以前装过的

image-20211215123444371
image-20211215123621355
image-20211215124611080

二. 使用clion创建工程

打开clion后,需要先注册账号,才能使用

1. 新建工程

image-20211215125902837

2. 选择使用stmcubmx创建工程

工程位置路径这里不能有数字及空格(这是个错误示范)

image-20211215130544270
如果出现上图中找不到的情况,选择自己安装的路径即可。
在这里插入图片描述

工程位置路径这里不能有数字及空格,换个路径

image-20211215131120296
新的路径如下
image-20211215131253764

3. 编译器配置

点击创建工程后,等待一会就会弹出下方页面。

如果没有出现,菜单栏点击 file-> setting->toolchains 即可

我们需要将 debugger 选择 arm-none-eabi-gcc 路径下bin文件夹中的arm-none-eabi-gdb.exe,其它可以不变

image-20211215131849922

4. 打开stm32cubmx

image-20211215132305979

5. stm32cubmx创建自己的工程

据图可以重新选择自己的芯片
image-20211215132539698

stm32cubmx的其余配置,详情参考本人另一篇博客。

STM32F103 + STM32CubeMX实现流水灯闪烁_diyu-CSDN博客
这次只是实现一个led闪烁,所以只使用了端口A0

最后这里不同。project name建议和之间clion选择的工程文件名一样,因为之前clion会创建一个同名的 ioc文件。IDE的选择如图。

image-20211215170607358

因为工程文件名和之前clion选择的一样,选择yes覆盖掉就好

image-20211215170737983

出现警告,这是以后的stm32cubmx即将不支持 SW4STM32。点击yes即可。

image-20211215161445071

6. 配置 CLion 工程文件

回到 CLion,等待一会儿就可以看到出现了如下界面,选择合适的文件或者自行配置

如果回到 CLion并且等待了之后没有出现如下界面,那是你上一步生成 CubeMX 工程的时候,文件命名和目录选择与之前在clion中的不同导致的,只需要重新在 CLion 打开你生成的 CubeMX 工程文件即可。

如果你使用串口烧录程序,可以不管这个,直接关闭即可。

image-20211215172052518

我这里选择 st_nucleo_f103rb.cfg
其次,我这里选择copy to project,将这个文件复制到工程中,方便修改。

你可以参考网上自行配置此文件。

image-20211215174449161

7. 添加代码

在core/src/main.c 中添加代码

前面stmcubumx创建工程 选择端口时,我这次只选择了 A0

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET);
HAL_Delay(500);

image-20211215172641925

8. 编译代码

点击右上角小锤子即可

如果你使用串口烧录,这样就可以了,如果你要使用stlink进行下载程序,请查看下一节

生成的 hex文件在 cmake-build-debug文件夹下

image-20211215173127154

9. 番外

如果你使用串口烧录,不用管这个,如果你要使用stlink进行下载程序,请注意

打开前面选择的cfg文件注释掉最后一行

image-20211215174819263

第 4 行是选了连接方式是 stlink
第 6 行是选择 swd 通信模式
第 8 行是选择 stm32f1x 的配置文件
第 10 行是选择重启模式,

在重新编译即可。

三. 最终效果

image-20211215175531262

led

四. 总结

总体而言,还是很简单,因为以前自己都搞过类似的。clion这个软件还是挺不错的,不过我还是比较喜欢vscode,因为习惯了,且vscode较简洁。

五. 参考链接

CLion2021 的详细安装并基于 CLion 实现 stm32F103 点亮 LED_L-GRAZY的博客-CSDN博客

基于clion下与stm32cubemx点亮LED_Laul Ken-Yi的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/qq_45945548/article/details/121958421