VSCode是一个非常好用的工具,首先免费,个人和商用都免费。这就解决了很多问题,因为现在国内对版权越来越重视了。所以告别那些破解的keil等工具吧,涉及版权问题不说,还有可能有病毒,木马等风险。
现在来总结一下VSCode如何实现在线调试STM32代码的方法。先总结Windows平台,后面再来总结Mac OS平台。
1、安装VSCode
这个不用说了
2、安装windows-arm-none-eabi扩展
这是一个交叉编译工具链,使用这个工具将代码编译成可以在STM32上运行的文件。
直接在VSCode的Extension窗口中,搜索windows-arm-none-eabi,安装,截至我目前的情况是,需要安装0.1.2版本,0.1.6版本编译在最后copy的时候会出错。
方法是,先安装搜索到的版本,安装完成后,点设置按钮,选择 Install Another Version。就可以选择旧版本安装。

image.png?imageView2/2/w/1000
3、安装openocd
https://gnutoolchains.com/arm-eabi/openocd/ 下载最新版本,解压备用。
4、安装msys
msys是为了提供shell运行环境,避免Makefile不能执行。
msys是MinGW的一部分,先下载MinGW安装器,安装完成后运行。选择MSYS,然后选择右边最上面的msys-base-bin,选中后会自动选中其他一系列的package,然后应用修改。

image.png?imageView2/2/w/1000
安装完成后,会在C:MinGWmsys1.0bin看到安装这些文件。主要看有没有rm,mkdir这些。
5、配置环境变量
打开“高级系统设置”--“环境变量”,找到用户变量里的“path”,“编辑”,分别添加上面安装的三个工具的路径。

image.png?imageView2/2/w/1000
6、添加VSCode调试配置文件
切换到调试窗口,添加launch.json配置文件。

选择C++(GDB/LLDB)

选择arm-none-eabi-gcc.exe build and debug active file

自动创建了一个launch.json文件,有一些默认的配置

修改部分参数
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
'version': '0.2.0',
'configurations': [
{
'name': '可以改成自己的项目名',
'cwd': '${workspaceRoot}',
'request': 'launch',
'type': 'cppdbg',
'program': '${workspaceRoot}/build/xxx.elf', // 改成自己的项目生成的elf文件路径
'stopAtEntry': false,
'externalConsole': false,
'MIMode': 'gdb',
'miDebuggerPath': 'C:\Users\xxx\.vscode\extensions\metalcode-eu.windows-arm-none-eabi-0.1.2\bin\arm-none-eabi-gdb.exe', // 改成arm-none-eabi-gdb.exe的路径
'targetArchitecture': 'arm', // 目标架构,改成arm
'preLaunchTask': 'build', // 启动调试之前要执行的任务,这里配置的编译任务,每次调试之前执行一次编译
'setupCommands': [ // 进入GDB以后,自动执行的一些命令
{
'description': '连接GDB Server',
'text': 'target remote localhost:3333',
'ignoreFailures': false
},
{
'description': '选择调试文件(.elf)到gdb',
'text': 'file D:/xxx/build/xxx.elf',
'ignoreFailures': false
},
{
'description': 'Halt',
'text': 'mon halt',
'ignoreFailures': false
},
{
'description': 'Reset MCU',
'text': 'mon reset init',
'ignoreFailures': false
},
{
'description': '下载代码到MCU',
'text': 'load',
'ignoreFailures': false
}
]
}
]
}
到这里,launch.json就配置完成了,下面配置task。task主要有2个,一个编译,一个是启动openocd。
Ctrl+Shift+P,打开VSCode的命令行,输入configure task,选择Tasks:Configure Task -- 回车 -- Create task.json file form template -- 回车 -- Others -- 回车。

image.png?imageView2/2/w/1000

image.png?imageView2/2/w/1000

image.png?imageView2/2/w/1000
自动创建一个task.json文件。

image.png?imageView2/2/w/1000
修改配置文件
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
'version': '2.0.0',
'tasks': [
{
'label': 'build',
'type': 'shell',
'command': 'make',
},
{
'label': 'run openocd',
'type': 'shell',
'command': 'openocd -f interface/stlink.cfg -f target/stm32f1x.cfg' // 这里注意选择和你板子相匹配的配置文件
}
]
}
可以在openocd目录下的share->openocd->scripts下找到interface和target目录,里面有配置文件可以选择。

image.png?imageView2/2/w/1000
到此,所有工作都完成了。
注意,需要先运行启动openocd的任务,然后切换到调试窗口,点击运行即可自动编译,然后烧写,然后运行到断点。

image.png?imageView2/2/w/1000
到此实现VSCode+arm-none-eabi+openocd+msys的在线STM32调试.
上一篇:基于STM32的智能(GPS+NB-IOT)导盲系统
下一篇:stm32填坑之旅一 - stm32f103c8t6点亮板载贴片蓝色LED
推荐阅读最新更新时间:2026-03-24 01:27
- LTC2172CUKG-12、12 位、65Msps 低功耗四通道 ADC 的典型应用电路
- 使用 ROHM Semiconductor 的 BD5339 的参考设计
- 使用 Diodes Incorporated 的 PT8A3517 的参考设计
- LT5527 400MHz 至 3.7GHz 高信号电平下变频混频器的典型应用
- AD5340 并行接口、单电压输出、12 位 DAC 的典型应用
- 30W、-27V、5.8V、5.8V、15V、24V、33V交流转直流多路输出电源
- OP213FSZ-REEL7 低噪声运算放大器电压基准的典型应用
- LT3579/LT3579-1 演示板,升压 / 反相 DC/DC 转换器
- L7815A 光控制器稳压器的典型应用 (Vo(min) = Vxx + VBE)
- 具有关断功能的 LT1086CT-5 5V 稳压器的典型应用

stm32驱动屏IC rm68042
STM32 PMSM FOC 简介
基于STM32G031的测试测量训练平台完成虚拟仪器实现
现代雷达系统的信号设计
BFR340T






京公网安备 11010802033920号