CLion开发STM32
[TOC]
环境准备
软件准备
- Windows10
- STM32CubeMx
- CLion
- MinGW
- OpenOCD
- arm-none-eabi-gcc
硬件准备
- STM32F103RCT6
- ST-LINK V2
软件安装
注意安装路径尽量不要出现中文!!!
MIninGW
mingw,是Minimalist GNU on Windows 的缩写。它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 下,并且包含了 Win32API ,因此可以将源代码编译生成 Windows 下的可执行程序。
下载完成之后找到bin目录,添加到系统环境变量Path中
系统属性->高级->环境变量
系统变量->Path->新建

OpenOCD
OpenOCD(Open On-Chip Debugger)是一个开源的片上调试器,旨在提供针对嵌入式设备的调试、系统编程和边界扫描功能。OpenOCD的功能需要调试仿真器来辅助完成,调试仿真器是一个提供调试目标电信号的小型硬件单元。常用的有JLink、STLink等,一些开发板直接集成了调试仿真器。
下载完之后将bin或bin-x64目录(两者都可)加到环境变量中去,方法同上。
arm-none-eabi-gcc
编译软件,或是准确点叫⼯具链。ARM框架、无供应商、无系统、嵌入式二进制接口,一般适合ARM7、Cortex-M、Cortex-R内核的芯片使用,所以不支持跟操作系统密切相关的函数。
同理将安装目录下的bin目录添加到系统环境变量中去。
STM32CubeMx新建工程及配置
File->New Project->Part Number

System Core->SYS->Debug设置调试器类型
| Debug | 调试器类型 |
|---|---|
| No Debug | 无调试器 |
| Serial Wrie | SWD调试器 |
| JTAG(4pins) | 4线JTAG调试器 |
| JTAG(5pins) | 5线JTAG调试器 |
| Trace Asynchroous Sw | 带异步Trace的调试器 |
本次硬件使用的是SWD调试器,所以Debug为Serial Wrie
设置时钟RCC->High Speed Clock(HSE)-> Crystal/Ceramic Resonator

设置PD2为GPIO_Output

更改Clock Configuration,HCLK设置为72MHz

Project Manager->Project->Toolchain/IDE->SW4STM32

Code Generator配置
最后GENERATE CODE生成代码
CLion配置
工具链
设置->构件、执行、部署->工具链
配置如下

CMake
配置如下

可勾选在编辑CMakeLists.txt或其他 CMake配置文件时重新加载 CMake项目自动重装置CMakeLists.txt
嵌入式开发
配置如下

点击一旁的Test按键,确认一下路径是否正确。
如果出现绿色的提示框,则说明路径正确。
程序编写及烧录
在STM32CubeMx生成的文件目录,右击在CLion中打开。
在工程主目录下建立新文件夹config,在config中新建stlink.cfg

stlink.cfg文件内容为
1 | source [find interface/stlink-v2.cfg] |
若为jlink.cfg则
1 |
|
jlink-swd.cfg为
1 | adapter driver jlink |
其他的芯片或者下载器的配置,可以参考OpenOCD自带的一系列配置文件,路径在OpenOCD安装目录的share\openocd\scripts下。
在小锤子旁边下拉,点击编辑配置

将刚才创建的stlink.cfg文件添加到面板配置文件

在main.c中编写流水灯程序测试
1 | while (1) |

三个符号分别表示编译、烧录和调试。
编译文件生成相应的hex和bin文件,则表示编译成功

烧录程序,连接好下载器,点击运行按钮

如图提示已下载固件,则表示烧录成功。