CLion+STM32 软件开发环境配置指南

本教程将引导你配置 CLion+STM32 的软件开发环境,然后创建并运行一个示例工程。本文以 Windows 系统为例说明所需步骤,不过 macOS 和 Linux 系统的配置流程也大体相同。

在开始之前,请参考文末的开发板选择指南

安装环境

本文用到的所有文件均可以在资料包中下载,下载地址为 https://seafile.h.t123yh.xyz:3/d/0dbd67cb761f466ab9a0/

安装 GCC ARM

STM32 单片机需要使用 ARM 编译器进行编译。在资料包中下载 arm-gnu-toolchain-12.2.mpacbti-rel1-mingw-w64-i686-arm-none-eabi.exe 文件,下载打开后一路点击 Next 即可完成安装。请在安装完成的页面勾选 Add path to environment variable 选项并去除前两个选项(Add path 这个一定要选,否则后续编译项目时会出错),如下图所示。

如果忘记勾选 Add path to environment variable,则可能会在编译时提示找不到 arm-none-eabi-gcc 编译器,此时请将 GCC ARM 的 bin 目录添加进 PATH 中。

安装 CLion

CLion 是我们使用的开发环境。它可以开发电脑上的 C / C++ 程序,也可以开发 STM32 嵌入式程序。

JetBrains 官网下载 CLion (或在资料包中下载 CLion-2023.1.4.exe),下载后打开,然后一路 Next 安装。安装后,打开 CLion,会出现提示激活许可的信息,如下图所示。JetBrains 对教育用户免费,只需注册一个 JetBrains 账号,然后用 buaa.edu.cn 邮箱进行教育验证即可,具体请访问 https://www.jetbrains.com/shop/eform/students,然后点击 Log In to JetBrains Account 按钮登录。

如果此时不想激活,也可以选择如图绿色框所示的试用选项,注册并登录账号后可试用 30 天。

安装 OpenOCD

OpenOCD 是烧录和调试单片机时使用的工具,实现 CLion 与 ST-LINK 间的对接。在资料包中找到 xpack-openocd-0.12.0-1-win32-x64.zip 文件,然后解压到硬盘内(解压所在文件夹的路径不能包含空格和中文,否则会导致 OpenOCD 无法正常运行)。

解压后,需要把 bin 目录移动到 openocd 目录里面,以适应 CLion 的要求。

移动后,openocd 目录下会有 4 个文件夹,如图所示:

安装 STM32CubeMX

STM32CubeMX 的作用是创建单片机项目模版,并将相关的驱动程序复制到项目中。在资料包中下载 SetupSTM32CubeMX-6.8.1-Win.exe 并打开,一路下一步完成安装。

安装 ST-Link 驱动程序

对于 Windows 系统,下载资料包中的 en.stsw-link009.zip,解压后运行 dpinst_amd64.exe 即可安装。macOS 和 Linux 无需安装驱动。

配置 CLion

安装好 OpenOCD 和 STM32CubeMX 后,在 CLion 主界面中,点击左侧的 Customize 按钮,点击 All Settings 打开设置界面。

在设置界面的 Build, Execution, Deployment 类别中选择 Embedded Development。CLion 应该已经自动找到 STM32CubeMX 的安装路径,无需手动选择。在 OpenOCD Location 里面,请选择刚解压出来 OpenOCD 中的 openocd\bin\openocd.exe。

OpenOCD 和 STM32CubeMX 都配置好后,请点击两个 Test 按钮测试是否配置成功(如果弹出绿色提示,表示正常工作),然后点击 OK 确认。

创建项目

打开 CLion,并点击界面上的 New Project 按钮。在左侧选择“STM32CubeMX”项目类型,在 Location 末尾输入自己的项目名称,然后点击“Create”,如图所示。

“创建项目”页面

第一次创建项目,可能会比较慢,卡在如下界面:

如果等 1 分钟后还是没有反应,可以直接点击 Cancel 取消。

