CLion配置STM32开发环境

来源: 电子工程世界
新闻行业新闻

一、前言

  上一篇文章介绍了VSCode配置STM32的开发环境,本文将介绍使用CLion配置STM32的开发环境,很多喜欢稚晖君的小伙伴,都知道稚晖君使用的是CLion开发STM32,并且稚晖君的知乎上也有介绍CLion配置STM32的开发环境的文章。我针对我的使用情况,对我遇到的一些问题做一下总结,并且展示解决的办法。本次介绍的也是HAL库开发。B话不多说,开干~

二、软件及环境准备

1、CLion2021.3.3

  官网下载地址:CLion: A Cross-Platform IDE for C and C++ by JetBrains,CLion是收费软件,解决办法如下:

  a、购买CLion正版授权,199美刀一年,第二年好像就要便宜一些。

  b、使用学生证或者在线学籍申请可以免费使用一年

  c、找马云清空购物车

2、STM32CubeMX

  官网下载地址:STM32CubeMX - STMicroelectronics

3、MinGW

  下载地址:bit.ly/mingw10

MinGW下载

4、gcc-arm-none-eabi

  下载地址:Arm GNU Toolchain | GNU Arm Embedded Toolchain Downloads – Arm Developer,下载压缩包的即可。

gcc-arm下载

5、OpenOCD

  下载地址:Download OpenOCD for Windows

openocd下载

三、环境配置

1、安装软件

安装好CLion和STM32CubeMX

CLion和CubeMX

2、解压工具

解压出MinGW、gcc-arm-none-eabi和OpenOCD放在C盘根目录下,(也可以放在其他地方,我C盘大,所以啥都放在C盘的)

下载完成的工具

解压完成的工具

  解压出来文件名比较长,可以修改一下文件名,将名字缩短一点,这里我是修改了文件夹的名字的

3、添加环境变量

  将解压出来的MinGW、gcc-arm-none-eabi和OpenOCD文件夹中的bin文件的路径添加进系统的环境变量

  首先,在系统搜索框搜索环境变量,然后点击“编辑系统环境变量”

搜索系统环境变量

  在“高级”中选择“环境变量”

选择环境变量

  选择“Path”,点击“编辑”

编辑路径

  点击“新建”,将工具的bin文件路径添加进环境变量中

添加路径

4、测试

  在控制台输入g++ -v、openocd -v和make -v出现了版本号,则表示添加成功。

测试工具

四、CLion配置

  打开CLion,创建一个工程或者打开一个文件夹,然后点击“file”选择“Setting”

设置

  找到“Build,Execution,Deployment”下的“Toolchains”。将Toolset选项选择为MinGW的文件夹,后面的会自动识别;将Debugger设置为gcc-arm下的arm-gcc-none-eabi-gdb.exe。(注意:Debugger可以不用更改)

  在CMake处确认工具链是否正确

  在Embedded Development栏设置Openocd.exe和STM32CubeMX.exe的位置路径。然后点击Test,弹出绿色气泡则没有问题。

五、CubeMX工程创建和编译

  点击file->New->Project,创建一个STM32CubeMX的工程,注意:CubeMX生成工程的文件名必须和CLion中的一样,否则CLion不会更新工程,并且Cube MX会生成一个新的工程文件夹

  点击“open with STM32CubeMX”,打开后会发现默认的是STM32030F4Px的芯片

打开CubeMX

默认芯片

  我们将它修改为自己使用的芯片,这是我是使用的正点原子探索者的板子,所以我修改芯片类型为STM32F407ZGTx。

芯片替换

  中间的配置过程就不在叙述,能来研究CLion开发STM32,我相信Cube MX配置芯片是没有任何问题的;在生成代码之前,项目名字必须和之前CLion中的名字一样,然后IDE选择SW4STM32,最后生成代码。完成后点关闭,CLion中会自动更新

工程生成

  回到CLion中,会提示选择一个文件,这个文件是下载时需要用到的,国外的喜欢以板子为例来设置文件,可能会跟我们使用的芯片不符合,所以先点击取消,我们后面再来说。

选择下载文件

  CLion中,这三个图标分别为编译下载调试

  点击绿色的小锤子,则可以编译整个工程

  如果有新增加的C/C++文件,则需要在CMakeLists.txt中添加所增加文件的路径

添加编译源文件路径

六、程序下载

  下载程序前,可以看到编译和下载之间的选项有个红色的小叉,是因为没有配置下载需要的文件。

调试提示

  我们在工程文件夹里面新建一个文件,然后取名stlink.cfg(可以自己定义名字,但是后缀得是.cfg)

新建文件

  在文件中写入如图所示代码,第一行是下载器配置文件,这里我使用的是ST-LINK V2,第二行代码是选择调试接口,第三行代码是所使用芯片的配置文件,第四行代码是下载速度。

下载配置代码

  提示:stlink-v2.cfg和stm32f4x.cfg在openocd的文件夹中,其路径为:C:OpenOCDshareopenocdscripts

  stlink-v2.cfg在interface文件夹中,stm32f4x.cfg在target文件夹中,里面有需要的各种配置文件

配置文件路径

  配置文件写好后,需要在CLion中加载;在选项框选择Edit Configurations...

选择编辑

  然后在Board config files中添加刚才写的下载配置文件

添加配置文件

  最后点击下载按钮,就可以快乐的下载程序了

下载完成

七、遇到过的问题

1、新增cpp源文件和头文件关键字问题

  在新增cpp的源文件和头文件后,编译时会提示 No such file or directory的错误。

错误提示

  那是因为在加入新的cpp源文件和头文件的,默认选择了 Add to targets。

增加Add

  因此,在CMakeLists.txt,会将文件添加在如图所示位置,将其删掉则可编译成功。

删除文件

  如果在第一次添加源文件和头文件时,将Add to targets取消掉,文件则不会添加到上图所示的位置。

取消Add

  但是,这也会出现另一个问题;在使用C++类时,class关键字会报错。出现这个问题的原因我也不知道。

关键字错误

2、FreeRTOS编译时报错

  使用CubeMX生成FreeRTOS操作系统后,点击编译会出现如下图所示的错误

FreeRTOS编译错误

  解决办法,在CMakeLists.txt文件中,将如图所示两行代码的注释取消掉即可。注意:CubeMX重新生成代码的时候,这两句会被重新注释上。

取消注释

关于printf函数的重定向,由于本人好像使用得不多(基本没怎么使用),也就没有研究,具体得可以参考稚晖君的文章。本文也是参考了稚晖君的文章,根据自己遇到的问题所作,记录一下。以免后面再回过头来学习时忘记。


文章来源于: 电子工程世界原文链接

本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

CLion配置STM32开发环境 | Hulu AI平台