CLion+cubemx stm32开发

文章目录

为什么是CLion

做嵌入式开发的人对STM32这个平台应该都是非常熟悉的,在国内尤其流行,很多产品里面都是基于这个平台做的方案。多数人在开发STM32的时候用的都是Keil这个老牌IDE,很大一部分原因是因为大多数人最初是从51单片机学习过来的,51就是基于Keil去开发的,然后迁移到STM32的时候也就沿用下来了。

稳定一点还是建议,keil5+vscode+vscode的keil插件

安装

所需工具、软件

  • CLion ------- 主角
  • STM32CubeMX ------- ST官方力推的自动化配置和代码生成工具
  • OpenOCD ------ 调试工具
  • gcc-arm-none-eabi -------- 交叉编译工具链
  • MinGW -------- 你可以认为这是一个大礼包
  • 可能还包括你所使用的调试器的驱动,之前安装过就行。

MinGW

简介

MinGWMinimalist 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的安装器:

CLion+cubemx stm32开发

先把 Basic Setup 里面的组件全部勾选

选择需要安装的组件,右键选择 Mark for Installation ,之后选择 Installation -> Apply Changes

CLion+cubemx stm32开发

然后等待安装(安装挺慢的,建议先去吃个饭)

CLion+cubemx stm32开发

安装完成(安装不了的建议*(选美国)然后换个时间段再试试)

CLion+cubemx stm32开发

添加环境变量

CLion+cubemx stm32开发

设置好后重启电脑

最后,输入 gcc -v 测试

CLion+cubemx stm32开发

MinGW使用

测试编译

测试文件test.c,代码如下

#include <stdio.h>

void main() 
{
	printf("Hello World!");
}

编译test

编译命令如下:

gcc test.c -o test

输出结果为:test.exe

执行

输入test回车,结果如下:

CLion+cubemx stm32开发

OpenOCD

OpenOCD是用于对STM32进行下载仿真的工具,是一个开源软件包,Windows版本下从这里下载,下载好解压到一个目录就行,后面会在Clion中链接这个目录:

CLion+cubemx stm32开发

CLion中配置OpenOCD的方法:

CLion+cubemx stm32开发

arm-none-eabi-gcc

Windows到这里下载:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads,选择ZIP压缩包形式的:

CLion+cubemx stm32开发

解压到一个文件夹,并把安装目录下的bin文件夹添加到环境变量:

CLion+cubemx stm32开发

然后重启电脑使得环境变量生效之后可以在命令行里用以下语句测试:

arm-none-eabi-gcc -v

如果有信息输出,那就是装好了。

CLion+cubemx stm32开发

看看调试会不会出问题,出问题就

CLion+cubemx stm32开发

cubemx

java

⚠️JAVA选择旧一点的版本安装!!!不要更新!!!

版本选择安装:https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html

CubeMX是基于Java开发的软件,所以需要先安装Java运行环境,下载地址在这里

CLion+cubemx stm32开发

CubeMX

安装 cubemx ,如果未安装 Java 环境,将会出现报错

CLion+cubemx stm32开发

安装完成后最后修改一下stm32HAL库的安装位置(默认是在C盘的)

CLion+cubemx stm32开发CLion+cubemx stm32开发

最后就可以选择相应的型号下载

CLion+cubemx stm32开发

.cfg 文件配置

# 设置调试器为jlink
source [find interface/jlink.cfg]

# 设置调试器所用接口为SWD
transport select swd

# 定义Flash大小为64K
set FLASH_SIZE 0X10000

# 设置芯片 在 D:\OpenOCD-20210729-0.11.0\share\openocd\scripts\target 目录下选择对应的板子
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.0\share\openocd\scripts\target 目录下选择对应的板子
source [find target/stm32f3x.cfg]

# download speed = 10MHz
# adapter speed 10000
CLion+cubemx stm32开发CLion+cubemx stm32开发CLion+cubemx stm32开发

也可以添加变量查看

CLion+cubemx stm32开发

clion 安装

直接安装在官网安装对应的版本,然后根据教程来破解就好了,clion是自带有中文插件的,

破解也是以插件+破解码的形式来进行

clion 配置

CLion+cubemx stm32开发CLion+cubemx stm32开发

Git 配置

CLion+cubemx stm32开发CLion+cubemx stm32开发

要执行什么操纵直接右键对应的文件就可以了,(虽然我还是觉得提交的话命令行更舒服)

其他问题

编译错误问题

  • 如果移动了工程文件夹的话,最好打开.ioc文件重新Generate一下再编译,可以解决很多错误。
  • 遇到任何CMake相关的报错,一般是由于缓存没有更新引起的,可以在CLion中选Tools-CMake-Reset Cache and Reload Project即可解决。

printf重定向问题

添加文件/目录

CLion+cubemx stm32开发
# 增加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)

CLion+cubemx stm32开发

下载问题

直接搞的话,大概率是下载不了的,因为 openOCD 只把 Jlink仿真器 当作普通的USB设备来使用,不使用Jlink自带的仿真器驱动程序,如果已安装了 Jlink 仿真器驱动程序,openOCD是识别不到的 。

所以要进行一些操作,具体看这里

⚠️注意

CLion+cubemx stm32开发

  • 上图这种情况选 “Continue(继续)”

  • Java也是,版本不要太新!!!!!!!!

  • 路径一定不要有中文!!!!!!!!!!

上一篇:PHP Script - 百万级数据脚本执行优化笔记 (PHP Script)


下一篇:正则掌握程度测试题