STM32_一文看懂!VSCode导入STM32项目及AI辅助开发

目录

一、环境准备(Win/Mac通用)

[1. 安装必备软件(VSCode)](#1. 安装必备软件(VSCode))

[2. 安装STM32CubeMX避坑提示](#2. 安装STM32CubeMX避坑提示)

特别重要:配置EIDE

[1.在左边菜单栏找到 EIDE插件](#1.在左边菜单栏找到 EIDE插件)

[2.点击 安装实用工具](#2.点击 安装实用工具)

3.依次安装

添加编译器

配置环境

编译下载

二、创建STM32工程

[1. 用CubeMX生成代码](#1. 用CubeMX生成代码)

[2. VSCode导入EIDE项目](#2. VSCode导入EIDE项目)

三、EIDE构建配置

构建配置步骤如图中12345所示,里面的内容无需修改,点击构建,顺利通过。(6烧录见后)

四、烧录(ST-Link/OpenOCD)

[烧录工具没有集成到 EIDE 安装包中,因此在使用烧录功能之前需要安装相应的 flasher工具。](#烧录工具没有集成到 EIDE 安装包中,因此在使用烧录功能之前需要安装相应的 flasher工具。)

[1. STLink类型](#1. STLink类型)

[2. CMSIS-DAP类型(OpenOCD)](#2. CMSIS-DAP类型(OpenOCD))

五、Proteus仿真验证STM32软件开发

六、智能编码

七、常见问题解决

八、魔法不能使用时候的方法

[cursor提示模型不可用Model not available解决方法:](#cursor提示模型不可用Model not available解决方法:)

方法1

方法2


想摆脱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)

  • C/C++:代码高亮与智能提示
  • Cortex-Debug:单片机调试插件,支持ARM调试
  • Embedded IDE (EIDE):工程管理神器
  • cursor编译器中的配置
  • cursor编译器中将菜单设置为竖向菜单
cpp 复制代码
workbench.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用于ARM嵌入式开发,MinGW-w64用于Windows应用开发。

  • 烧录/调试工具:JLink、STLink、OpenOCD、PyOCD

Windows版OpenOCD调试工具:https://gnutoolchains.com/arm-eabi/openocd/

2. 安装STM32CubeMX避坑提示

  • 安装路径不能有中文或空格

  • Java环境:CubeMX需Java支持,必须先安装JRE(Java Runtime Environment)JAVA运行环境,再安装软件。

https://gitcode.com/open-source-toolkit/413bd?utm_source=highlight_word_gitcode&word=stm32cubemx&from_link=237615e92f68c8740cb1c37d66ac0182

  • 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库实操的参考视频链接**:**

https://www.bilibili.com/video/BV1Jk4y1F7bA/?spm_id_from=333.999.0.0&vd_source=3486b75e4ca69792ff97b5f8b51b17b1

2)关键设置

  • Project ManagerToolchain/IDE 选择 MDK-ARMMakefile

  • 勾选 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 或者其他大模型通过对话和上下文参考方式解决实际编程需求,助力嵌入式开发。

七、常见问题解决

  1. 编译报错"undefined reference"

    检查 Makefile 中是否包含所有源文件路径

    c_cpp_properties.json 中添加缺失的宏定义(如__GNUC__

  2. 下载失败"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

相关推荐
学嵌入式的六子18 小时前
如何使用VScode开发STM32【喂饭级教程】-全过程讲解
c语言·ide·vscode·stm32·单片机·嵌入式硬件
MDY121920 小时前
IDEA推送文件到GIT失败,显示:无法执行Git:无法识别Git可执行文件的版本:无响应
java·ide·git·intellij-idea
YuQiao030321 小时前
华科学位论文——驯服word公式编辑器(不是mathtype的)
编辑器·word
应用市场1 天前
插件加载机制深度解析——从浏览器扩展到VSCode插
ide·vscode·编辑器
Chase_______1 天前
【Linux指南】:vi编辑器
linux·运维·编辑器
Peter·Pan爱编程1 天前
VSCode Remote-SSH 的使用以及连接失败(Bad permissions)完整排错指南
vscode·ubuntu·ssh
不爱学英文的码字机器1 天前
用 openJiuwen 构建 AI Agent:从 Hello World 到毒舌编辑器
人工智能·redis·编辑器
吴老弟i1 天前
基于 VSCode 实现 Python 开发与调试 | 环境配置搭建 | PIP Anaconda
vscode·python·pip
周小码1 天前
CodeEdit:Electron编辑器的原生替代品?
javascript·electron·编辑器