如何配置 Visual Studio Code 以使用 STM32CubeMX 构建和调试 STM32 项目 - Windows 10

问题描述 投票:0回答:4

我是 STM32 编程领域的新手,并且已经尝试寻找合适的 IDE 有一段时间了。我知道所有其他 IDE,例如 KeilIAR,但目前购买它们只是为了学习的成本对我来说太高了。

我已经开始使用 Visual Studio Code 来完成越来越多的开发工作,我认为这将是一个很好的用于 STM32 开发的 IDE。过去几天我在网上找到了很多关于如何配置 IDE 来构建 STM32 项目的示例,但它们似乎都缺少我正确编译项目所需的重要信息。真是令人沮丧

是否有关于如何设置 Visual Studio Code 以与 STM32CubeMX 和 ARM 工具链配合使用的完整设置指南?或者有一个示例项目可以作为我学习的基础吗?

只是一些背景信息,我知道如何使用STM32CubeMX生成基础项目以及相关的makefile,我还安装了最新的GNU-Tools-Arm-Embedded。

stm32 visual-studio-code microcontroller cubemx
4个回答
11
投票
  1. 安装GNU Arm Embedded工具链并将其bin文件夹添加到您的PATH环境变量中。
  2. 您还需要一个
    make
    来执行 makefile,因此请下载 Make for Windows。最简单的方法是下载二进制文件并将其提取到系统上的某个位置。将其 (
    C:\make-3.81-bin\bin
    ) 添加到您的 PATH 中。
  3. 创建一个STM32CubeMX项目并选择
    Makefile
    作为工具链/IDE。
  4. 此时,您只需在项目根文件夹中使用
    make
    即可构建生成的项目。
  5. 如果在 Visual Studio Code 中打开项目,则可以使用其终端进行构建,也可以创建 Visual Studio Code 任务来执行
    make
    命令。您也可以将您的任务绑定到热键以节省一些时间。
  6. 要调试,最简单的方法是安装 Cortex-Debug Visual Studio Code 扩展。按照说明配置您的调试会话。

8
投票

不久前我也有同样的问题,但没有找到我真正喜欢的东西。因此,我为 VSCode 创建了STM32,它是 VSCode 的扩展,可与 STM32CubeMX 生成的文件配合使用,并为您设置构建和调试。


1
投票
有一个 python 脚本库可以做到这一点,它最近发布了,并提供了优秀的文档,经过测试,我可以说它的工作原理与广告中所宣传的一样。

VSCode STM32 IDE

这个过程非常简单:

    使用STM32CubeMX导出文件
  1. Cpen VSCode 文件夹并将其另存为工作区
  2. 将脚本
  3. "ideScripts" directory
    复制到您的项目文件夹
  4. 运行update.py
这是有关其工作原理的视频:

VSCode STM32 IDE - 入门


1
投票
@Bence Kaulics 已经给出了非常好的答案,在此基础上添加了我最近的发现。

  1. make
     命令在 VS Code 终端中对我不起作用。为了解决这个问题,我安装了 Microsoft 的“Makefile Tools”扩展。
  2. 指令链接不起作用,因此我添加了如何配置 J-Link 调试的步骤。
-> 安装 Cortex-调试扩展。 -> 从

Segger 下载并安装 J-Link 软件。 -> 如果您想查看外围寄存器,请获取SVD 文件。 -> 编辑 launch.json 文件(参见下面的代码)。 -> 设置您的可执行文件、路径和设备。

{ "version": "0.2.0", "configurations": [ { "cwd": "${workspaceRoot}", "executable": "./build/STM32F103RBT6_Test1.elf", "name": "Debug Microcontroller", "request": "launch", "type": "cortex-debug", "servertype": "jlink", "serverpath": "C:/Program Files/SEGGER/JLink/JLinkGDBServerCL.exe", "armToolchainPath": "C:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2021.10/bin", "device": "STM32F103RB", "interface": "swd", //"serialNumber": "", // if Multiple Debuggers attached "runToMain": true, "svdFile": "${workspaceRoot}/device/STM32F103xx.svd", } ] }
    
© www.soinside.com 2019 - 2024. All rights reserved.