Author:Aiano_czm
主流的stm32开发环境是MDK-ARM,也就是Keil,近几年ST官方主推使用STM32CubeIDE。但是在尝试过以上两种开发环境后,还是感觉界面过于原始,用起来不顺手,所以这个项目采用Clion作为IDE。
一块stm32开发板,使用SWD接口;
一个烧录器,可以是ST-Link,也可以是DAPLINK;
常用调试器的区别:
区别是STLink只支持ST公司的单片机,而DAPLINK是开源的,支持大多数ARM内核的单片机,挑一个顺手的即可
本文使用Windows 10 (理论上本套方案使用Linux也可以,感兴趣的网上有很多教程)
STM32CubeMX
安装过程略
MinGW(http://c.biancheng.net/view/8077.html)
MinGW介绍 要知道,GCC 官网提供的 GCC 编译器是无法直接安装到 Windows 平台上的,如果我们想在 Windows 平台使用 GCC 编译器,可以安装 GCC 的移植版本。 目前适用于 Windows 平台、受欢迎的 GCC 移植版主要有 2 种,分别为 MinGW 和 Cygwin。其中,MinGW 侧重于服务 Windows 用户可以使用 GCC 编译环境,直接生成可运行 Windows 平台上的可执行程序,相比后者体积更小,使用更方便;而 Cygwin 则可以提供一个完整的 Linux 环境,借助它不仅可以在 Windows 平台上使用 GCC 编译器,理论上可以运行 Linux 平台上所有的程序。
有的同学可能会问,x86架构编译的程序不是不能给ARM架构的stm32使用吗,的确如此,这里我们主要是使用MinGW的make
MinGW下载(https://osdn.net/projects/mingw/releases/

打开exe文件
点击Install
(可选)修改安装目录,比如在C盘建一个tools文件夹,最终路径为C:\tools\MinGW,注意:路径中不能出现空格,否则后续会出现无法Debug的问题
点击Continue
全部选项点击-> Mark for installation

6.点击左上角的Installation -> Apply changes -> Apply
7.完成后如图所示

安装可能需要等待一段时间,如果安装过程中有部分无法下载,可以点击重试,也可以直接跳过继续安装其它部分,没有关系,因为之后如果有需要,可以重新启动这个下载器,重新下载。
8.将bin文件夹加入到系统变量中的Path

9.打开cmd,输入 gcc -v

若显示以上内容,代表安装成功
如果安装不能成功,可以参考其他教程
也可以直接下载我上传到百度云盘的mingw_w64,然后解压缩到前面创建的C盘的tools文件夹下
链接:https://pan.baidu.com/s/1iVNaAbc0sfnqseW-YYWuSw?pwd=1234 提取码:1234
CMake下载(https://cmake.org/download/)
选择Windows x64 Installer,按默认安装即可

在x86架构(即PC)编译的程序不能在ARM架构的stm32上运行,必须使用ARM的交叉编译工具链
在这里下载(https://developer.arm.com/downloads/-/gnu-rm)
选择windows压缩包格式

可以解压到前面创建的tools文件夹中,并将bin文件夹添加到系统变量Path
打开cmd输入 arm-none-eabi-gcc -v

出现以上提示代表安装完成
OpenOCD(https://gnutoolchains.com/arm-eabi/openocd/),选择最新版本下载即可
这里可以解压到前面创建的tools文件夹中
终于到了主角Clion,关于软件的获取,大学生可以使用学信网的认证申请学生许可,不是大学生可以尝试30天试用,淘宝有奇技淫巧,其它的就看大家各显神通了
官网下载(https://www.jetbrains.com/clion/)
1.首先随便创建一个项目进入
2.点击 文件->设置
3.点击 插件,安装Chinese (Simplified) Language Pack / 中文语言包

4.点击构建、执行、部署->工具链

a.点+创建新工具链
b.命名为MinGW-STM32
c.工具集定位到mingw文件夹
d.C编译器、C++编译器以及调试器定位到前面安装的交叉编译工具链gcc-arm-none-eabi的bin文件夹里面找到对应的exe文件
e.其它保持默认,Clion会自动匹配(若CMake没找到,可能需要自己定位)
5.点击CMake,检查工具链和生成器是否是刚刚设置的,若不是则修改


有两种方法,可以在新建工程时选择嵌入式->STM32CubeMX,也可以从STM32CubeMX中创建,这里我们选择后者
1.打开STM32CubeMX,创建工程,这个相信大家都比较熟悉
2.重点:Project Manager -> Project -> Toolchain / IDE 要选择STM32CubeIDE
3.Generate Code
4.打开Clion 点击打开 选择刚刚创建的工程 确定

5.进入工程后,创建一个config文件夹,里面创建一个文件config.cfg,这个是OpenOCD的配置文件

6.里面输入
如果你选择stlink,输入
# 选择下载器 source [find interface/stlink.cfg] transport select hla_swd # 选择板子 source [find target/stm32f1x.cfg] adapter speed 10000
如果你选择daplink,输入
# 选择下载器 interface cmsis-dap transport select swd # 选择板子 source [find target/stm32f1x.cfg] adapter speed 10000
7.点击右上角 编辑配置

8.选择配置文件

9.定位到工程,选中刚刚创建的cfg文件

10.现在应该可以正常进行编译、烧录、debug了

正常编译效果

正常烧录效果

正常Debug效果,比如在main函数设置断点
