Clion&&STM32环境配置教程(优雅开发STM32)

您所在的位置:网站首页 clion环境配置mingw Clion&&STM32环境配置教程(优雅开发STM32)

Clion&&STM32环境配置教程(优雅开发STM32)

2023-06-13 02:46| 来源: 网络整理| 查看: 265

Clion&&STM32环境配置 1.环境及所需工具 软件环境: Windows 10、11STM32CubeMXClionMinGWOpenOCDarm-none-eabi-gcc 硬件环境: STM32F407VGT6ST-Link下载器 工具安装

STM32CubeMX 这个正常去官网下载最新版的安装就行了:https://www.st.com/en/development-tools/stm32cubemx.html

或者在我的阿里云盘下载:SetupSTM32CubeMX-6.8.1-Win.exe https://www.aliyundrive.com/s/JcKhj7FD4nJ 提取码: up88

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

OpenOCD-20230202-0.12.0 https://www.aliyundrive.com/s/mjmWrYPLUav 提取码: 80xh

MingW

下载地址:MinGW - Minimalist GNU for Windows download | SourceForge.net

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

(最新的Clion、Clion下载网址以及破解网站教程、OpenCd、以及stlink的配置)这些都能到我的阿里云网盘下载:

Clion&&stm32 https://www.aliyundrive.com/s/dqkys6yFNK3 提取码: tj47

(由于云盘限制MinGW和arm-none-eabi-gcc无法分享)

我的建议是把这些所有工具链放到同一路径下方便添加路径!!!

环境配置

img

aaa

这里的路径可以这样操作 在这里插入图片描述

在这里插入图片描述

ccc

Clion配置 中文设置

我的界面是中文是因为在插件下载了中文的插件

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

重启之后就会变成中文了

在这里插入图片描述

工具链配置

找到对应编译器路径

ddd

eee

CMake配置

fff

开发工具配置(STM32CubeMx、OpenOCD)

ggg

可以在Clion里创建CubeMx的工程也可以在CubeMx里建好后使用Clion打开(我个人觉得后者更舒服)

这里演示的是Clion里创建工程然后再打开CubeMx进行修改

在Clion创建STM32CubeMx工程

在这里插入图片描述

最后点击创建

img

这里点击跳过(这里是相应板子的配置)

工程默认创建的是STM32F030的芯片 如果需要更改可以通过打开CubeMx重新选择芯片

image-20230325131908214

CubeMx里面的配置需要自己修改这里就不多赘述了 在这里插入图片描述

IIII

jjj

kkk

lll

回到Clion跳过即可,可以看到已经变成F4了

CubeMx创建工程使用Clion打开

cubeMx配置内容就不多赘述了直接到工程管理界面 在这里插入图片描述

在这里插入图片描述

弹出提示框我们直接打开文件目录就好

在这里插入图片描述

Edit whith Clion

在这里插入图片描述

跳过即可

在这里插入图片描述

Config文件

Config文件可以这样自己添加也可以使用我网盘里的哪个config文件(只适用于STM32F407VGTx使用STLink下载)

mmm

nnn

名字是你自己下载器的名字

文件里内容如下:

# choose st-link/j-link/dap-link etc. #adapter driver cmsis-dap source [find interface/stlink.cfg] #transport select swd transport select hla_swd #这里的stm32f4x.cfg对应的是你的板子的相应芯片型号而不是Link的 source [find target/stm32f4x.cfg] # download speed = 10MHz adapter speed 10000 编辑运行配置

ooo

添加一个配置(OpenCD)

ppp

qqq

rrr

sss

添加文件夹

比如我从其他地方拷贝了一个文件夹到当前工程路径下

image-20230325134919353

然后就会更新

image-20230325134948397

我们还需要在CMakeLists.txt里添加路径

image-20230325135155975

记得重新加载CmakeLists

image-20230325135253070

新版是这样

在这里插入图片描述

image-20230325140729695

现在就可以下到板子上了(可以写个LED闪烁的程序观察效果)

下载成功是这样的(虽然是红色但是确实是下载成功)

在这里插入图片描述

使用printf函数

需要添加以下两个文件

retarget.h #ifndef _RETARGET_H__ #define _RETARGET_H__ #include "stm32f4xx_hal.h" #include #include void RetargetInit(UART_HandleTypeDef *huart); int _isatty(int fd); int _write(int fd, char *ptr, int len); int _close(int fd); int _lseek(int fd, int ptr, int dir); int _read(int fd, char *ptr, int len); int _fstat(int fd, struct stat *st); #endif //#ifndef _RETARGET_H__ retarget.c #include "retarget.h" #include #include #include #include #include #include #include #if !defined(OS_USE_SEMIHOSTING) #define STDIN_FILENO 0 #define STDOUT_FILENO 1 #define STDERR_FILENO 2 UART_HandleTypeDef *gHuart; void RetargetInit(UART_HandleTypeDef *huart) { gHuart = huart; /* Disable I/O buffering for STDOUT stream, so that * chars are sent out as soon as they are printed. */ setvbuf(stdout, NULL, _IONBF, 0); } int _isatty(int fd) { if (fd >= STDIN_FILENO && fd hstatus = HAL_UART_Transmit(gHuart, (uint8_t *) ptr, len, HAL_MAX_DELAY); if (hstatus == HAL_OK) return len; else return EIO; } errno = EBADF; return -1; } int _close(int fd) { if (fd >= STDIN_FILENO && fd HAL_StatusTypeDef hstatus; if (fd == STDIN_FILENO) { hstatus = HAL_UART_Receive(gHuart, (uint8_t *) ptr, 1, HAL_MAX_DELAY); if (hstatus == HAL_OK) return 1; else return EIO; } errno = EBADF; return -1; } int _fstat(int fd, struct stat *st) { if (fd >= STDIN_FILENO && fd RetargetInit(&huart1); while(1) { } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3