一. 安装环境
CLion 是一款现代化 C/C++ 集成开发环境,由 Jetbrain公司开发,拥有优雅的界面、跨平台的特性和广受好评的智能插件,帮助开发人员在 Linux、OSX 和 Windows 上来开发 C/C++,同时它还能使用智能编辑器来提高代码质量、自动代码重构并且深度整合 Cmake 编译系统,从而提高开发人员的工作效率。
1. 下载安装Clion
2. 安装arm-none-eabi-gcc
arm-none-eabi-gcc是用来编译stm32程序的交叉编译工具链 官网地址:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
3. 安装MinGW
MinGW是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API 和MSYS,因此可以将源代码编译生成 Windows 下的可执行程序,又能如同在 Linux 平台下时,使用一些 Windows不具备的开发工具。 MinGW就是GCC的Windows 版本
官网下载: https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/
4. 安装OpenOCD
OpenOCD用来下载程序和调试程序 官网下载:https://gnutoolchains.com/arm-eabi/openocd/
5. 添加系统环境变量
右键属性->高级系统设置->高级->环境变量->双击Path->新建->添加bin路径->确定 将arm-none-eabi-gcc 路径下bin文件夹添加到环境变量中 将MinGW路径下bin文件夹添加到环境变量中 Openocd路径下bin文件夹添加到环境变量中
二. 配置CLion
1. 新建一个工程
- 文件名为test
2. 配置Embedded Development
3. 配置 toolchains
- 选择
File-Settings-Build-Toolchains ,添加MinGW ,会自动匹配好路径信息,在Debugger下选择arm-none-eabi-gcc 路径下bin文件夹中的arm-none-eabi-gdb.exe
4. 配置Cmake
- 修改toolchain为
MinGW
三. 用CLion实现点亮 LED
- 工程创建好后,产生了test.ioc文件,点击
Open with STM32CubeMX ,进入CubeMX - 点击如图位置,进入芯片选择
- 选择芯片STM32F103C8,然后点击
Start Porject 开始配置 - 设置
PC13 引脚为GPIO_Output - 配置 SYS
- 配置 RCC
- 配置串口USART1
- 时钟设置为72M
- 输入名称为test(项目名称一定要和在Clion中建立的一致),一定要在Clion路径的上一层,这样生成的工程文件才会覆盖Clion中的文件,否则会另外生成一个文件夹,Clion就无法读取
生成的IDE类型选择是SW4STM32
四. 在CLion点灯
- 生成完代码后,回到Clion,Clion会对工程进行处理,弹出Board(开发板)配置
因为我们使用的是串口烧录,没有用STlink和Jlink,所以可以直接点击cancel - 在
Core/Src/main.c 的while(1)循环中添加翻转电平代码
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
HAL_Delay(1000);
- 点击右上角的“绿色锤子”进行编译
可以看到编译成功
五. 烧录运行
1. 烧录程序
- 打开FlyMcu,找到test文件下\cmake-build-debug-mingw\test.hex文件,进行串行烧录
2. 运行结果
六. 总结
本文介绍了CLion的安装及配置过程,虽然环境安装过程比较多,但CLion是值得的,使用起来非常方便,完全优于keil。通过使用CLion调用CubeMX,再从CubeMX回到CLion工程,最后完成编译,实现了STM32F103的点亮。
七. 参考文献
https://www.bilibili.com/read/cv6308000/ https://zhuanlan.zhihu.com/p/160183640 https://zhuanlan.zhihu.com/p/63672432
|