VS Code + STM32扩展工具:打造AI辅助的现代嵌入式开发环境
以前做STM32开发,大多数人的第一反应肯定是装个Keil MDK,打开工程直接编译烧录完事。但这两年我越来越觉得,这套传统工作流在代码编辑、版本管理、代码补全,尤其是AI辅助编程方面,太拖后腿了。Keil的编辑器用起来像是2005年的东西,面对复杂一点的工程管理,体验很吃力。所以当VS Code搭配上合适的插件和工具链,嵌入式的开发体验直接提升一个量级,也算是我个人目前最推荐的“嵌入式软件AI编程”落地方式。
这篇文章我会把整套“VS Code + STM32扩展工具”的安装和配置过程,掰开了揉碎了讲清楚。不光告诉你装什么,还会解释为什么这么装,中间有哪些坑是官方文档不会说的。无论你是刚从Keil转过来的老手,还是直接用VS Code入门的新手,照着这篇走一遍,本地环境基本就能跑起来。而且,更关键的是,把AI编程工具(比如Continue、Cline,或者国产的Codex接DeepSeek等)接入进来,你就能在VS Code里直接让AI帮你写寄存器配置、生成初始化代码、检查逻辑错误了。
1. 为什么STM32开发开始转向VS Code
先别急着下载安装,我们先把思路理一理。如果你平时只用Keil,可能觉得“能用就行”。但你把Keil和其他工具放在一起横向比较,差距就会非常明显。
1.1 传统IDE的舒适区与痛点
STM32的经典开发环境无非是Keil MDK、IAR EWARM,或者是ST自家基于Eclipse的STM32CubeIDE。大部分工程师的入门是从Keil开始的,因为它资料多、上手快。可遇到大型工程,痛点就很刺眼:
- 代码编辑体验不佳。补全功能弱,跳转定义有时候还会莫名其妙失灵。代码一多,滚动查找的效率很低。
- 版本管理别扭。虽然Keil有SVN集成选项,但实际操作起来还是习惯到文件系统里右键,总归不够顺手。
- 界面老旧,多窗口分屏支持差。一边看代码一边看手册非常痛苦。
- 对AI插件几乎零支持。这点是最致命的。你没法在一个主流AI编程环境里直接操作Keil工程。
1.2 VS Code凭什么能替代传统工作流
VS Code本质是一个“编辑器加轻量IDE框架”,它通过插件机制把编译、调试、代码补全全部接管过来。它在嵌入式开发中的优势,我自己体会下来主要是这几点:
第一,启动速度快,界面响应流畅。VS Code打开一个STM32工程,体感上比Eclipse系快很多,日常编辑完全不卡顿。
第二,插件生态完善。C/C++插件提供代码补全和定义跳转;Cortex-Debug插件配合OpenOCD或J-Link,提供完整的调试体验;CMake Tools插件解决构建系统问题;Remote SSH插件还能让你直接编辑和编译Linux服务器或树莓派上的交叉编译工程。
第三,Git集成深度好。你在VS Code里能直接看到一行代码是谁在什么时候改的,做代码审查、回退历史,都比在Keil里舒服太多。
第四,AI编程插件的无缝嵌入。比如Continue插件可以自由选择模型商,你可以接DeepSeek的API、通义千问的API,也可以接本地的Ollama模型。Cline插件则可以直接一边对话一边帮你改源码、执行编译命令,甚至能自动修复报错。这套东西,在传统IDE里根本实现不了。
1.3 这套方案的适用人群
如果你属于以下几类人,这套方案非常值得你投入时间:
- 想深入使用AI辅助编程写STM32项目,但又不愿意放弃本地工具链的人。
- 觉得Keil编辑代码体验太差想“搬家”的人。
- 需要用CMake管理跨平台嵌入式工程、或者需要远程开发的人。
- 学生党做课设、毕设,想用一个更现代化的工具内卷。
当然,夸张一点说,任何使用STM32做嵌入式开发的人,都值得花一个下午把环境搭好。
2. 安装VS Code与基础环境配置
这一节会比较像一个手把手教程。先装VS Code本体,再把语言和基础插件配置好。
2.1 VS Code下载安装的关键选项
VS Code直接去官网下载就行。Windows系统下载User Installer 64位版本,安装过程一路Next。但有两个选项尤其注意:
-
在“选择其他任务”页面,务必勾选“添加到PATH(添加至路径)”。这关系到后面命令行中使用
code命令的便利性。 - 建议勾选“通过Code打开”操作菜单,方便在工程文件夹右键打开VS Code。
装完之后打开VS Code,左侧栏像个“神灯”一样的图标就是扩展市场。快捷键是
Ctrl+Shift+X
。
2.2 必装基础插件清单
在搜索框里搜索并安装以下几个插件,这是后续所有操作的地基:
- 中文(简体)语言包:搜索“Chinese”,安装这个插件后右下角会提示重启,重启后界面变成中文。
- C/C++(ms-vscode.cpptools):这是微软官方的C/C++扩展,提供语法高亮、智能感知、代码跳转和调试。必装,不装的话看代码等于看纯文本。
- CMake Tools:STM32CubeMX生成的工程可以选CMake工具链,装这个插件后可以直接在VS Code里配置、编译、烧录。
- Cortex-Debug:这是嵌入式调试的利器。配合OpenOCD、J-Link、ST-Link等调试服务器,能在VS Code里做断点调试、查看寄存器、监测变量。
- Serial Monitor:串口监视插件。嵌入式开发频率最高的调试手段就是串口打印,有这个插件就不用另开串口工具了。
- Remote-SSH:如果你后续要远程编译或调试,这个插件可以让你像操作本地一样编辑远程代码。
安装完后,可以在扩展搜索框下面看到“已启用”标签,确认这些插件没有报错。
2.3 工作区和用户设置
VS Code的配置分为“用户设置”和“工作区设置”。用户设置是全局的,建议把以下这些基础项配上:
打开设置快捷键
Ctrl+,
,在右上角切换到
settings.json
编辑模式,加入以下内容:
{
"editor.fontSize": 16,
"editor.formatOnSave": true,
"editor.renderWhitespace": "all",
"files.encoding": "utf8",
"files.eol": "\n",
"C_Cpp.default.compilerPath": "C:/ST/STM32CubeIDE_1.15.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0/tools/bin/arm-none-eabi-gcc.exe",
"cmake.configureOnOpen": true
}
注意,
C_Cpp.default.compilerPath
要填你自己电脑上arm-none-eabi-gcc.exe的绝对路径,这个路径在下一节装完工具链后就有了。这一步配置的意义在于:VS Code需要知道用什么编译器来解析代码里的宏定义和头文件,配置正确后,代码下方那些红色波浪线就会大面积消失。
3. STM32扩展工具套件安装与工具链剖析
VS Code本身只是一副骨架,它要能编译STM32工程,必须依赖外部工具链。很多人装完VS Code兴冲冲打开工程,结果一编译全是“arm-none-eabi-gcc: not found”,这就是因为你还没装ARM交叉编译工具链。
3.1 装齐三大件:编译器、构建工具、调试服务器
**ARM GNU Toolchain(arm-none-eabi-gcc)**是必须的第一件工具,它负责把C代码编译成ARM Cortex-M处理器的机器码。有三种获取方式:
第一种是装STM32CubeIDE时自带的工具链。如果你之前装过CubeIDE,那你机器上大概率已经有ARM GCC了。去这个路径找一下:
C:\ST\STM32CubeIDE_xxx\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.xxx\tools\bin
把它加入系统环境变量PATH即可。
第二种是直接到Arm官网下载“Arm GNU Toolchain”的Windows安装包。装完后也会自带bin目录。
第三种是如果你使用的是MSYS2或MinGW,可以在MSYS2的包管理器里安装
arm-none-eabi-gcc
。但新手我不推荐这么做,路径和依赖关系容易出问题。
验证是否装好,打开一个新的CMD窗口(注意装完要新开窗口才能刷新PATH),输入:
arm-none-eabi-gcc --version
能打印出版本号就说明工具链就绪。
CMake与Make工具
是第二件。STM32CubeMX生成的工程可以选“CMake”或“Makefile”两种构建方式。我用CMake比较多,因为CMake Tools插件在VS Code里集成度最好,所以建议装CMake。CMake在Windows下装好后要确保
cmake
命令在PATH里。如果你生成的工程是Makefile类型,那Windows下还需要装一个GNU Make,一般是MinGW或MSYS2提供的。
OpenOCD 是第三件,它是开源的调试与烧录服务器。VS Code里Cortex-Debug插件本身不直接控制ST-Link或J-Link硬件,而是通过OpenOCD作为中间桥梁。你可以从GitHub上OpenOCD的发布页面下载Windows版解压即可,解压后的bin目录同样加入PATH。
到这里,工具链三件套齐了。打开CMD依次验证:
arm-none-eabi-gcc --version
cmake --version
openocd --version
三条命令都能输出版本,才算把基础环境打结实。
3.2 STM32专属扩展插件作用详解
在扩展市场搜索“STM32”,会看到一个名为“STM32 VS Code Extensions”的官方扩展包。装这个收益很高,它不是一个插件,而是一个集合包,里面包含了:
- STM32CubeMX集成:安装后可以在VS Code内部直接点击生成CubeMX工程,不用在CubeMX和VS Code之间来回切换。
- STM32的工程导入工具:可以导入.ioc文件、生成的CMake工程等。
- 一些代码辅助功能:如寄存器定义跳转、外设初始化代码片段。
同时我建议再搜索安装一个“LinkerScript”插件,它能让链接脚本(.ld文件)高亮和语法检查,这个文件是STM32内存布局的关键,语法错误排查起来很痛苦,有这个插件能省不少眼睛。
3.3 环境变量配置与路径管理经验
Windows下配置环境变量有一处容易踩坑:系统变量里的PATH是有长度上限的,如果你额外装了很多工具链,建议新建一个用户级别的变量,比如
STM32_TOOLCHAIN_PATH
,然后把这个变量指向工具链的公共父目录,再把
%STM32_TOOLCHAIN_PATH%\bin
等子目录逐个加入PATH。
还有个经验:在配置OpenOCD和STM32CubeMX的路径时,千万不要用中文目录,也尽量不要带空格。比如
C:\Users\张三\OpenOCD
就很容易在调试时出现莫名其妙找不到路径的错误。原则上,整个工具链安装目录最好统一放在类似
D:\EmbeddedTools
这种简单英文路径下。
4. 从CubeMX到VS Code:首个示例工程编译烧录
工具链都装齐了,接下来最核心的一步:把CubeMX生成的工程在VS Code里完整跑一遍,从编译到烧录到调试,整个过程走通。
4.1 用STM32CubeMX生成CMake工程
打开STM32CubeMX,我们以一个最常见的芯片STM32F103C8T6为例。新建工程,选好芯片型号,在“System Core”里配置一下RCC(高速外部时钟HSE选择Crystal/Ceramic Resonator),在“PC13”引脚上配置一个GPIO为输出模式,用来控制板载LED。其他配置先用默认值,生成的工程只求能跑。
关键的步骤在“Project Manager”选项卡:
- Toolchain / IDE这一项,选择“CMake”。这是VS Code生态最顺滑的构建系统。
- 项目名称建议用英文,不要有空格。
- 项目位置,同样建议英文路径。
点击GENERATE CODE生成工程。
4.2 在VS Code中导入并配置编译
用VS Code打开刚才生成的工程文件夹。如果CMake Tools插件正常工作,左下角状态栏会出现一个CMake相关的按钮(通常显示当前编译器或构建类型)。
第一次打开工程,CMake Tools会提示你选择Kit(编译器工具链)。如果你安装的ARM GCC和CMake都是标准路径,通常会自动检测到一个类似“GCC for arm-none-eabi”的选项,选中它即可。
如果没自动检测到,手动点击状态栏的Kit按钮,在弹出的列表里选择“扫描工具链”,让VS Code重新搜索。再不行,就需要手动指定工具链文件。在.vscode目录下新建一个settings.json,内容:
{
"cmake.configureEnvironment": {
"CMAKE_MAKE_PROGRAM": "D:/EmbeddedTools/CMake/bin/cmake.exe"
},
"cmake.cmakePath": "D:/EmbeddedTools/CMake/bin/cmake.exe",
"cmake.generator": "Ninja"
}
注意如果你用的生成器是Ninja,Windows下需要额外下载Ninja并加入PATH。不想装Ninja的话,可以把generator改成“Unix Makefiles”,然后用系统里的GNU Make。我的建议是直接装Ninja,它在Windows下的编译并行度最高,速度最快。
配置好Kit和生成器后,按
Ctrl+Shift+P
,输入“CMake: Configure”,让插件读取CMakeLists.txt生成构建系统。然后按
Ctrl+Shift+P
,输入“CMake: Build”,即可开始编译。
正常编译结束后,在
build
目录下会生成
.elf
、
.bin
、
.hex
文件,这就说明编译链路完全打通了。
4.3 配置烧录与调试:tasks.json与launch.json
编译能过,只算成功了一半。真正嵌入式开发最关键的是烧录和调试。VS Code通过两个文件完成这个任务:
-
tasks.json:定义一些外部命令任务,比如调用OpenOCD进行烧录。 -
launch.json:定义调试会话,Cortex-Debug插件按照这个配置启动调试器。
在
.vscode
目录下新建
tasks.json
,加入一个烧录任务:
{
"version": "2.0.0",
"tasks": [
{
"label": "stm32-flash",
"type": "shell",
"command": "openocd",
"args": [
"-f", "interface/stlink.cfg",
"-f", "target/stm32f1x.cfg",
"-c", "program build/YourProject.elf verify reset exit"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
这段配置的意思是:用ST-Link接口驱动,目标芯片配置是STM32F1系列,把编译生成的ELF文件烧进去,校验后复位运行。你如果用的是J-Link,把interface配置文件换成
jlink.cfg
即可。注意
program
后面跟的程序路径要和你工程里生成的文件名一致。
调试配置
launch.json
这样写:
{
"version": "0.2.0",
"configurations": [
{
"name": "Cortex Debug",
"cwd": "${workspaceFolder}",
"executable": "${workspaceFolder}/build/YourProject.elf",
"request": "launch",
"type": "cortex-debug",
"servertype": "openocd",
"configFiles": [
"interface/stlink.cfg",
"target/stm32f1x.cfg"
],
"searchDir": [],
"showDevDebugOutput": "none",
"svdFile": "${workspaceFolder}/STM32F103C8Tx.svd"
}
]
}
svdFile
对应STM32芯片的系统视图描述文件(SVD),有它之后,调试时外设寄存器值就能直接以可读格式显示,在“外设寄存器”窗口里看懂寄存器位非常方便。CubeMX生成的工程里通常不自动带SVD文件,需要自己从ST官网或SDK里拷贝到工程目录。
配好以后,按
Ctrl+Shift+B
执行烧录任务,按
F5
启动调试会话。看到代码在main函数入口处停下来,说明整套环境彻底跑通。
4.4 解决C/C++插件头文件红色波浪线问题
很多人从Keil转过来,遇到的第一大障碍就是整个工程全是红色波浪线,到处都是include路径找不到的错误。这其实是C/C++插件不知道你的头文件在哪。
在
.vscode
目录下新建
c_cpp_properties.json
,内容如下:
{
"configurations": [
{
"name": "STM32",
"includePath": [
"${workspaceFolder}/Core/Inc",
"${workspaceFolder}/Drivers/STM32F1xx_HAL_Driver/Inc",
"${workspaceFolder}/Drivers/STM32F1xx_HAL_Driver/Inc/Legacy",
"${workspaceFolder}/Drivers/CMSIS/Device/ST/STM32F1xx/Include",
"${workspaceFolder}/Drivers/CMSIS/Include"
],
"defines": [
"USE_HAL_DRIVER",
"STM32F103xB"
],
"compilerPath": "C:/.../arm-none-eabi-gcc.exe",
"cStandard": "c11",
"intelliSenseMode": "linux-gcc-arm"
}
],
"version": 4
}
这里的关键是:
includePath
要覆盖CubeMX生成工程中Core和Drivers目录下的所有头文件路径;
defines
里要加上
USE_HAL_DRIVER
和
STM32F103xB
这种芯片型号宏,否则HAL库源码里的条件编译会被跳过,各种函数都标红。配置好之后重载窗口(
Ctrl+Shift+P
,输入Reload Window),红色波浪线就会大幅减少。
如果你用的是自定义的库,只需要把自己库的头文件目录也加进来就行。这里有一个进阶技巧:把C/C++插件设置里的“C_Cpp.intelliSenseEngine”改成“Tag Parser”,它对大型工程的解析速度更快,但代价是精度略低。我自己的经验是,如果工程特别大,用Tag Parser体验反而好。
5. 让AI编程介入STM32开发流程
标题里带着“AI编程”,这才是很多人关注的重点。工具链搭好了、编译烧录调试都通了,接下来就是让AI成为你的“结对编程搭子”。
5.1 AI在嵌入式开发里到底能帮什么忙
很多人觉得AI写代码只适用于Python或Web前端,跟单片机不搭边。实际上AI在嵌入式领域我能用到的场景非常多:
一是硬件寄存器配置代码的生成。你告诉它“使用TIM2输出PWM,频率20kHz,占空比50%”,它能直接生成对应时基和比较寄存器的配置值。而且会提醒你注意预分频器和自动重装载值的计算是否溢出。
二是HAL库函数的接口查询。HAL库函数参数多、命名长,频繁翻手册和头文件很耗时。直接问AI“怎么用HAL_TIM_PWM_Start_DMA启动定时器PWM并配置DMA”,它基本能给出可用代码。
三是代码错误排查。把编译报错信息粘贴进AI对话框,它能解释错误的可能原因,并给出修改建议。尤其是链接错误(undefined reference)这类,AI分析符号命名和链接脚本也挺在行。
四是为代码写注释和文档。嵌入式工程的可读性通常较差,让AI帮你给函数加注释、说明入参出参含义,非常省时间。
5.2 主流的AI插件接入方式
目前VS Code里常用的AI编码插件有几个流派,我实际使用后的区别如下:
- Continue(推荐入门):开源免费,支持配置多种模型,比如本地Ollama、云端DeepSeek API、Kimi API等。它是“问答式”的,选中代码后可以和AI讨论、让它改代码或补注释,你确认后再手动应用。
- Cline(半自动/全自动):它的特点是能直接读写工程文件、执行终端命令。也就是说,你告诉它“去编译,报错就自动修”,它真的会自己编译、看报错、改代码,再重新编译。对嵌入式工程,能自动执行cmake和build任务,效率很高。
- GitHub Copilot:目前体验最好的代码补全工具,但没法自定义模型,而且需要付费。国内访问问题也麻烦,不太建议作为主力。
- 国产平台的AI插件:比如通义灵码、CodeGeeX等,对中文和国内模型支持很好,注册就送额度,搭配STM32开发完全够用。
以Continue插件为例,安装后在设置里填入一个兼容OpenAI接口的模型API。打开扩展设置,在
~/.continue/config.json
里配置模型厂商和Key:
{
"models": [
{
"title": "DeepSeek Coder",
"provider": "openai",
"model": "deepseek-coder",
"apiBase": "https://api.deepseek.com/v1",
"apiKey": "你的APIKey"
}
]
}
配置完成后,选中一段代码,按
Ctrl+I
呼出对话框,直接问它:“这段代码的HAL_TIM_PWM_Start在哪里调用合适?”它就会基于当前代码上下文回答。
5.3 实操案例:让AI帮你扩展一个功能
我用一个实际场景演示一下完整闭环。假设你已经有了一个CubeMX生成的基础工程,现在想加一个“长按按键3秒进入低功耗模式”的功能。
传统做法是:打开按键GPIO配置、手动配置EXTI中断、写消抖逻辑、配置进入STOP模式的寄存器……这一套流程至少需要看手册翻代码半小时。
用AI辅助的做法是这样:
-
在Continue对话框里告诉AI左右上下文:“我在STM32F103C8T6上,使用HAL库,工程是CubeMX生成的。帮我实现一个按键长按3秒进入STOP模式的函数。按键接在PA0引脚,低电平有效。请给出完整的按键中断回调函数和进入STOP模式的代码。”
-
AI会给出建议代码,包括
HAL_GPIO_EXTI_Callback的实现、HAL_PWR_EnterSTOPMode的调用方式,甚至提示你需要提前配置PWR时钟使能。 -
你手动在CubeMX里把PA0配置为外部中断,生成代码后,把AI提供的逻辑放到合适的位置。
-
编译烧录。如果中途报错,直接把报错信息粘给AI,它能帮你修正。
这个过程,我实际做下来,从需求到可运行代码,基本在10分钟以内。而这种需求在传统的Keil工作流里,至少需要研究寄存器手册大半天。
不过在享受AI带来的便利时,有几个原则要记住:
- AI生成的代码一定要自己check一遍。寄存器配置的误差很容易被忽略,比如预分频算错、时钟源选错、忘记使能中断等。
- 涉及安全关键的系统,比如电机控制、电源管理,不要在无人review的情况下直接使用AI生成代码。
- 给AI喂需求时,尽量提供完整的上下文:芯片型号、HAL库还是标准外设库、你当前工程的引脚分配、期望的时钟频率。信息越全,AI的答案越准。
6. 常见问题与排查技巧:我的避坑实录
环境装多了,遇到的各种幺蛾子也就多了。这一节把我踩过的坑和排查经验整理成一个速查表,希望能帮你少走弯路。
6.1 环境配置与插件使用问题速查
| 现象 | 可能原因 | 我的排查方法与解决方案 |
|---|---|---|
| 编译时报“无法将‘arm-none-eabi-gcc’识别为cmdlet…” | 工具链未加入PATH | 检查PATH中是否包含工具链bin目录,新开CMD验证arm-none-eabi-gcc --version |
| CMake配置时报“No CMAKE_C_COMPILER could be found” | CMake没找到交叉编译器 | 重新选择CMake Kit,或者在settings.json中指定CMAKE_C_COMPILER为arm-none-eabi-gcc路径 |
| 点击烧录任务没反应 | tasks.json路径或文件名错误 | 检查tasks.json中program参数指定的ELF文件名是否跟build目录下生成的一致 |
| 调试启动后连接不上目标板 | ST-Link驱动问题或线路连接问题 | 先看OpenOCD日志,确认USB设备是否被识别;更新ST-Link驱动;确认接线无误 |
| 头文件满屏红色波浪线 | includePath未正确配置 | 按4.4节方法配置c_cpp_properties.json,确认defines中包含USE_HAL_DRIVER和芯片型号宏 |
| 中文路径编译报错 | 工具链不支持中文路径 | 将整个工程和工具链移动到纯英文路径下 |
| 调试时外设寄存器窗口不显示 | 缺少SVD文件 | 在launch.json中配置svdFile路径 |
| 串口监视器乱码 | 波特率不匹配 | 确保VS Code串口插件设置的波特率与单片机端代码一致 |
6.2 我强烈建议你踩一下的“环境排雷”顺序
按照我的经验,新手最容易在“先装什么后装什么”上糊涂,导致最后配置非常混乱。建议的安装顺序是:
- 先装VS Code,基础配置好。
-
再装ARM GCC工具链,验证
arm-none-eabi-gcc --version。 -
再装CMake和Ninja(或Make),验证
cmake --version。 - 再装OpenOCD,并确认它与ST-Link能正常通信。
- 然后在VS Code扩展市场安装C/C++、CMake Tools、Cortex-Debug等插件。
- 最后再打开CubeMX生成的工程,进行编译烧录调试验证。
- 调试稳定后,再按需接入AI插件。
这个顺序的原因是:VS Code扩展插件的安装不依赖外部工具,但插件的配置验证依赖编译和调试顺利跑通。如果你是倒着装,一旦出问题就很难判断是VS Code的问题还是外部工具的问题。
6.3 几个容易被忽略的细节
第一,开机后如果你用任务管理器看到VS Code后台有多个进程,别急着杀掉,那是它正常的多进程架构。但如果你安装了太多不必要的扩展,确实会影响启动速度,建议在“已启用”里定期清理不常用的。
第二,打开工程时留意VS Code底部状态栏的CMake工具是否显示当前是“Debug”构建类型。想编译优化后的release固件,切换构建类型即可。
第三,新版OpenOCD的配置文件路径和旧版有细微差异,如果你用的配置文件失效,检查一下interface目录下是
stlink.cfg
还是
stlink-v2.cfg
。我遇到过老教程写stlink-v2.cfg,而新版OpenOCD只提供了stlink.cfg的情况。
第四,如果需要开发STM32,但电脑上只有一块J-Link OB板,在OpenOCD配置文件里使用的是
interface/jlink.cfg
,同时注意J-Link需要驱动支持才能被OpenOCD正确识别,一般需要单独装一个SEGGER J-Link软件套件。
最后关于AI插件,有人说“AI写嵌入式代码不可靠”,我用下来的感受是:不可靠的是不干活的人,以及没有给AI足够上下文的人。你能把工程的芯片型号、HAL库版本、当前引脚分配、期望行为讲清楚,AI生成代码的可参考性非常高。这个时代,嵌入式工程师完全可以不改变原来的开发习惯,但最好学会在VS Code这个现代编辑器里,跟AI配合着写代码。
这套环境我已经用了快两年,从最初的抗拒到现在的离不开,本质上是因为它把嵌入式开发从“能用”提升到了“好用”的层次。按这篇教程操作完,你的VS Code就不再只是一个代码查看器了,而是一个真正的STM32开发平台。后续我还会继续分享在VS Code里集成各种AI插件做嵌入式编程的细节,比如怎么让AI自动处理编译报错、怎么用自然语言生成芯片初始化代码等,欢迎持续关注。
更多推荐


所有评论(0)