VSCode+gcc+CubeMX=优雅的编译STM32

VSCode+CubeMX = 优雅的编译STM32

前言

基于原文章 配置CLion + STM32CubeMX开发环境 - 哔哩哔哩 (bilibili.com)

使用过程中有出现过编译器失效的问题,并且由于是和谐版的,对于一些其他用途不够友好,于是我决定搭建一个完全开源 完全免费好用的编译环境,希望能帮助到正在解决问题的你,以下是对本次环境搭建的记录。

1.先决条件

请参考 配置CLion + STM32CubeMX开发环境 - 哔哩哔哩 (bilibili.com) 根据文章搭建好gcc + mingw64 + openocd 的环境变量配置,本次关于安装这些环境变量配置就不再赘述,将CLion替换成VSCode,即下图框选的不再需要安装。
在这里插入图片描述

首先需要make环境,其实上面已经安装好的,只需要一点小小的改动即可,找到mingw64的环境路径,找到如下的文件

在这里插入图片描述
复制一份并重新命名为 make即可
在这里插入图片描述

然后 win+R,输入CMD调出终端,输入 make -v,输出以下文字表示 make 环境安装好了

在这里插入图片描述

然后下载安装VSCode Visual Studio Code - Code Editing. Redefined

在这里插入图片描述

一直下一步就好了
在这里插入图片描述

这一步可以根据喜好勾选上,勾选上之后就可以在文件目录右键打开了

在这里插入图片描述

一路下一步即可,如果需要修改路径,请根据喜好自行修改。

在这里插入图片描述

安装好后直接打开

在这里插入图片描述

需要中文的话可以在插件哪里搜索 Chinese

在这里插入图片描述

选择 install 然后重启VSCode即可

在这里插入图片描述

再在插件那里搜索 C/C++,前面三个插件全部安装,安装好后点击选择我的默认编译器会跳出如下选择项,选择第一个即可。

在这里插入图片描述

再在插件那里搜索 makefile,安装Makefile Tools

在这里插入图片描述

此时可以关闭VSCode,然后打开STM32CubeMX开始创建第一个工程

在这里插入图片描述

以STM32F103C8T6为例

在这里插入图片描述

首先点击System Core,Debug模式设置为Serial Wire ,防止下载一次之后SW口被禁,第二次下载时提示找不到设备。

在这里插入图片描述

点击RCC选择高速时钟和低速时钟源 ,根据需求选择即可

在这里插入图片描述

直接点击图形界面的PC13引脚,将PC13设置为GPIO_Output模式,因为最小系统板上有LED连接在PC13上,可以用于环境搭建的调试 。
在这里插入图片描述

在这里插入图片描述

然后就是时钟的一些设置,这个根据自己工程实际应用场景设置就行,也可以如下图设置

在这里插入图片描述

进入 Project Manager,对项目名称和IDE做配置

在这里插入图片描述

首先点击 Code Generator,勾选上 “Generate peripheral ***”这个选项,该选项是为了将所创建的文件以单个文件保存,而不是将所有函数放在 main.c 里面。

在这里插入图片描述

项目名称随意命名,但是Toolchain/IDE需要选择 Makefile,这点很重要。

在这里插入图片描述

直接点击GENERTE CODE即可

在这里插入图片描述

然后点击 Open Folder,打开文件夹
在这里插入图片描述

再在该文件夹空白处鼠标右击,点击“通过Code打开”

在这里插入图片描述

如果在安装时没有勾选下面红框内容,那么上面得到鼠标右击可能不会出现“通过Code打开”

在这里插入图片描述

那就直接手动打开 VSCode,并选择“打开文件夹”,找到项目所在文件夹并打开

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

勾选信任即可

在这里插入图片描述

双击 makefile 文件,需要对此文件做一些修改

在这里插入图片描述

点击终端,输入 make 然后回车,看看输出有没有报错

在这里插入图片描述

一般从 CubeMX 直接生成的工程不会报错的,除非安装环境有问题。安装环境请参考 配置CLion + STM32CubeMX开发环境 - 哔哩哔哩 (bilibili.com)

在这里插入图片描述

请查看build文件夹下是否有以下文件,如果有,那么恭喜你已经已经完成 99%了,如果不需要DAPLink下载或者ST-link下载的话,就可以直接这样用了。

在这里插入图片描述

修改 Makefile文件使用openocd下载

在 Makefile 里面找到 all:并且在.bin之后添加“ openocd”

在这里插入图片描述

如下图,使用DAPLink下载

openocd:
​    openocd -f DAPLink.cfg -c "tcl_port disabled" -c "gdb_port disabled" -c "tcl_port disabled" -c "program $(BUILD_DIR)/$(TARGET).elf" -c reset -c shutdown

在这里插入图片描述

如下图使用ST-Link下载

openocd:
​    openocd -f ST-Link.cfg -c "tcl_port disabled" -c "gdb_port disabled" -c "tcl_port disabled" -c "program $(BUILD_DIR)/$(TARGET).elf" -c reset -c shutdown

在这里插入图片描述

ctrl+s保存

CFG文件创建

在 Makefile文件同级目录下新建一个文件命名为 DAPLink.cfg

复制以下文本到DAPLink.cfg

