本教程翻译自 STM32CubeMX projects, 并做了相应修改,如有不当之处欢迎指出 ?
对于面向 STM32 开发板的嵌入式项目,CLion 提供了与 STM32CubeMX 的集成方式。 您可以在 CLion 中打开由 CubeMX 生成的 .ioc 文件作为项目,CMake 项目结构将自动创建。 或者,您可以在 CLion 中从头开始新项目,项目向导将帮助您在 CubeMX 中对其进行配置。
CLion 中的 STM32CubeMX 支持是 OpenOCD + STM32CubeMX 插件的一部分。因此,项目设置和项目创建过程的某些步骤将与OpenOCD 结合在一起。 但是,STM32CubeMX 项目不限于仅与 OpenOCD 一起使用:您还可以设置更通用的嵌入式 GDB 服务器运行/调试配置。 在后一种情况下,请忽略与 OpenOCD 相关的设置以及项目设置步骤。
必备工具
所有平台
-
STM32CubeMX
CubeMX是用于配置STM32微控制器并生成相应C代码的图形工具。 在CubeMX中,您可以设置CPU和外围设备,并调整频率和引脚模式。 它生成一个存根项目,CLion随后将其转换为CMake项目。 -
GNU ARM toolchain
GNU ARM 工具链是在桌面上启动的一组跨平台工具,而构建结果只能在目标 ARM MCU 环境下运行。为了让 CLion 检测到工具链,需要将其加入系统环境变量 PATH 中。 您可以通过从命令行运行
arm-none-eabi-gcc -v
进行检查,若出现下面的输出,则说明编译工具安装已经成功。否则请检查环境变量。在 Linux 和 macOS 上,请确保工具链路径位于
~/.profile
中(而不是在 shell-specific 的配置中,例如~/.bash_profile
或~/.zprofile
)。
在 Settings/Preferences | Build, Execution, Deployment | Embedded Development,您可以检查是否正确检测到工具链,并根据需要手动设置路径。 如果您不打算使用OpenOCD,请将 OpenOCD Location 字段留空。
Windows 平台的特定要求
- 对于 GNU ARM Toolchain,请使用版本 2019-q3 或 2018-q2(或更早版本)。 请参阅 2018-q4 问题。
- 仅支持 MinGW 和 MinGW-w64 环境(CPP-15034)。
从 .ioc 文件打开一个项目
- 如果您已经有一个包含.ioc文件的项目,请调用 File|Open, 选择 .ioc 文件,然后选择 Open as Project 。 CLion 将自动生成 CMake 项目结构。
如果您已有嵌入式项目,请在 CLion 中打开现有项目。当您第一次在编辑器中打开 .ioc 文件时,CLion 将为您生成 CMake 项目。
创建一个新项目
对于新项目,您可以从配置 MCU 并在 CubeMX 中生成代码开始,然后在 CLion 中打开 .ioc
文件,也可以如下所述从头开始创建项目。
-
在 New Project 向导(File | New Project)中,选择 STM32CubeMX 作为您的项目类型。 CLion 将为默认的STM32F030F4 MCU 创建
.ioc
文件.ioc
文件是包含静态初始化设置的 CubeMX 原始项目文件。 在 CLion 中,此文件为只读文件,在当前步骤中,它是将在下一步在 CubeMX 中设置的配置的占位符。 -
现在,我们需要切换到 CubeMX 来生成项目源并填充
.ioc
文件。 单击 Open with STM32CubeMX 链接以直接从 CLion 打开 CubeMX。 -
在CubeMX中,已经为新创建的项目设置了配置。 单击 STM32F030F4Px 调用 MCU/Board Selector 并更改默认 MCU:
MCU 更改时,CubeMX 会重置项目名称。 因此,我们需要在 Project Manager 中手动提供名称,然后接受覆盖项目的建议。
准备好硬件配置后,检查 Toolchain / IDE 字段是否设置为 STM32CubeIDE 并选中 Generate Under Root,然后单击 Generate Code:
-
如果您不打算使用 OpenOCD,请跳过此步骤(单击 Cancel)
回到 CLion,当 CMake 项目加载完成时,会提示我们选择开发板配置文件。建议清单取自 OpenOCD 附带在OpenOCD-Installation/share/OpenOCD/scripts/board
文件夹中提供的一组板配置文件:稍后,您还可以在 OpenOCD Run/Debug configuration 的设置中选择适当的开发板配置,包括自定义配置。
单击 Copy to Project & Use,将选定的开发板配置文件添加到项目树。 您将能够在编辑器中打开和调整它。
编辑源代码
-
当您在CubeMX中更改MCU配置并单击 Generate Code 时,您的 CLion 项目将自动更新:
您也可以手动更新项目:为此,请从 Tools | CMake 或者 File 下使用 Update CMake project with STM32CubeMX 更新 CMake 项目。
-
在编辑 CubeMX 生成的文件时,请始终将您的代码包含在
/* USER CODE BEGIN ... */
和/* USER CODE END ... */
伪注释中。 这样可以保护您的代码在代码重新生成期间不会被 CubeMX 覆盖。 另外,请考虑将代码片段提取到单独的.c
或.h
文件中(请参阅下一点)。 -
如果添加源文件或包含文件,请将它们放在
Src
和Inc
目录中。 -
每次更新项目时,CLion 都会从模板中重新生成
CMakeLists.txt
。 如果需要在 CMake 脚本中进行更改(例如,添加外部库或FPU支持),请在CMakeLists_template.txt
中进行更改,然后使用Update CMake project with STM32CubeMX
更新 CMake 项目。
编译项目
选择以下方式之一 :
- 运行或调试 OpenOCD 或 Embedded GDB Server 配置。这两个配置都包括“作为启动之前构建”步骤:
- 使用 Build actions 来手动构建项目。
写的真好