使用CLion开发STM32
使用CLion开发STM32
环境配置
STM32CubeMX
正常安装即可。下载链接
MinGW
点击下载安装器。下载链接
选择安装
改变一下路径
等待下载完成后点击Continue进入下一步,勾选Basic Setup里的全部组件,点击Apply Changes下载。过程会很漫长,请耐心等待。
配置环境变量,在Path里添加MinGW的bin文件夹:
打开命令行,输入gcc -v,出现类似下图信息即为安装成功
OpenOCD
下载最新版本。下载链接
下载后解压,将文件夹改名为OpenOCD并放置到一个目录,这个目录将在下文中Clion中配置。
arm-none-eabi-gcc
下载zip格式的。下载链接
下载后解压,放置到一个目录,这个目录将在下文中Clion中配置。
配置环境变量,在Path里添加所在文件夹的bin文件夹:
打开命令行,输入arm-none-eabi-gcc -v,出现类似下图信息即为安装成功
Clion
Clion可以去Jetbrain下载,学生可以免费使用。下载安装好之后配置工具链,添加如下图的路径
新建项目
新建STM32CubeMX项目
选择用CubeMX打开
更换芯片型号
将项目名改成前文Clion创建的工程名,将IDE改成STM32CubeIDE,然后点击生成代码,弹出是否overwrite选择yes
代码生成好之后点击Close,回到Clion,会弹出来这个对话框,这里先选择取消,后面再添加。
打开设置,确定一下cmake为以下配置:
点击锤子按钮编译,如以上配置无误即可生成hex及bin
对于一个项目,不可避免地会用到第三方库或者自己创建的.c/.h文件,也就是需要修改CmakeList文件。但这里的CMakelist开头写明了#此文件从模板自动生成! 请勿更改!,其原因为在每一次使用CubeMX生成代码时此文件会被覆盖,用户的代码将不会被保存。所以需要修改模板文件CMakeLists_template.txt。
如上图所示,需要增加头文件及编译文件。对于我们新增的编译文件,可以新增一个MY_SOURCE并在add_executable中添加${MY_SOURCES},可以避免修改原模板。
file里的GLOB_RECURSE意思是对该目录下的所有子文件进行递归添加。而GLOB则不进行递归,只在当前文件夹下查找。可以根据需求选择用哪种。*.*为通配符,意为添加文件夹下的所有文件。
烧录
如使用STlink进行烧录,需要添加配置文件。在项目根目录下新建一个stlink.cfg,添加如下内容
1 | source [find interface/stlink-v2.cfg] |
若使用的不是STM32F1或者不是STlink仿真器,可以到OpenOCD安装目录的share\openocd\scripts下寻找对应的配置。芯片在target文件下,仿真器在interface文件夹下。
然后点击编辑配置
添加刚刚的配置文件
然后点击三角形烧录固件
查看寄存器
调试的时候点击寄存器,没加载svd文件是看不到的,这个文件在keil中可以找到
路径如下:
然后全选即可显示。
代码优化
实测默认的代码优化会造成许多问题。修改模板文件CMakeLists_template.txt,优化等级均改为-O0:
然后在Cubemx中重新生成代码以刷新Cmakelist文件。
重定向printf
与在keil5中重定义fputs()函数不一样,在GCC编译器中需要重定义的是__io_putchar(int ch)。
在main中添加如下代码并引入头文件#include <stdio.h>
1 |
|
然后即可使用printf函数。且此段代码在Keil和Clion中均可正常编译运行。































