CLion 可开发 STM32 项目但需外部工具链与 CubeMX 协同,仅支持特定型号(如 F0/F1/F4/G4/L4 等),不支持 MP1、H7 双核、L5/U5/ H7S 等;必须安装并正确配置 CubeMX ≥6.10、GNU ARM Toolchain 13.3.rel1 和 OpenOCD ≥0.12.0,路径禁含中文/空格/特殊字符。

CLion 能直接开发 STM32 项目,但不是开箱即用——它依赖外部工具链和 CubeMX 协同工作,且对部分 MCU 型号有明确限制。
确认你的 MCU 是否被 CLion + STM32CubeMX 支持
不支持的型号会直接导致 CMake 配置失败或调试器无法识别芯片,别在 unsupported 列表上浪费时间:
-
STM32MP1系列(MPU,非 MCU) -
STM32H7双核型号(如 H743/H753) -
STM32L5、STM32U535/STM32U545(启用 TrustZone® 的型号) -
STM32H7S等 Bootflash 架构 MCU
常见可支持型号包括 STM32F0/F1/F3/F4/F7、STM32G0/G4、STM32L0/L4/L4+。若不确定,先查官方文档中 “Supported boards” 列表,再动手配环境。
必须安装并正确配置的三个核心组件
缺一不可,顺序不能乱,路径不能含中文/空格/特殊字符:
-
STM32CubeMX≥6.10:用于生成.ioc配置和 HAL 初始化代码;安装时勾选“Add to PATH”更省事 -
GNU ARM Embedded Toolchain(arm-none-eabi-gcc):推荐13.3.rel1;必须确保终端能直接运行arm-none-eabi-gcc -v,否则 CLion 在 Settings → Toolchains 中找不到编译器 -
OpenOCD≥0.12.0:调试与烧录核心;Windows 用户注意:解压后路径别带空格(如C:\tools\openocd可,C:\Program Files\openocd不可)
Linux/macOS 用户额外注意:arm-none-eabi-gcc 的 bin 路径要写进 ~/.profile,而不是 ~/.bashrc 或 ~/.zshrc,否则 CLion 启动时读不到。
打开或新建项目时的关键操作点
两种入口,行为一致,但细节决定成败:
- 打开已有项目:直接选择含
.ioc文件的文件夹,或双击该.ioc文件 → CLion 自动解析并生成CMakeLists.txt;.ioc文件名不能含空格或非拉丁字符(如my project.ioc或测试.ioc会失败) - 新建项目:File → New Project → 选
STM32CubeMX→ 按向导在 CubeMX 中选 MCU → 工具链选CMake→ 生成后复制“工具链文件夹位置”路径 → 粘贴到 CLion 向导的Location字段 → 继续 - 生成后,CLion 默认创建
OpenOCD Download & Run和Embedded GDB Server两个调试配置;若用 ST-Link,确保OpenOCD配置里Interface选stlink.cfg,Target选对应芯片 cfg(如stm32f4x.cfg)
第一次打开时若弹出 “Select configuration file” 提示,可跳过,后续在 Run → Edit Configurations → OpenOCD 中手动指定 stlink.cfg 和芯片 cfg 即可。
添加自定义源码后 CMake 不识别?
CLion 生成的 CMakeLists.txt 默认只包含 CubeMX 输出的 Core 和 Drivers 目录;你加的 USER/Inc、USER/Src 不会被自动纳入构建:
- 在
CMakeLists.txt中找到set(STM32_PROJECT_SOURCES块 - 手动追加路径,例如:
${CMAKE_CURRENT_SOURCE_DIR}/USER/Src/*.c - 头文件搜索路径也要加:
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/USER/Inc) - 改完保存,CLion 会自动 reload CMake;若没反应,右键 CMakeLists.txt →
Reload project
别依赖 IDE 自动发现新文件——嵌入式项目里,CMake 是构建事实的唯一权威,手写路径是常态,不是 bug。


















