使用VScode和EIDE插件开发STM32

使用VScode和Eide插件编译STM32

简介

VSCode(Visual Studio Code)是一款轻量级但功能强大的源代码编辑器,支持多种编程语言和插件扩展。EIDE(Embedded IDE)是 VSCode 的一个插件,专门用于嵌入式开发,支持 STM32 等 ARM Cortex-M 系列微控制器的开发。本文将介绍如何使用 VSCode 和 EIDE 插件来开发 STM32 项目。
##准备工作
在开始之前,请确保你已经安装了以下软件和工具:

Visual Studio Code:下载地址

EIDE 插件:在 VSCode 的扩展市场中搜索并安装 “Embedded IDE”。

安装 EIDE 插件

打开 VSCode。

点击左侧的扩展图标(或按 Ctrl+Shift+X)。

在搜索框中输入 “Embedded IDE”,找到 “EIDE” 插件并点击 “Install” 进行安装。

安装完成后,重启 VSCode。

安装 Cortex-Debug

Cortex

编译环境的配置

扩展里面,右键eide插件,转到设置

Eide Arm INI.Path选项 — 添加 UV4.exe 的路径

我的是 D:\Tools\Keil_v5\UV4\UV4.exe (看自己的keil安装在哪)

EIDE.ARM.Option: Axf To Elf 选项 勾选

之后点击左侧的EIDE插件,点击左下方的操作—安装实用工具

顶部窗口中,点击 Cppcheck、GUN Arm Embedded Toolchain 、OpenOCD Programmer。等待全部下载成功之后,再点击右下角的 Yes

创建项目

点击左侧的EIDE插件,点击 新建项目–内置项目模板–搜STM32F103–命名项目的名称–放在你想储存的位置–之后点击右下角的 YES

此时点击 EIDE 会出现你创建的项目,只需要配置一下 项目支持包、构建配置、烧录配置 即可 。

  1. 芯片支持包:点击旁边的加号“+”之后–选From Repo 等待一下,选择你需要的芯片支持包 比如 STM32F10X 。

  2. 构建配置:选择 GCC 即可,链接脚本路径在你更改 GCC 之后会变化,如果需要 GCC 构建的话,需要去你的项目文件里找到 stm32f1x_64KB_flash.ld 文件,把其文件名称(选中F2)复制即可,前面记得要加 \

  3. 烧录设置:选择 OpenOCD 即可

编译和下载

  1. 位置在项目DEBUG的旁边,鼠标移动过去即可

到此已经结束了

如果你使用的是江科大的标准库,那么在你导入项目的时候配置如下

此外还需要额外去配置一下预处理编译,不然会出现错误:

**#error “Please select first the target STM32F10x device used in your application (in stm32f10x.h file)” **

解决方式:
去stm32f10x.h里面,把预处理宏定义解除注释即可,因为标准库里默认都是把他们注释了。

1
2
3
4
5
6
7
8
9
10
#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL) 
/* #define STM32F10X_LD */ /*!< STM32F10X_LD: STM32 Low density devices */
/* #define STM32F10X_LD_VL */ /*!< STM32F10X_LD_VL: STM32 Low density Value Line devices */
/* #define STM32F10X_MD */ /*!< STM32F10X_MD: STM32 Medium density devices */
/* #define STM32F10X_MD_VL */ /*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices */
/* #define STM32F10X_HD */ /*!< STM32F10X_HD: STM32 High density devices */
/* #define STM32F10X_HD_VL */ /*!< STM32F10X_HD_VL: STM32 High density value line devices */
/* #define STM32F10X_XL */ /*!< STM32F10X_XL: STM32 XL-density devices */
/* #define STM32F10X_CL */ /*!< STM32F10X_CL: STM32 Connectivity line devices */
#endif

例如我使用的是STM32F10X_MD 就要把这行前面的 /* 和 */ 注释掉了 变为 #define STM32F10X_MD /*!< STM32F10X_MD: STM32 Medium density devices */



之后在下载到板子上的时候可能会出错:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Open On-Chip Debugger 0.12.0-rc2-g7a1adfbec (2022-11-06-10:08)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
Info : clock speed 1000 kHz
Info : STLINK V2J27S6 (API v2) VID:PID 0483:3748
Info : Target voltage: 3.239765
Info : [stm32f1x.cpu] Cortex-M3 r1p1 processor detected
Info : [stm32f1x.cpu] target has 6 breakpoints, 4 watchpoints
Info : starting gdb server for stm32f1x.cpu on 3333
Info : Listening on port 3333 for gdb connections
[stm32f1x.cpu] halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08000100 msp: 0x20000400
** Programming Started **
Error: couldn't open c:/Users/Alans/Documents/STM32/vs/build/Target 1/Project.hex
embedded:startup.tcl:1516: Error: ** Programming Failed **
in procedure 'program'
in procedure 'program_error' called at file "embedded:startup.tcl", line 1581
at file "embedded:startup.tcl", line 1516

还要把 构建起选项 — 链接器 —不生成hex/bin文件 取消勾选即可。