如何使用Clion配合cubeMX
环境准备
首先你需要一个最新的cubeMX,连接如下:
https://www.st.com/en/development-tools/stm32cubemx.html
接着你需要一个Clion,目前听说非商用的软件已经免费,大家可以去官网下载。
也可以搞破解版,例如:
这里面是整个jetBrian的总合,是可以单独安装的,只安装Clion即可
然后是比较重要的,你需要一个stm32的工具链STM32CubeCLT_1.19.0
https://www.st.com/en/development-tools/stm32cubeclt.html
这里边包含了一套针对嵌入式的完整的开发工具链,包括cmake,生成工具ninja,以及编译器链接器g++、gcc等等。
你需要把STM32CubeCLT_1.19.0\GNU-tools-for-STM32\bin路径添加到环境变量
准备好工具之后,就可以开始开发。
新建项目(cube)
首先打开cubeMX,根据手中的芯片新建工程,这里以f103为例
配置外部高速晶振,配置调试口

配置时钟树

然后在生成工程界面选择新的cmake-gcc:

然后点击generate code
配置工程(clion)
在clion中选择新建工程,随后选择到cubeMX界面

然后在项目路径中选择到刚才生成的cube工程的文件夹,随后右下角的继续便可以点击:

点击继续,此时便会弹出项目配置向导,因为我们还没配置工具链所以现在先不管,直接继续。

现在是无法编译下载的,因为cmake工程报错,不要慌,打开设置,找到Build, Execution, Deployment->Toolchains,

新建一个System的项目,这里名字可以起一个STM32之类的接下来cmake选CLT中带的cmake,build tool选择CLT中的ninja,c compiler选择gcc,c++ compiler选择g++,类似下面这样:


GDB既可以选择clion自带的也可以选CLT中的,这里我选择的是自带的。
随后切换到CMake界面

将tool chain选择为刚才新建的STM32,Generator选择use default ninja,然后CMake option中添加下面这段:
-D CMAKE_TOOLCHAIN_FILE=./cmake/gcc-arm-none-eabi.cmake
随后点击OK,就可以发现cmake项目配置成功了。cmake显示complete,右上角也出现了编译下载调试三件套

如果想要添加文件到项目
你可以手动创建
右键你要创建的位置然后new c/c++ source file,可以直接选择将文件添加到项目中

请注意这里要添加到主项目中,即第一个选项,项目根目录里的CMakeLists.txt。
可以添加已有的文件
也可以将已有的文件拖到文件夹中,右键手动添加到项目中:

如果想添加新的include路径
需要在主项目的CMakeLists中的对应位置添加:
# Add include paths
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/../../Core/Inc
${CMAKE_CURRENT_SOURCE_DIR}/../../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy
${CMAKE_CURRENT_SOURCE_DIR}/../../Drivers/STM32F1xx_HAL_Driver/Inc
${CMAKE_CURRENT_SOURCE_DIR}/../../Drivers/CMSIS/Device/ST/STM32F1xx/Include
${CMAKE_CURRENT_SOURCE_DIR}/../../Drivers/CMSIS/Include
# Add user defined include paths
)
进行下载
如果连接的stlink,你可以直接点击右上角的箭头下载,同时你也可以使用stm32cubeprogrammer,选择你在cmake界面中设置的编译路径中生成的.elf文件


如果你的下载软件不支持.elf文件,如STLink Utility你可以选择将其转化为.bin文件:
在终端中输入:
arm-none-eabi-objcopy.exe -O binary -S .\cmake-build-debug-stm32\clionDemo.elf .\cmake-build-debug-stm32\clionDemo.bin
这是一个多功能的生成工具,支持的文件类型有:
arm-none-eabi-objcopy.exe: supported targets: elf32-littlearm elf32-littlearm-fdpic elf32-bigarm elf32-bigarm-fdpic elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex plugin
运行完之后就可以看到生成了bin文件,就可以使用其他工具下载了,同时你也可以使用openOCD下载,这里不再展示,因为没有尝试(嫌每个项目都要重新配置配置文件太麻烦)。