- 为什么是CLion
- 安装
- 所需工具、软件
- MinGW
- 简介
- 安装
- 添加环境变量
- MinGW使用
- 测试编译
- 编译test
- 执行
- OpenOCD
- arm-none-eabi-gcc
- cubemx
- java
- :warning:JAVA选择旧一点的版本安装!!!不要更新!!!
- CubeMX
- `.cfg` 文件配置
- clion 安装
- clion 配置
- Git 配置
- 其他问题
- 编译错误问题
- `printf`重定向问题
- 添加文件/目录
- 下载问题
- :warning:注意
- :books:参考文章
- 最后
- 最后的最后
- 最后的最后的最后
做嵌入式开发的人对STM32这个平台应该都是非常熟悉的,在国内尤其流行,很多产品里面都是基于这个平台做的方案。多数人在开发STM32的时候用的都是Keil这个老牌IDE,很大一部分原因是因为大多数人最初是从51单片机学习过来的,51就是基于Keil去开发的,然后迁移到STM32的时候也就沿用下来了。
安装 所需工具、软件稳定一点还是建议,keil5+vscode+vscode的keil插件
- CLion ------- 主角
- STM32CubeMX ------- ST官方力推的自动化配置和代码生成工具
- OpenOCD ------ 调试工具
- gcc-arm-none-eabi -------- 交叉编译工具链
- MinGW -------- 你可以认为这是一个大礼包
- 可能还包括你所使用的调试器的驱动,之前安装过就行。
MinGW(Minimalist GNU for Windows),又称mingw32,是将GCC编译器和GNU Binutils移植到Win32平台下的产物,包括一系列头文件(Win32API)、库和可执行文件。
另有可用于产生32位及64位Windows可执行文件的MinGW-w64项目,是从原本MinGW产生的分支。如今已经独立发展。
MinGW 提供了一套简单方便的Windows下的基于GCC 程序开发环境。MinGW 收集了一系列免费的Windows 使用的头文件和库文件;同时整合了GNU ( http://www.gnu.org/ )的工具集,特别是GNU 程序开发工具,如经典gcc, g++, make等。MinGW是完全免费的自由软件,它在Windows平台上模拟了Linux下GCC的开发环境,为C++的跨平台开发提供了良好基础支持,为了在Windows下工作的程序员熟悉Linux下的C++工程组织提供了条件。
安装Clion需要使用MinGW环境来配置工具链,安装方法如下:
首先去MinGW主页下载最新版本的MinGW: Minimalist GNU for Windows,这是MinGW的安装器:
先把 Basic Setup 里面的组件全部勾选
选择需要安装的组件,右键选择 Mark for Installation ,之后选择 Installation -> Apply Changes 。
然后等待安装(安装挺慢的,建议先去吃个饭)
安装完成(安装不了的建议翻墙(选美国)然后换个时间段再试试)
添加环境变量设置好后重启电脑
最后,输入 gcc -v 测试
MinGW使用 测试编译测试文件test.c,代码如下
#include编译testvoid main() { printf("Hello World!"); }
编译命令如下:
gcc test.c -o test
输出结果为:test.exe
执行输入test回车,结果如下:
OpenOCDOpenOCD是用于对STM32进行下载仿真的工具,是一个开源软件包,Windows版本下从这里下载,下载好解压到一个目录就行,后面会在Clion中链接这个目录:
在CLion中配置OpenOCD的方法:
arm-none-eabi-gccWindows到这里下载:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads,选择ZIP压缩包形式的:
解压到一个文件夹,并把安装目录下的bin文件夹添加到环境变量:
然后重启电脑使得环境变量生效之后可以在命令行里用以下语句测试:
arm-none-eabi-gcc -v
如果有信息输出,那就是装好了。
看看调试会不会出问题,出问题就
cubemx java ⚠️JAVA选择旧一点的版本安装!!!不要更新!!!版本选择安装:https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html
CubeMX是基于Java开发的软件,所以需要先安装Java运行环境,下载地址在这里
CubeMX- 下载地址: 官网下载地址
安装 cubemx ,如果未安装 Java 环境,将会出现报错
安装完成后最后修改一下stm32HAL库的安装位置(默认是在C盘的)
最后就可以选择相应的型号下载了
.cfg 文件配置# 设置调试器为jlink source [find interface/jlink.cfg] # 设置调试器所用接口为SWD transport select swd # 定义Flash大小为64K set FLASH_SIZE 0x10000 # 设置芯片 在 D:OpenOCD-20210729-0.11.0shareopenocdscriptstarget 目录下选择对应的板子 source [find target/stm32f1x.cfg] # download speed = 10MHz # adapter speed 10000 # 设置调试器为st-link source [find interface/stlink.cfg] # 设置调试器所用接口为 hla_swd transport select hla_swd # 定义Flash大小为64K set FLASH_SIZE 0x10000 # 设置芯片 在 D:OpenOCD-20210729-0.11.0shareopenocdscriptstarget 目录下选择对应的板子 source [find target/stm32f3x.cfg] # download speed = 10MHz # adapter speed 10000
也可以添加变量查看
clion 安装直接安装在官网安装对应的版本,然后根据教程来破解就好了,clion是自带有中文插件的,
破解也是以插件+破解码的形式来进行
clion 配置 Git 配置要执行什么操纵直接右键对应的文件就可以了,(虽然我还是觉得提交的话命令行更舒服)
其他问题 编译错误问题- 如果移动了工程文件夹的话,最好打开.ioc文件重新Generate一下再编译,可以解决很多错误。
- 遇到任何CMake相关的报错,一般是由于缓存没有更新引起的,可以在CLion中选Tools-CMake-Reset Cache and Reload Project即可解决。
# 增加C文件时需要使用指令 file(GLOB_RECURSE SOURCES "startup/*.*" "Drivers/*.*" "Core/*.*" "app/encoder/Src/*.*" "base_drivers/Src/*.*" "algorithm/*.*" "bsp/Src/*.*") # 增加 . h头文件时需要使用以下指令 include_directories(SYSTEM algorithm app/ app/encoder/Inc base_drivers/Inc bsp/Inc)下载问题
直接搞的话,大概率是下载不了的,因为 openOCD 只把 Jlink仿真器 当作普通的USB设备来使用,不使用Jlink自带的仿真器驱动程序,如果已安装了 Jlink 仿真器驱动程序,openOCD是识别不到的 。
所以要进行一些操作,具体看这里。
⚠️注意-
上图这种情况选 “Continue(继续)”
-
Java也是,版本不要太新!!!!!!!!
-
路径一定不要有中文!!!!!!!!!!
- 在 CLion 中创建基于 CubeMX 的 STM32 工程
- 【指南】如何在CLion下配置STM32开发环境
- 配置CLion用于STM32开发【优雅の嵌入式开发】
由于不明原因,第一次成功了,但是后面隔了两三周再试试,发现不行了,,,
最后的最后在退了java的版本和cubemx()的版本
发现还是不行,但是!
第二天又试了一下,更新了clion的版本,更新到最新版,2021.1.13再上一个版本应该是
又可以了!
最后的最后的最后更新了cubemx,
依然可以使用clion



