文章目录
一. 环境(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是我以前装过的
二. 使用clion创建工程
打开clion后,需要先注册账号,才能使用
1. 新建工程
2. 选择使用stmcubmx创建工程
工程位置路径这里不能有数字及空格(这是个错误示范)
如果出现上图中找不到的情况,选择自己安装的路径即可。
工程位置路径这里不能有数字及空格,换个路径
新的路径如下
3. 编译器配置
点击创建工程后,等待一会就会弹出下方页面。
如果没有出现,菜单栏点击 file-> setting->toolchains 即可
我们需要将 debugger 选择 arm-none-eabi-gcc 路径下bin文件夹中的arm-none-eabi-gdb.exe,其它可以不变
4. 打开stm32cubmx
5. stm32cubmx创建自己的工程
据图可以重新选择自己的芯片
stm32cubmx的其余配置,详情参考本人另一篇博客。
STM32F103 + STM32CubeMX实现流水灯闪烁_diyu-CSDN博客
这次只是实现一个led闪烁,所以只使用了端口A0
最后这里不同。project name建议和之间clion选择的工程文件名一样,因为之前clion会创建一个同名的 ioc文件。IDE的选择如图。
因为工程文件名和之前clion选择的一样,选择yes覆盖掉就好
出现警告,这是以后的stm32cubmx即将不支持 SW4STM32。点击yes即可。
6. 配置 CLion 工程文件
回到 CLion,等待一会儿就可以看到出现了如下界面,选择合适的文件或者自行配置
如果回到 CLion并且等待了之后没有出现如下界面,那是你上一步生成 CubeMX 工程的时候,文件命名和目录选择与之前在clion中的不同导致的,只需要重新在 CLion 打开你生成的 CubeMX 工程文件即可。
如果你使用串口烧录程序,可以不管这个,直接关闭即可。
我这里选择 st_nucleo_f103rb.cfg
。
其次,我这里选择copy to project,将这个文件复制到工程中,方便修改。
你可以参考网上自行配置此文件。
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);
8. 编译代码
点击右上角小锤子即可
如果你使用串口烧录,这样就可以了,如果你要使用stlink进行下载程序,请查看下一节
生成的 hex文件在 cmake-build-debug文件夹下
9. 番外
如果你使用串口烧录,不用管这个,如果你要使用stlink进行下载程序,请注意
打开前面选择的cfg文件注释掉最后一行
第 4 行是选了连接方式是 stlink
第 6 行是选择 swd 通信模式
第 8 行是选择 stm32f1x 的配置文件
第 10 行是选择重启模式,
在重新编译即可。
三. 最终效果
四. 总结
总体而言,还是很简单,因为以前自己都搞过类似的。clion这个软件还是挺不错的,不过我还是比较喜欢vscode,因为习惯了,且vscode较简洁。
五. 参考链接
CLion2021 的详细安装并基于 CLion 实现 stm32F103 点亮 LED_L-GRAZY的博客-CSDN博客