目录
[1. 安装必备软件(VSCode)](#1. 安装必备软件(VSCode))
[2. 安装STM32CubeMX避坑提示](#2. 安装STM32CubeMX避坑提示)
[1.在左边菜单栏找到 EIDE插件](#1.在左边菜单栏找到 EIDE插件)
[2.点击 安装实用工具](#2.点击 安装实用工具)
[1. 用CubeMX生成代码](#1. 用CubeMX生成代码)
[2. VSCode导入EIDE项目](#2. VSCode导入EIDE项目)
构建配置步骤如图中12345所示,里面的内容无需修改,点击构建,顺利通过。(6烧录见后)
[烧录工具没有集成到 EIDE 安装包中,因此在使用烧录功能之前需要安装相应的 flasher工具。](#烧录工具没有集成到 EIDE 安装包中,因此在使用烧录功能之前需要安装相应的 flasher工具。)
[1. STLink类型](#1. STLink类型)
[2. CMSIS-DAP类型(OpenOCD)](#2. CMSIS-DAP类型(OpenOCD))
[cursor提示模型不可用Model not available解决方法:](#cursor提示模型不可用Model not available解决方法:)

想摆脱Keil的臃肿界面?用VSCode开发STM32单片机,不仅界面清爽,还能跨平台!本文以STM32F103C8T6为例,手把手教你配置开发环境,AI辅助编码,实现一键编译、下载、调试,从此告别报错烦恼!关注并建议收藏
参考文档:一文看懂!VSCode导入STM32项目及AI辅助开发_vscode stm32-CSDN博客
参考文档2:利用 VsCode + EIDE 进行嵌入式开发_vscode eide-CSDN博客
参考文档3:Proteus仿真STM32F103C8全流程(附代码)
参考文档4:Arm Keil | Keil STM32F1xx_DFP
参考文档5:VSCode搭建STM32标准库开发平台:使用Embedded IDE,保姆式教学。_embedded ide怎么创建一个项目-CSDN博客
参考文档6:stm32之keil开发环境搭建_keild stm32 使用设置-CSDN博客
参考文档7:使用VSCode开发STM32(基于EIDE插件)_vscode eide-CSDN博客
一、环境准备(Win/Mac通用)
1. 安装必备软件(VSCode)
VSCode下载 :官网下载 https://code.visualstudio.com/
插件安装(VSCode扩展商店搜索安装)
Chinese:软件界面英文变中文版,操作秒懂
- C/C++:代码高亮与智能提示
- Cortex-Debug:单片机调试插件,支持ARM调试
- Embedded IDE (EIDE):工程管理神器
- cursor编译器中的配置
- cursor编译器中将菜单设置为竖向菜单
cppworkbench.activityBar.orientation":"vertical"智能编程助手(代码生成/解释/补全/单测)
Tabnine、Lingma、MarsCode AI
通义灵码内置模型:Qwen/DeepSeek-R1/DeepSeek-V3
MarsCode模型:Doubao/DeepSeek-R1/DeepSeek-V3
其他AI编程助手:Fitten Code、Baidu Comate(文心快码)
工具链
ARM GCC编译器 :下载最新版,安装后添加
bin目录到系统环境变量https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm备注:ARM GCC用于ARM嵌入式开发,MinGW-w64用于Windows应用开发。
- 烧录/调试工具:JLink、STLink、OpenOCD、PyOCD
Windows版OpenOCD调试工具:https://gnutoolchains.com/arm-eabi/openocd/
- STM32CubeMX:官网下载,图形化配置生成HAL库标准工程模板
- https://www.st.com.cn/zh/development-tools/stm32cubemx.html
2. 安装STM32CubeMX避坑提示
安装路径不能有中文或空格!
Java环境:CubeMX需Java支持,必须先安装JRE(Java Runtime Environment)JAVA运行环境,再安装软件。
HAL 库 PACK **包:**F0、F1、F3、H7等Cortex内核,都需要对应的PACK包安装。
注意:JDK用于开发Java程序,包含了编译器(如javac)、调试工具(如jdb)、文档生成工具(如javadoc)等开发工具。JRE用于运行已编译的Java程序,提供了运行时环境(JVM)和核心类库------安装STM32CubeMX软件需要的是JRE。
特别重要:配置EIDE
1.在左边 菜单栏找到 EIDE插件
2.点击 安装实用工具
3.依次安装
Cppcheck
GNU Arm Embedded Toolchain
OpenOCD Programmer安装完后相应后面会变成勾 如下图
安装完成后右下角会提示重启
点击OK
重新进入VSCode后
先点EIDE插件
再在左下角找到设置在上方搜索栏输入 elf
勾选 编译完成后将.axf转换为.elf
添加编译器
在左边菜单栏点击 扩展
找到 EIDE
右击 设置
在 Keil5的安装目录 找到
ARMCC
ARMCLANG这两个文件如果没有安装Keil5的可以看我这篇文章
在VSCode中分别添加这两个编译器的路径
配置环境
点击EIDE插件导入项目
选择 MDK
选择 ARM
然后右下角会提示 是否要将该EIDE项目与原来的Keil项目共存于同一目录
可以选择 Yes
但是为了方便后续对工程进行管理
我们选择 No
即建一个新的文件夹 专门用来存放EIDE项目
注意!!
整个项目路径不能有中文
不然后面编译会报错
在原工程文件夹的目录下建一个新的文件夹
点击继续
信任
导入完成后点击EIDE插件
在最上方展开 EIDE PROJECTS
首先添加 芯片支持包
From Repo 是从网上下载
From Disk 是从我们自己的文件中 选择我们选择后者
我这里的工程是基于STM32F103C8T6 的
所以我选择STM32F1xx_DFP
添加成功
选择烧录器
找到 烧录配置
点击最右边的双箭头
选择OpenOCD
它支持ST-Link和DAP-Link 等
我使用的是DAP-Link
更改接口配置
默认是ST-Link
我选择 cmsis-dap.cfg
根据实际情况选择
编译下载
到这里基本上就配置完成
点击下图按键或按F7进行编译
因为我使用的是标准库 ,所以会报错
报错的原因是缺少了宏定义
即缺少 STM32F10x_MD
如果使用的是CubeMX生成的项目直接编译就可以通过
关于这个宏定义可以看看这篇文章
找到 项目属性
预处理宏定义在上方输入 STM32F10x_MD
添加成功
再次进行编译
输入结果显示 build successfully
但是!!!
这个编译输出是错误的
这时如果点击烧录是烧录不了的,会报错
点此按键进行下载
确保已经将电脑 用ST-Link或DAP-Link与开发板连接
不出意外的话会报错
以下是错误的下载输出
解决方法如下
找到 构建配置
点击右边的编辑
全局选项
勾选 Use MicroLIB
链接器
取消勾选 不生成 Hex/Bin 文件
再次编译
以下是正确的编译输出结果
再次点击下载
下载成功!OKay希望这篇文章对你有所帮助
二、创建STM32工程
1. 用CubeMX生成代码
(1)打开CubeMX → 选择芯片型号 STM32F103C8 → 配置时钟、GPIO等外设。------点亮LED灯_STM32CubeMX_HAL库实操的参考视频链接**:**
(2)关键设置
Project Manager → Toolchain/IDE 选择 MDK-ARM 或 Makefile
勾选 Generate peripheral initialization as a pair of .c/.h files,生成外设初始化头文件和源码文件
(3)点击 GENERATE CODE,生成工程文件
2. VSCode导入EIDE项目
- 点击EIDE插件,选择【导入项目】
- 项目类型MDK ARM,导入*.uvprojx 文件
(注意:*.uvproj 代表 C51 项目,*.uvprojx 代表 ARM 项目)
- 上述项目文件为STM32CubeMX软件配置自动生成,获取方式:后台回复【点灯_STM32CubeMX_HAL库】
三、EIDE构建配置
构建配置步骤如图中12345所示,里面的内容无需修改,点击构建,顺利通过。(6烧录见后)
四、烧录(ST-Link/OpenOCD)
烧录工具没有集成到 EIDE 安装包中,因此在使用烧录功能之前需要安装相应的 flasher工具。
1. STLink类型
- 烧录配置:如果下载器为STLink,先点击切换烧录器,选择【STLink for...】,然后点击【6烧录】,右下角会出现在线资源包的安装提示
- 点击【立即安装】在线资源包,保持网络顺畅。
- 安装设备驱动......
- 安装后,重启VS Code软件
- STLink烧录成功的界面
2. CMSIS-DAP类型(OpenOCD)
如果下载器为CMSIS-DAP类型,则需要选择【OpenOCD】,芯片配置为【stm32f1x.cfg】,接口配置为【cmsis-dap-v1.cfg】------见下面烧录成功的界面图。
点击烧录,也会在右下角出现OpenOCD在线安装包资源提示,我忘记截图了。。。点击【立即安装】资源包
OpenOCD如果在VS Code中安装不成功的话,可以点击链接下载后手动安装:https://gnutoolchains.com/arm-eabi/openocd/
- OpenOCD烧录成功的界面
五、Proteus仿真验证STM32软件开发
如果手头没有开发板实物,可以通过Proteus仿真的方式验证嵌入式软件开发效果。可参考该链接,目前文章阅读人数1.5w+Proteus仿真STM32F103C8全流程(附代码)
六、智能编码
上述操作以"HAL库开发点亮LED灯"为例,打通了导入ARM项目、项目编译构建、将代码烧录到开发板 的一系列流程,能够确保在VSCode端确实可以实现STM32单片机的开发。
在后期越来越有难度的嵌入式开发的软件编程中,可以随时在VSCode侧边栏打开 通义Lingma或者MarsCode ,借助 DeepSeek 或者其他大模型通过对话和上下文参考方式解决实际编程需求,助力嵌入式开发。
七、常见问题解决
编译报错"undefined reference"
检查 Makefile 中是否包含所有源文件路径
在 c_cpp_properties.json 中添加缺失的宏定义(如
__GNUC__)下载失败"Could not connect to target"
确认ST-Link驱动安装正确(ST官网驱动)
检查OpenOCD配置文件路径是否正确
八、魔法不能使用时候的方法
cursor提示模型不可用Model not available解决方法:
解决方法:首先不管用哪种方法,你得有个魔法。,需要大家自己找渠道。
cursor对代理的要求比较高,所以一般的小软件不稳定,可能在其他软件上用没问题,但是在cursor中不太行,推荐那种可以开tun模式的软件。
方法1
设置魔法,节点选到国外(香港不行),服务模式打开,开tun。cursor中右上角设置-network改成http2。
重启cursor生效。这个方法几乎100%成功,如果不行,就是节点的问题,更换节点。
有的人开了tun还不生效的原因,一般是服务模式没有开,需要点开安装一下,否则tun模式不生效。cursor终端执行 curl ipinfo.io 命令看看是不是境外IP,境外IP的话,开启TUN模式,重启cursor,直接提问看看能不能使用。
方法2
这个方法需要将http改为1.0或1.0,这会导致生成速度变慢,或着链接不上。
1.节点选择国外
2.重启cursor,用试试,如果还是提示区域限制,说明代理不支持http2,进行下一步。
2.cursor右上角设置-network-改成http1.0,或http1.1。有的代理在http2模式下不生效,需要有这个步骤。
因cursor版本原因,有的版本没有这个选项。需要在其他地方设置。
文件-首选项-设置(快捷键:ctrl+逗号),搜索disable,勾选disable http2,重启cursor








































































