当前位置: 代码迷 >> 综合 >> CubeMX + VS Code配置环境代替Keil编写烧录调试程序
  详细解决方案

CubeMX + VS Code配置环境代替Keil编写烧录调试程序

热度:9   发布时间:2024-02-25 13:52:07.0

VS Code 搭建stm32开发环境

搭建准备

程序安装

1.下载并安装 vs code

https://code.visualstudio.com/

2.下载并安装 STM32CubeMX

https://www.st.com/content/st_com/zh/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html

支持最新的HAL库,工程代码配置与生成工具,支持生成IAR、Keil、STM32CubeIDE、Makefile等工程,这里使用其生成的Makefile工程。

3.下载并安装 Git for Windows

https://gitforwindows.org/

该工具集成有精简版的mingw,这里我们使用其bash终端和版本管理均非常有用。

4.下载并安装 arm-none-eabi-gcc

https://launchpad.net/gcc-arm-embedded/+download

编译器,GUN的arm的通用交叉编译链工具,基本上常用的arm处理器均支持;

安装时勾选设置全局环境变量以便于配置;

使用离线免安装包时,解压到合适的位置,在系统环境变量添加\bin目录,运行CMD或者Windows PowerShell,测试一下是否可用。命令:arm-none-eabi-gcc -v

5.下载并安装 mingw

https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe/

MinGW 的全称是:Minimalist GNU on Windows 。它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API 和 MSYS,因此可以将源代码编译生成 Windows 下的可执行程序,又能如同在 Linux 平台下时,使用一些 Windows 不具备的开发工具。

一句话来概括:MinGW 就是 GCC 的 Windows 版本 。

其安装一般为在线安装,按网上步骤即可。

这里我们主要需要使用其 mingw32-make 功能.

VS Code插件搭建所需

安装开发所需基础插件(插件在 vs code 拓展栏搜索名称即可)

C/C++(必要)

增加了对C / C ++的语言支持,语法智能感知、加亮及调试功能

GBKtoUTF8

cortex-debug

工程示例

使用Cube-MX 生成Makefile工程

芯片选型、HAL版本、引脚配置、时钟树配置等,可参照下面博客,这个是用Keil来进行编译,所以只需要在最后一步修改成makefile就可以了

STM32CubeMX让我们的蓝色LED闪亮起来(胎教级包看包会不用懂原理)

工程管理中,选择生成makefile工程,然后点击 generate code即可

在这里插入图片描述

vs code配置

工程 .vscode json配置(3个)

在这里插入图片描述

c_cpp_properties.json

主要有添加include路径,编译器路径,宏定义等,设置好后索引、编译就跟keil一样方便;

打开工程 .vscode 下面的 c_cpp_properties.json 配置脚本,这个json不允许有注释,如果你自己编写了头文件又不在workspaceFolder下,路径也要加到includePath和browse里。设置如下:

{
    "configurations": [{
    "name": "Win32","includePath": ["C:/Program Files (x86)/GNU Arm Embedded Toolchain/9 2020-q2-update/arm-none-eabi/include","${workspaceFolder}/Core/Inc","${workspaceFolder}/LWIP/App","${workspaceFolder}/LWIP/Target","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include","${workspaceFolder}/Middlewares/Third_Party/LwIP/system","${workspaceFolder}/Drivers/STM32F4xx_HAL_Driver/Inc","${workspaceFolder}/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy","${workspaceFolder}/Middlewares/Third_Party/FreeRTOS/Source/include","${workspaceFolder}/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2","${workspaceFolder}/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/netif/ppp","${workspaceFolder}/Drivers/CMSIS/Device/ST/STM32F4xx/Include","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/lwip","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/lwip/apps","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/lwip/priv","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/lwip/prot","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/netif","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/compat/posix","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/compat/posix/net","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/compat/posix/sys","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/compat/stdc","${workspaceFolder}/Middlewares/Third_Party/LwIP/system/arch","${workspaceFolder}/Drivers/CMSIS/Include"],"defines": ["USE_HAL_DRIVER","STM32F407xx","_DEBUG","UNICODE","_UNICODE"],"intelliSenseMode": "gcc-x64"}],"version": 4
}

launch.json

所需要调试的文件的路径、调试时的CWD(工作路径)、调试器的路径及一些调试参数(程序启动参数等);

{
    // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{
    "name": "Cortex Debug","cwd": "${workspaceRoot}","executable": "./build/Control.elf","request": "launch","type": "cortex-debug","servertype": "jlink","device": "STM32F407ZG","interface": "swd","armToolchainPath": "C:/Program Files (x86)/GNU Arm Embedded Toolchain/9 2020-q2-update/bin/","preLaunchTask": "build","rtos": "FreeRTOS"}]
}

tasks.json

{
    // 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 -j8","problemMatcher": [],"group": {
    "kind": "build","isDefault": true}}]}

工程下打开终端,输入 make

工程编程会生成 .bin 文件,这个就是我们要烧录的目标文件。

  相关解决方案