手把手教你使用vscode开发stm32!
开发工具配置篇迎接新时代--使用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

相关新闻

Java synchronized关键字详解:从入门到原理

Java synchronized关键字详解:从入门到原理

Java synchronized 关键字详解:从入门到原理(2026最新视角) synchronized 是 Java 中最基础、最重要的内置同步机制,也是面试和实际开发中最常被问到的并发原语之一。 一、synchronized 能解决什么问题?(…

2026/7/6 14:29:47 阅读更多 →
提示工程架构师晋升难?因为你没搞懂这套「成长地图」

提示工程架构师晋升难?因为你没搞懂这套「成长地图」

提示工程架构师晋升难?因为你没搞懂这套「成长地图」 一、引言:为什么你离「提示工程架构师」还差一步? 在2023年「生成式AI爆发」的浪潮中,提示工程(Prompt Engineering) 从「AI领域的小众技巧」变成了「所有企业数字化转型的核心能力」。从智能客服的多轮对话到代码助…

2026/7/4 23:24:15 阅读更多 →
惊叹!提示工程架构师让区块链与提示系统结合焕发新活力

惊叹!提示工程架构师让区块链与提示系统结合焕发新活力

《提示工程区块链:架构师如何用“会思考的合约”激活去中心化应用新活力?》 一、引言:区块链的“硬伤”与提示系统的“软助”,如何破局? 1. 痛点引入:当区块链遇到“动态需求”,智能合约也会“卡…

2026/7/5 10:37:52 阅读更多 →

最新新闻

分析报告】量身定制:基于大数据的行业痛点与蓝海机遇挖掘

分析报告】量身定制:基于大数据的行业痛点与蓝海机遇挖掘

【分析报告】量身定制:基于大数据的行业痛点与蓝海机遇挖掘 深夜,你盯着电脑屏幕上密密麻麻的行业数据,从国家统计局到各大咨询公司的白皮书,资料下载了十几个G,PPT做了几十页,但老板那句“所以&#xff0…

2026/7/6 17:27:07 阅读更多 →
ReVanced Integrations 完全指南:掌握 YouTube 增强插件的核心组件库

ReVanced Integrations 完全指南:掌握 YouTube 增强插件的核心组件库

ReVanced Integrations 完全指南:掌握 YouTube 增强插件的核心组件库 【免费下载链接】revanced-integrations 🔩 ReVanced Integrations containing classes to be merged by ReVanced Patcher 项目地址: https://gitcode.com/gh_mirrors/re/revanced…

2026/7/6 17:27:07 阅读更多 →
Redis-Lua在Web开发中的应用:构建高性能Lua后端服务的实战案例

Redis-Lua在Web开发中的应用:构建高性能Lua后端服务的实战案例

Redis-Lua在Web开发中的应用:构建高性能Lua后端服务的实战案例 【免费下载链接】redis-lua A Lua client library for the redis key value storage system. 项目地址: https://gitcode.com/gh_mirrors/re/redis-lua Redis-Lua是一个纯Lua编写的Redis客户端库…

2026/7/6 17:24:58 阅读更多 →
如何快速集成SourceEditor到你的iOS应用:从安装到基础使用的完整指南

如何快速集成SourceEditor到你的iOS应用:从安装到基础使用的完整指南

如何快速集成SourceEditor到你的iOS应用:从安装到基础使用的完整指南 【免费下载链接】source-editor A native source editor for iOS and macOS, written in Swift 项目地址: https://gitcode.com/gh_mirrors/so/source-editor SourceEditor是一个专为iOS和…

2026/7/6 17:24:57 阅读更多 →
5个关键问题:为什么Python开发者需要Neomodel来高效操作Neo4j图数据库

5个关键问题:为什么Python开发者需要Neomodel来高效操作Neo4j图数据库

5个关键问题:为什么Python开发者需要Neomodel来高效操作Neo4j图数据库 【免费下载链接】neomodel An Object Graph Mapper (OGM) for the Neo4j graph database. 项目地址: https://gitcode.com/gh_mirrors/ne/neomodel Neomodel是Neo4j图数据库的官方推荐Py…

2026/7/6 17:22:56 阅读更多 →
终极指南:如何用Ice彻底掌控你的macOS菜单栏

终极指南:如何用Ice彻底掌控你的macOS菜单栏

终极指南:如何用Ice彻底掌控你的macOS菜单栏 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice 你是否曾为macOS菜单栏上拥挤不堪的图标感到烦恼?菜单栏图标越来越多&#xff0c…

2026/7/6 17:20:55 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