配置CLion用于STM32开发
成电电子科协
编辑于 2022年09月20日 14:34

 Author:Aiano_czm​

    主流的stm32开发环境是MDK-ARM,也就是Keil,近几年ST官方主推使用STM32CubeIDE。但是在尝试过以上两种开发环境后,还是感觉界面过于原始,用起来不顺手,所以这个项目采用Clion作为IDE。

硬件准备

材料:

  1. 一块stm32开发板,使用SWD接口;

  2. 一个烧录器,可以是ST-Link,也可以是DAPLINK;

常用调试器的区别:

    区别是STLink只支持ST公司的单片机,而DAPLINK是开源的,支持大多数ARM内核的单片机,挑一个顺手的即可

环境搭建

操作系统

    本文使用Windows 10 (理论上本套方案使用Linux也可以,感兴趣的网上有很多教程)

初始化代码生成器

STM32CubeMX

安装过程略

编译器

MinGW(http://c.biancheng.net/view/8077.html)

MinGW介绍 要知道,GCC 官网提供的 GCC 编译器是无法直接安装到 Windows 平台上的,如果我们想在 Windows 平台使用 GCC 编译器,可以安装 GCC 的移植版本。 目前适用于 Windows 平台、受欢迎的 GCC 移植版主要有 2 种,分别为 MinGW 和 Cygwin。其中,MinGW 侧重于服务 Windows 用户可以使用 GCC 编译环境,直接生成可运行 Windows 平台上的可执行程序,相比后者体积更小,使用更方便;而 Cygwin 则可以提供一个完整的 Linux 环境,借助它不仅可以在 Windows 平台上使用 GCC 编译器,理论上可以运行 Linux 平台上所有的程序。

    有的同学可能会问,x86架构编译的程序不是不能给ARM架构的stm32使用吗,的确如此,这里我们主要是使用MinGW的make

MinGW下载(https://osdn.net/projects/mingw/releases/

  1. 打开exe文件

  2. 点击Install

  3. (可选)修改安装目录,比如在C盘建一个tools文件夹,最终路径为C:\tools\MinGW注意:路径中不能出现空格,否则后续会出现无法Debug的问题

  4. 点击Continue

  5. 全部选项点击-> Mark for installation

6.点击左上角的Installation -> Apply changes -> Apply

7.完成后如图所示

    安装可能需要等待一段时间,如果安装过程中有部分无法下载,可以点击重试,也可以直接跳过继续安装其它部分,没有关系,因为之后如果有需要,可以重新启动这个下载器,重新下载。

8.将bin文件夹加入到系统变量中的Path

9.打开cmd,输入    gcc -v

若显示以上内容,代表安装成功

如果安装不能成功,可以参考其他教程

也可以直接下载我上传到百度云盘的mingw_w64,然后解压缩到前面创建的C盘的tools文件夹下

链接:https://pan.baidu.com/s/1iVNaAbc0sfnqseW-YYWuSw?pwd=1234  提取码:1234

工程构建工具

CMake下载(https://cmake.org/download/)

选择Windows x64 Installer,按默认安装即可

交叉编译工具链

    在x86架构(即PC)编译的程序不能在ARM架构的stm32上运行,必须使用ARM的交叉编译工具链

在这里下载(https://developer.arm.com/downloads/-/gnu-rm)

选择windows压缩包格式

可以解压到前面创建的tools文件夹中,并将bin文件夹添加到系统变量Path

打开cmd输入      arm-none-eabi-gcc -v

出现以上提示代表安装完成

片上调试器

OpenOCD(https://gnutoolchains.com/arm-eabi/openocd/),选择最新版本下载即可

这里可以解压到前面创建的tools文件夹中

IDE

    终于到了主角Clion,关于软件的获取,大学生可以使用学信网的认证申请学生许可,不是大学生可以尝试30天试用,淘宝有奇技淫巧,其它的就看大家各显神通了

官网下载(https://www.jetbrains.com/clion/)

Clion配置

1.首先随便创建一个项目进入

2.点击 文件->设置

3.点击 插件,安装Chinese (Simplified) Language Pack / 中文语言包

4.点击构建、执行、部署->工具链

    a.点+创建新工具链

    b.命名为MinGW-STM32

    c.工具集定位到mingw文件夹

    d.C编译器、C++编译器以及调试器定位到前面安装的交叉编译工具链gcc-arm-none-eabi的bin文件夹里面找到对应的exe文件

    e.其它保持默认,Clion会自动匹配(若CMake没找到,可能需要自己定位)

5.点击CMake,检查工具链和生成器是否是刚刚设置的,若不是则修改

Clion创建STM32工程

    有两种方法,可以在新建工程时选择嵌入式->STM32CubeMX,也可以从STM32CubeMX中创建,这里我们选择后者

1.打开STM32CubeMX,创建工程,这个相信大家都比较熟悉

2.重点:Project Manager -> Project -> Toolchain / IDE 要选择STM32CubeIDE

3.Generate Code

4.打开Clion 点击打开 选择刚刚创建的工程 确定

5.进入工程后,创建一个config文件夹,里面创建一个文件config.cfg,这个是OpenOCD的配置文件

6.里面输入

如果你选择stlink,输入

    # 选择下载器     source [find interface/stlink.cfg]     transport select hla_swd     # 选择板子     source [find target/stm32f1x.cfg]     adapter speed 10000

如果你选择daplink,输入

    # 选择下载器     interface cmsis-dap     transport select swd     # 选择板子     source [find target/stm32f1x.cfg]     adapter speed 10000

7.点击右上角 编辑配置

8.选择配置文件

9.定位到工程,选中刚刚创建的cfg文件

10.现在应该可以正常进行编译、烧录、debug了

正常编译效果

正常烧录效果

正常Debug效果,比如在main函数设置断点