1. 先决条件

安装和配置软件,也可以直接在我整理的软件包网盘链接中下载:

https://drive.google.com/drive/folders/1fF4zoy1BFcLsoUbE1PcMCxLAGSyxmP0_

1.1. STM32CubeMX

这里下载安装

https://www.st.com/en/development-tools/stm32cubemx.html

1.2. STM32CubeCLT(可选的)

这里下载安装(不安装这个也行的其实)

https://www.st.com/en/development-tools/stm32cubeclt.html

1.3. Clion

这里下载安装和破解

https://www.exception.site

1.4. MinGW

这块地方可以看下面,也可参考这里: https://zhuanlan.zhihu.com/p/26143367916

这里下载安装

https://github.com/niXman/mingw-builds-binaries/releases

找到最底下这个,下载

在这里插入图片描述

解压后,挪到自己喜欢的磁盘位置,然后配置环境变量

在这里插入图片描述
在这里插入图片描述
环境变量填入你的mingw的位置的bin文件夹

在这里插入图片描述

键盘键入 win+r,打开cmd,输入gcc -v,看看是不是配置好了
在这里插入图片描述

有一大堆字就是配置好了

在这里插入图片描述

1.5. arm-none-eabi-gcc

这里下载,https://developer.arm.com/downloads/-/gnu-rm

下拉,找到这两个,两个都能用,一个安装版,一个文件包,这里我选择第二个,下载

在这里插入图片描述

解压后,挪到自己喜欢的磁盘位置,然后配置环境变量,和上述相似的操作

在这里插入图片描述

键盘键入 win+r,打开cmd,输入arm-none-eabi-gcc -v,看看是不是配置好了

有一大堆字就是配置好了

在这里插入图片描述

1.6. OpenOCD

这里下载安装

https://github.com/xpack-dev-tools/openocd-xpack/releases

找到最底下这个,下载

在这里插入图片描述

解压后,挪到自己喜欢的磁盘位置,然后配置环境变量,和上述相似的操作

在这里插入图片描述

键盘键入 win+r,打开cmd,输入openocd -v,看看是不是配置好了

有一大堆字就是配置好了

在这里插入图片描述

2. 配置 Clion

我这里的Clion版本是 2025.2.3,这块也可参考官网文档:https://www.jetbrains.com.cn/help/clion/embedded-stm32.html

首先,确保已安装 STM32CubeCLT 和 STM32CubeMX。

在 CLion 中,导航到 文件(F) | 新建(N) | 项目 并选择 STM32CubeMX 作为您的项目类型:

在这里插入图片描述

然后,您可以按照 新建项目 屏幕上显示的步骤或以下更详细的说明进行操作,或者继续往下看

配置 SRM32Cube等软件的位置

在这里插入图片描述

启动 STM32CubeMX。

在这里插入图片描述

在打开的窗口中,点击 ACCESS TO McU SELECTOR

在这里插入图片描述

搜索 STM32F103C8T6,选择该项目的配置文件后,右上角生成配置

在这里插入图片描述

配置项目路径,注意,选择CMake:

在这里插入图片描述
可选的,勾选分开 h文件和c文件, 好处是可以在其他的自定义的代码文件中,引用hal库中的外设名字

在这里插入图片描述

右上角生成代码,然后Close弹出的运行成功的消息窗口

在这里插入图片描述
回到Clion,选择刚刚配置的工程目录,继续

在这里插入图片描述

左上角勾上,并打开管理工具链

在这里插入图片描述

如果不小心关掉了,可以在文件-设置中打开

在这里插入图片描述

打开管理工具链,第一个是关于MinGW的,第二个和第三个是关于arm-none-eabi-gcc的,确定

在这里插入图片描述
这里选择原生

在这里插入图片描述

项目目录下,或者其他位置也行,根据需要创建 CMSIS_DAP.cfgST_Link.cfg 文件,对应不同类型的烧录器,内容如下

CMSIS_DAP.cfg,就是比较贵的那种,上面有 tx rx 和 SCL等引脚

# choose st-link/j-link/dap-link etc.
#adapter driver cmsis-dap
#transport select swd
source [find interface/cmsis-dap.cfg]
transport select swd
source [find target/stm32f1x.cfg]
# download speed = 10MHz
adapter speed 10000

ST_Link.cfg,就是卖得最便宜那种,没有 tx rx 引脚的

# choose st-link/j-link/dap-link etc.
#adapter driver cmsis-dap
#transport select swd
source [find interface/stlink.cfg]
transport select hla_swd
source [find target/stm32f1x.cfg]
# download speed = 10MHz
adapter speed 10000

在这里插入图片描述

回到 Clion,看看有没有这个,有,点击编辑配置

在这里插入图片描述

如果没有出现,试试下面的方法,或者,重启下 IDE

方法1

在这里插入图片描述

方法2,这几个都试试看

在这里插入图片描述

点击编辑配置后,下拉,找到 OpenOCD

在这里插入图片描述

第二个选择当前项目的Cmake程序,第4个根据需要选择刚创建的 CMSIS_DAP.cfgST_Link.cfg 文件,确定
在这里插入图片描述

配置成功:

在这里插入图片描述

3. 配置 Cube 工程

回到STM32CubeMX,首先,打开 debug 模式。务必,切记,一定要开启 debug 模式,没开导致芯片锁死的话,参考解决方法:

https://blog.csdn.net/H2z1220/article/details/143760394

在这里插入图片描述
接下来,开启时钟,这个高速低速,就是高速低速的意思:

  • 高速模式:外部 8MHz 晶振 + PLL ×9 → SYSCLK = 72MHz
  • 低速模式:内部 LSI 32kHz,用于 RTC 或待机低功耗

个人开发学习选高速,无源晶振(不需要额外通电),如下
在这里插入图片描述
这个单片机嵌入的这个LED灯,是通过PC13的低电平点亮,不是高电平

配置 PC 13 推挽输出,低电平

在这里插入图片描述
在这里插入图片描述

生成代码

在这里插入图片描述

回到Clion,烧录运行

在这里插入图片描述
在这里插入图片描述

点灯成功

在这里插入图片描述

4. 可能的报错

4.1. [aaa.elf] Error 2

可参考:https://blog.csdn.net/weixin_49180600/article/details/145691827

原因是 mingw或arm-none-eabi-gcc等软件的版本太低,新版本等可忽略

解决方法:STM32F103C8TX_FLASH.id括号中写有READONLY的,将括号中的READONLY删掉

4.2 烧录不进去

如果引脚没接错的话,大概率是电压问题,试试调整.cfg文件中的adapter speed,即烧录速度,例如10000调成2000

5. 其他

闲的没事干的,也可以帮我点个关注

https://space.bilibili.com/123772272

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