# choose st-link/j-link/dap-link etc.\
# adapter driver cmsis-dap
# board:板卡配置,各种官方板卡
# 路径在OpenOCD安装目录的share\openocd\scripts下:
# interface:仿真器类型配置,比如ST-Link、CMSIS-DAP等都在里面
# target:芯片类型配置,STM32F1xx、STM32L0XX等等都在里面
# 设置好配置文件之后,就可以点击下载或者调试按钮进行下载和在线调试了。
# 在配置文件中不要加reset_config srst_only这一句,会导致下载失败,这一句是指示系统重启的,删除不影响下载。
    source [find interface/cmsis-dap.cfg]
    transport select swd
# 0x10000 = 64K Flash Size
# 0x100000 = 1024k Flash Size
# set FLASH_SIZE 0x100000
    source [find target/stm32f1x.cfg]
# download speed = 10MHz
adapter speed 10000000

ST-Link.cfg 文件创建同理,复制以下文本到ST-Link.cfg

# choose st-link/j-link/dap-link etc.\
# adapter driver cmsis-dap
# board:板卡配置,各种官方板卡
# 路径在OpenOCD安装目录的share\openocd\scripts下:
# interface:仿真器类型配置,比如ST-Link、CMSIS-DAP等都在里面
# target:芯片类型配置,STM32F1xx、STM32L0XX等等都在里面
# 设置好配置文件之后,就可以点击下载或者调试按钮进行下载和在线调试了。
# 在配置文件中不要加reset_config srst_only这一句,会导致下载失败,这一句是指示系统重启的,删除不影响下载。
    source [find interface/stlink.cfg]
    transport select hla_swd
# 0x10000 = 64K Flash Size
# 0x100000 = 1024k Flash Size
# set FLASH_SIZE 0x100000
    source [find target/stm32f1x.cfg]
# download speed = 10MHz
adapter speed 10000000

#后面的表示注释,删除也不会影响到下载

第四章

使用 DAPLink/ST-Link 接上开发板,并打开main.c,修改如下,表示PC13 每500ms闪烁一次

在这里插入图片描述

ctrl+s保存之后点击终端

输入 make 并回车,显示以下信息则表示生成成功,可以看到开发板上PC13的小灯隔500ms闪烁一次。
在这里插入图片描述

<think>好的,用户的问题是关于如何在VSCode中配置和使用STM32 CubeMX。我需要先理清楚用户的需求。他们可能正在寻找一个将VSCode的编辑优势与CubeMX的配置功能结合起来的开发环境。根据提供的引用,用户已经知道使用EIDE插件和GCC工具链,但需要具体的步骤指导。 首先,我应该确认用户是否已经安装了必要的软件,比如VSCodeCubeMXGCC工具链。然后,步骤可能包括通过CubeMX生成代码,再在VSCode中配置项目。需要提到EIDE插件的安装和配置,以及编译和调试的设置。另外,用户可能关心如何利用VSCode的智能提示和调试功能,这部分需要详细说明。 还要注意引用中的信息,比如引用[1]提到VSCode的编辑和调试优势,引用[2]提到使用EIDEGCC开发。需要将这些内容自然地融入到回答中,确保步骤清晰,用户能够跟随操作。同时,生成的相关问题要围绕可能的后续疑问,比如环境搭建问题、调试技巧或替代工具比较。</think>### 如何在 VSCode 中配置和使用 STM32 CubeMX 以下是分步配置流程,结合STM32CubeMX生成代码和VSCode的编辑调试功能: --- #### **1. 安装必要工具** - **STM32CubeMX**:用于生成初始化代码和硬件配置[^1]。 - **VSCode**:安装插件`Embedded IDE (EIDE)`(用于工程管理)和`C/C++`(语法支持)。 - **GCC工具链**:例如`arm-none-eabi-gcc`,用于编译STM32程序[^2]。 --- #### **2. 使用STM32CubeMX生成工程** 1. 新建工程,选择目标芯片型号。 2. 配置时钟、外设和引脚(如GPIO、UART等)。 3. 在`Project Manager`中设置: - **Toolchain/IDE**:选择`Makefile`(避免依赖特定IDE)。 - 生成代码时会自动生成`Makefile`和`STM32CubeMX`配置的源文件。 --- #### **3. 在VSCode中配置EIDE** 1. **创建EIDE工程**: - 打开VSCode,按`Ctrl+Shift+P`,输入`EIDE: Create New Project`。 - 选择`Empty Project`,指定工程目录(与CubeMX生成的目录一致)。 2. **添加源文件**: - 右键工程目录,选择`Add Source Files`,添加CubeMX生成的`Core/Src`、`Core/Inc`等文件夹。 3. **配置编译工具链**: - 在EIDE设置中,选择`GCC`工具链路径(例如`arm-none-eabi-gcc`)。 - 设置链接脚本(CubeMX生成的`.ld`文件)和启动文件(`startup_xxx.s`)。 --- #### **4. 编译与调试** 1. **编译**: - 在EIDE界面点击`Build`,工具会自动调用`Makefile`或`GCC`编译代码。 - 若报错,检查路径配置或依赖文件是否遗漏。 2. **调试配置**: - 安装`Cortex-Debug`插件。 - 创建`launch.json`,配置调试器(如ST-Link)和固件路径(`.elf`文件)。 - 通过VSCode的调试界面启动,可实时查看变量、内存和寄存器[^1]。 --- #### **5. 关键优势** - **智能代码提示**:VSCode的`C/C++`插件提供实时语法检查和补全。 - **高效调试**:`Cortex-Debug`支持断点、外设状态监控和内存查看[^1]。 - **灵活扩展**:可集成`Git`版本控制或其他插件优化工作流。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值