项目创建好后,我们需要通过 STM32CubeMX 来选择单片机型号和配置引脚。单击 CLion 左侧文件列表的 ioc 文件,然后单击 “Open with STM32CubeMX”,即可打开 Cube。

点击中间的的蓝色链接

打开 Cube 后,首先需要将单片机修改为自己手里开发板的型号。如果使用 STM32F3Discovery 开发板,则型号是 STM32F303VCT6;如果是 NUCLEO-G474RE 开发板,则型号是 STM32G474RET6。按图中文字说明选择单片机型号。

修改后,在界面中应当能看到新的单片机出现。

由于 STM32CubeMX 的小问题,在修改单片机型号后,整个项目的信息会丢失。我们需要修改项目路径到我们之前创建的项目。假设原本的项目路径是 C:\Users\user\CLionProjects\HelloWorld(创建项目时指定的路径),请参考以下图片的说明,逐步完成 1-4 步操作。需要注意的是,第 2 步需要准确无误地输入之前 CLion 中创建好的项目名称;第 3 步中请选择项目父目录的路径(即路径中不包含 HelloWorld 项目名称),否则生成的项目位置错误,会导致 CLion 无法识别。

修改完项目路径后,我们还需要修改项目所使用的的外设库。首先点击左边的 Advanced Settings 按钮,然后把 HAL 库修改为 LL 库。后续添加其他外设(如 I2C、GPIO)后,都请在此处把所有外设类型都修改为 LL 库。

修改完后,点击 Generate 按钮生成项目文件。

第一次生成项目时,软件会提示是否下载对应单片机系列的资源包,点击 Yes 即可。根据网络状况,下载可能需要耗费数分钟,耐心等待即可。

点击生成后,系统会提示当前路径已存在,询问是否要覆盖。看到这个提示,说明你前面的路径设置是正确的,点击 Yes 继续操作即可;如果没看到这个提示,说明你前面的路径配置有误,请仔细检查。

生成好项目后,系统提示下一步操作,点击 Close 即可。

系统会提示选择一个开发板的配置文件,如下图所示。这个配置文件包含了开发板相关信息,会被 OpenOCD 烧录程序使用。对于 STM32F3Discovery 开发板,选择 stm32f3discovery.cfg 文件;对于 NUCLEO-G474RE 开发板,选择 st_nucleo_g4.cfg 文件。选好后,点击“Copy to Project & Use”。

开发板配置文件选择

如果此步骤点了取消,则没有开发板配置文件,会导致无法烧录程序到单片机中。后续想修改此配置文件,请点击 CLion 右上角下拉框中的 Edit Configuration 选项,在左侧选择 OpenOCD 的配置,并在 Board Configuration 配置项下面就可以修改。点击后面的 “Assist…” 按钮,即可再次选择系统自带的配置文件。

编译并下载

项目创建好后,就可以尝试编译了。请点击 CLion 右上方的小锤子(编译)按钮,即可开始编译。

编译按钮

如果小锤子是灰色,则需要手动修改一下可执行文件配置。点击下拉框中的 Edit Configuration 选项,将“Target”修改为项目的 elf 文件,然后点击 OK 即可。

运行选项

编译成功后,应该能在 CLion 下方的日志窗口中看到 Build Finished 提示。此时我们先将开发板连接到电脑,然后点击右上角的播放(运行)按钮,即可将程序下载到单片机中,并开始运行。如果你使用 STM32F3Discovery 开发板,开发板上有两个 USB 接口,请连接标记有 ST-LINK 的那个接口。

运行按钮

在下载程序时请查看 CLion 下方“Run”窗格中的日志。如果日志中出现 ** Programming Finished **(如图所示),就代表下载成功。Info : Unable to match requested speed 的信息提示不是错误,可以忽略不管。

下载日志

开发板选择指南

CC BY-SA 4.0 本作品使用基于以下许可授权:Creative Commons Attribution-ShareAlike 4.0 International License.

WordPress Appliance - Powered by TurnKey Linux