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闪烁一次。
在这里插入图片描述

  • 14
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用 VSCode 编译 STM32 源码之前,需要先安装以下工具: 1. ARM GCC 编译器:用于编译 STM32 项目的程序代码。 2. ST-Link 软件:用于将编译好的程序代码下载到 STM32 开发板上。 3. STM32CubeMX:用于生成 STM32 项目的代码框架和初始化代码。 接下来,按照以下步骤进行操作: 1. 安装 C/C++ 扩展程序:在 VSCode 中搜索并安装 "C/C++" 扩展程序,以便在 VSCode 中编写和调试 C/C++ 代码。 2. 配置编译器路径:打开 VSCode,进入 "File" -> "Preferences" -> "Settings",在搜索框中输入 "C_Cpp.default.compilerPath",然后将 ARM GCC 编译器的路径添加进去。 3. 配置调试器路径:同样在设置中搜索 "C_Cpp.default.debuggerPath",将 ST-Link 调试器的路径添加进去。 4. 创建 STM32 项目:使用 STM32CubeMX 创建一个 STM32 项目,并生成代码框架和初始化代码。 5. 打开项目:打开 VSCode,进入 "File" -> "Open Folder",选择 STM32 项目所在的文件夹。 6. 创建 build 目录:在项目文件夹中创建一个 build 文件夹。 7. 修改 launch.json 文件:在 VSCode 中打开项目文件夹,并在 ".vscode" 文件夹中创建一个名为 "launch.json" 的文件。将以下代码添加到文件中: ``` { "version": "0.2.0", "configurations": [ { "name": "Debug STM32", "type": "cortex-debug", "request": "launch", "cwd": "${workspaceFolder}", "executable": "${workspaceFolder}/build/${workspaceRootFolderName}.elf", "device": "stlink", "svdFile": "${workspaceRoot}/STM32F103C8.svd", "servertype": "stlink", "configFiles": [ "${workspaceRoot}/.gdbinit" ] } ] } ``` 其中,"executable" 指定了编译生成的 ELF 文件的路径,"svdFile" 指定了 STM32 芯片的 SVD 文件路径,用于在调试时显示寄存器的值。 8. 修改 tasks.json 文件:在 ".vscode" 文件夹中创建一个名为 "tasks.json" 的文件,并将以下代码添加到文件中: ``` { "version": "2.0.0", "tasks": [ { "label": "build STM32", "type": "shell", "command": "make -C ${workspaceFolder}/build", "group": { "kind": "build", "isDefault": true }, "problemMatcher": { "owner": "cpp", "fileLocation": [ "relative", "${workspaceFolder}/build" ], "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } } } ] } ``` 其中,"command" 指定了编译 STM32 项目的命令。 9. 编译和调试:在 VSCode 中打开项目文件夹,按下 "Ctrl + Shift + B" 编译项目。编译完成后,按下 "F5" 开始调试。 以上就是使用 VSCode 编译 STM32 源码的步骤。需要注意的是,在编译和调试之前,需要在 STM32CubeMX 中正确配置项目的参数和引脚映射关系。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值