开发工具配置篇迎接新时代--使用vscode开发stm32已经2026年了你是否还在使用古老的keil5的调试呢是否还在为keil5复制粘贴代码到聊天式ai再粘贴回来而烦恼呢快快加入vscode开发stm32的大部队接受光荣的进化吧目录开发工具配置篇迎接新时代--使用vscode开发stm32前言所有依赖的软件百度网盘链接以及配套b站手把手讲解视频一、下载cubemx以及对应stm32的hal库二、下载vscode以及插件stm32 for vscodemakefiel三、stlink驱动安装四、 配置开发环境配置环境变量关于launch.json文件关于tasks.json文件开始调试stm32 svd文件本篇文章主要参考湖南大学robomaster跃鹿战队的电控开源部分.Doc/VSCodeOzone使用方法.md · HNUYueLuRM/basic_framework - Gitee.com前言本篇文章主要使用vscode cubemx平替keil5实现快速开发、实时可视化变量全局、可以查看寄存器内容、copilot辅助开发....支持stlinkjlinkdaplink调试器暂时没有找到纯靠vscode的实时可视化参数波形图功能的插件如果大家还有其他好用的方案欢迎讨论噢~所有依赖的软件百度网盘链接以及配套b站手把手讲解视频可能网络原因导致一些安装无法完成所以这边提供所用到的所有包根据需要安装即可通过网盘分享的文件all_in_one.zip链接: https://pan.baidu.com/s/12brC2bPmu9wWa2h-VgIZmg?pwd9xah 提取码: 9xah--来自百度网盘超级会员v3的分享b站视频链接https://www.bilibili.com/video/BV1ZMfGBrEFy/?vd_sourcef553a12b04c16a678ddc0064cc04563c一、下载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点击右边的新建即可新建变量ctrlv粘贴三个bin的路径如下图根据自己的文件位置来配置完成之后win r在弹出的窗口输入cmd回车粘贴如下指令运行/* by yours.tools - online tools website : yours.tools/zh/dns.html */ arm-none-eabi-gcc -v如果出现类似下图输出就代表成功打开vscode 进入到项目文件夹前面创建的cubemx项目文件夹ctrl 打开设置搜索stm32 for vscode点击在settings.json中编辑,完善如下路径settings.json(根据自己的路径配置)/* by yours.tools - online tools website : yours.tools/zh/dns.html */ { 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文件在左边栏找到这个图标点击一下里面的创建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/?LinkId733558 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