CLion+cubemx stm32开发

文章目录

为什么是CLion

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

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

安装

所需工具、软件

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

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

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

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

image-20210821230658394

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

image-20210822102331560

添加环境变量

image-20210821232154098

设置好后重启电脑

最后,输入 gcc -v 测试

image-20210822102511794

MinGW使用

测试编译

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

#include <stdio.h>

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

编译test

编译命令如下:

gcc test.c -o test

输出结果为:test.exe

执行

输入test回车,结果如下:

145902-f026e9f9421c047b

OpenOCD

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

CLion中配置OpenOCD方法

arm-none-eabi-gcc

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

img

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

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

arm-none-eabi-gcc -v

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

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

image-20210928162133861

cubemx

java

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

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

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

image-20210822181941851

CubeMX

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

3.2_0

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

image-20210822182511755

image-20210822182533862

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

image-20210822182647062

.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

image-20210824011255096

image-20210824004547201

image-20210824004746838

也可以添加变量查看

image-20210824005109329

clion 安装

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

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

clion 配置

image-20210904135642638

image-20210904135738087

Git 配置

image-20210907221743913

image-20210907222037939

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

其他问题

编译错误问题

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

printf重定向问题

添加文件/目录

image-20210907221618464

# 增加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)

image-20210907221432834

下载问题

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

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

⚠️注意

image-20210910163547024

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

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

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

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...