开发工具配置篇:迎接新时代--使用vscode开发stm32
已经2026年了,你是否还在使用古老的keil5的调试呢?是否还在为keil5复制粘贴代码到聊天式ai再粘贴回来而烦恼呢?快快加入vscode开发stm32的大部队接受光荣的进化吧!
目录
- 开发工具配置篇:迎接新时代--使用vscode开发stm32
- 前言
- 所有依赖的软件百度网盘链接以及配套b站手把手讲解视频
- 一、下载cubemx以及对应stm32的hal库
- 二、下载vscode以及插件
- stm32 for vscode
- makefiel
- 三、stlink驱动安装
- 四、 配置开发环境
- 配置环境变量
- 关于launch.json文件
- 关于tasks.json文件
- 开始调试
本篇文章主要参考湖南大学robomaster跃鹿战队的电控开源部分
.Doc/VSCode+Ozone使用方法.md · HNUYueLuRM/basic_framework - Gitee.com
前言
本篇文章主要使用vscode + cubemx平替keil5,实现快速开发、实时可视化变量(全局)、可以查看寄存器内容、copilot辅助开发....
支持stlink,jlink,daplink调试器,暂时没有找到纯靠vscode的实时可视化参数波形图功能的插件
如果大家还有其他好用的方案欢迎讨论噢~
所有依赖的软件百度网盘链接以及配套b站手把手讲解视频
可能网络原因导致一些安装无法完成,所以这边提供所用到的所有包,根据需要安装即可
通过网盘分享的文件:all_in_one.zip
链接: https://pan.baidu.com/s/12brC2bPmu9wWa2h-VgIZmg?pwd=9xah 提取码: 9xah
--来自百度网盘超级会员v3的分享
b站视频链接
https://www.bilibili.com/video/BV1ZMfGBrEFy/?vd_source=f553a12b04c16a678ddc0064cc04563c
一、下载cubemx以及对应stm32的hal库
cubemx官网(需要简单的注册即可):
https://www.st.com/en/development-tools/stm32cubemx.html#get-software
下载完成之后点击
直接在搜索栏搜索你使用的stm32的型号,以f103作为例子
双击要选择的板子即可进入
其余详细的配置可以参考其他教程
主要注意的是:
sys的配置要配置成sw模式,不然会只能烧录一次
导出这边选择makefile
二、下载vscode以及插件
vscode官网:
https://www.st.com/en/development-tools/stm32cubemx.html#get-software
需要安装的vscdoe插件:
点击vscode左侧的这个图标
stm32 for vscode
点击install build tools
出现如上页面即代表安装成功(大约5~15分钟)
如果网络不好口语切换手机热点再次尝试
还不行就直接使用我的百度网盘分享的zip压缩包,建议放到d盘(如果有的话)
makefiel
三、stlink驱动安装
如果你之前没有使用过stlink,请根据如下链接完成stlink驱动的安装
STSW-LINK009 | Software - 意法半导体
根据自己的电脑配置双击以下两个exe中的一个
四、 配置开发环境
配置环境变量
- 在vscode找到最左边的四个方块图标,这里是我们安装拓展的地方
点击之后找到stm32 for vscode
- 打开详情页面-->点击右下角蓝色的缓存文字,打开缓存文件夹
缓存文件夹如下
- 进入@开头的文件夹,如下,我们为了方便,把该文件夹下面所有的东西迁移到D盘(如果有的话),在D盘目录下新建一个文件夹叫stm32tools,把文件全部放进去
迁移路径如下图(因为这个演示的机器没有分d盘,我就放到c盘了)
- 接下来按下win键,在搜索栏搜索环境
点击编辑系统环境变量
点击最下面的环境变量(N)
双击path
点击右边的新建即可新建变量,ctrl+v粘贴三个bin的路径(如下图,根据自己的文件位置来
配置完成之后win + r
在弹出的窗口输入cmd,回车
粘贴如下指令运行如果出现类似下图输出,就代表成功
- 打开vscode 进入到项目文件夹(前面创建的cubemx项目文件夹)
- ctrl + ,打开设置,搜索stm32 for vscode
点击在settings.json中编辑,完善如下路径
settings.json(根据自己的路径配置)- {
- "stm32-for-vscode.openOCDPath": "C:\\stm32tools\\openocd\\0.12.0-7.1\\.content\\bin\\openocd.EXE",
- "stm32-for-vscode.makePath": "C:\\stm32tools\\windows-build-tools\\4.4.1-3.1\\.content\\bin\\make.EXE",
- "stm32-for-vscode.armToolchainPath": "C:\\stm32tools\\arm-none-eabi-gcc\\14.2.1-1.1.1\\.content\\bin",
- "makefile.configureOnOpen": true,
- "cortex-debug.stm32cubeprogrammer": "",
- "cortex-debug.openocdPath": "C:\\stm32tools\\openocd\\0.12.0-7.1\\.content\\bin\\openocd.EXE",
- "cortex-debug.armToolchainPath": "C:\\stm32tools\\arm-none-eabi-gcc\\14.2.1-1.1.1\\.content\\bin",
- }
复制代码 - ctrl + ~
在终端输入make -j12 测试看看能否成功编译,如下图即代表成功编译
关于launch.json文件
在左边栏找到这个图标
<img alt="" loading="lazy">
点击一下里面的创建launch文件
就可以在目录的.vscode文件夹下找到
我们直接复制下面我修改好的stlink的代码(daplink、jlink湖大开源的gitee仓库已经提供)- {
- // 启动调试的快捷键是F5
- "version": "0.2.0",
- "configurations": [
- // 使用dap-link(如无线调试器时的参考配置)
- {
- "name": "STlink",
- "cwd": "${workspaceRoot}",
- "executable": "${workspaceRoot}\\build\\first.elf", // 要下载到调试器的文件,花括号中的是vscode两个预定义的参数
- "request": "launch",
- "type": "cortex-debug",
- //使用J-link GDB Server时必须;其他GBD Server时可选(有可能帮助自动选择SVD文件)
- //支持的设备见 https://www.segger.com/downloads/supported-devices.php
- //svd文件,有这个文件才能查看寄存器的值,每个单片机都不同。可以在以下地址找到https://github.com/modm-io/cmsis-svd-stm32
- //该项目的根目录已经提供了C型开发板使用的外设svd文件
- "svdFile": "./STM32F103.svd",
- "servertype": "openocd", //使用的GDB Server
- "configFiles": [
- "openocd_stlink.cfg", // 配置文件已经在根目录提供,若要修改以此类推,openocd的路径下的share/scripts中有各种写好的配置文件
- ],
- "runToEntryPoint": "main", // 调试时在main函数入口停下
- "preLaunchTask": "build task",//先运行Build任务编译项目,取消注释即可使用
- "liveWatch": {
- "enabled": true,
- "samplesPerSecond": 4
- }
- },
-
- ],
- }
复制代码 配置完成之后在vscode的左侧debug图标即可看到更改配置的stlink的配置
关于tasks.json文件
位置与launch文件一样,没有就新建一个- {
- // See https://go.microsoft.com/fwlink/?LinkId=733558
- "version": "2.0.0",
- "tasks": [
- {
- "label": "build task", // 任务标签
- "type": "shell", // 任务类型,因为要调用mingw32-make,是在终端(CMD)里运行的,所以是shell任务
- "command": "make -j24",// 任务命令,线程数可以根据自己的电脑修改,建议与cpu核数相同
- "problemMatcher": [],
- "group": {
- "kind": "build",
- "isDefault": true
- }
- },
- {
- "label": "download dap",
- "type": "shell", // 如果希望在下载前编译,可以把command换成下面的命令
- "command":"make -j24 ; make download_dap", // "mingw32-make -j24 ; mingw32-make download_dap",
- "group": { // 如果没有修改代码,编译任务不会消耗时间,因此推荐使用上面的替换.
- "kind": "build",
- "isDefault": false,
- },
- },
- {
- "label": "download jlink", // 要使用此任务,需添加jlink的环境变量
- "type": "shell",
- "command":"make -j24 ; make download_jlink", // "mingw32-make -j24 ; mingw32-make download_jlink"
- "group": {
- "kind": "build",
- "isDefault": false,
- }
- },
- {
- "label": "log",
- "type": "shell",
- "command":"JlinkRTTClient",
- "args": [],
- "problemMatcher": [],
- // "dependsOn":[
- // "build task", // 可以添加多个.
- // ]
- // 若使用daplink,则将log任务设置为依赖于jlink launch任务,保证jlink launch任务先于log任务执行
- }
- ]
- }
复制代码 开始调试
到此配置应当已经完成了,接好stlink,连接好stm32后就可以愉快的调试啦,点击绿色的三角形开始编译并烧录到单片机
等待一会后,就会出现下图所示的调试界面
在左侧就是调试常用的一些工具
cortex live watch可以实时查看全局变量的值,只需要点击加号
粘贴需要查看的变量名称
就可以实时查看到变量的值啦
从左到右 第一个是重置reset,暂停,逐过程,单步,单步跳出,重新开始调试,退出
XPERIPHERALS必须配置上面的svd文件才能够看到寄存器内部的值
你也可以优雅的使用copilot工具更快速的开发stm32啦
stm32 svd文件
stm系列svd仓库:
modm-io/cmsis-svd-stm32: CMSIS SVD files for all STM32 devices
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |