使用 STM32CubeMx + VSCode 开发 STM32

使用 STM32CubeMx + VSCode 开发 STM32


目的

1    使用 STM32CubeMX配置STM32开发板,生成Makefile工程
2    使用 VSCode 开发并调试


环境及工具

1     STM32CubeMx
2     Visual Studio Code
3     MINGW
4     ARM GCC Toolchain
5     Openocd


内容

  • 安装及配置环境
  • 编译调试

操作步骤

1 安装STM32CubeMX

去官网即可下载 下载地址
安装步骤自行查阅
软件运行:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XpwVWeSq-1589681022534)(http://blogpic.raogang.top/blogImages/20200516215800.png)]


2 安装VSCode

官网自行下载 下载地址
安装步骤自行查阅
软件运行:


3 安装MINGW

MinGW是将GCC编译器和GNU Binutils移植到Windows平台下的产物
包括一系列头文件、库和可执行文件。主要使用其中的make工具。

官网自行下载 下载地址
安装步骤自行查阅

安装完成在命令行工具输入 make -v查看效果


4 安装 ARM GCC Toolchain

STM32是ARM内核的芯片,这个交叉编译工具链包含了所有用于交叉编译ARM内核程序的软件
这里使用的是gcc-arm-none-eabi-9-2019-q4-major-win32.exe 目前的Windows上的最新版的
如果是在别的系统上搭建只需要选择对应系统版本的即可。

(1) 下载

下载地址

下载过于缓慢,找了个老版本

(2) 添加环境变量

(3)检验
arm-none-eabi-gcc -v


5 安装OpenOCD

开源调试软件

(1)下载

官方网站

(2)解压

(3)添加环境变量

(4)验证
openocd -v


6 VSCode 插件安装

  • ARM:使的ARM汇编代码获得语法高亮,这里主要用在启动文件上。
  • C/C++:使VScode获得对C/C++语言的支持,包括智能提示,调试等。
  • Chinese (Simplified) Language Pack for Visual Studio Code:VScode中文语言包。
  • C++ Intellisense:提供C++智能感知功能。
  • Cortex-Debug:对ARM Cortex-M内核的单片机提供调试支持。
  • Cortex-Debug: Device Support Pack - STM32F1(F4,L1):这三个芯片包分别对Cortex-Debug提供三款芯片的设备支持。
  • GBKtoUTF8:因为平时的Keil的STM32工程文件大部分都是GB2312编码的,这个扩展可以自动将GB2312 转换为UTF-8编码。
  • LLVM :代码补全
(1) arm 插件

(2) C/C++ 插件

(3) Chinese

需要则安装

(4) C++ Intellisense

(5) Cortex-Debug

(6) GBKtoUTF8

(6) GBKtoUTF8

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WP6R9TFV-1589681022575)(http://blogpic.raogang.top/blogImages/20200516225650.png)]


7 使用STM32CubeMX生成一个工程

(1)新建一个工程

选择芯片

(2)初始化

引脚配置

时钟配置

(3)注意

这个不选会不能调试

(4)配置生成选项

(5)生成完成


8 使用VSCode编辑项目 ***

(1)使用VSCode打开

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y35RkNKA-1589681022601)(http://blogpic.raogang.top/blogImages/20200516231513.png)]

(2)配置c_cpp_properties.json

使用Ctrl+Shift+P打开命令行,
输入edit configurations(json)他会在工程文件夹下生成一个.vscode文件夹并在其中创建一个c_cpp_properties.json的配置文件。其中include路径和宏定义可以参照makefile添加。

(3)配置launch.json

调试的时候使用的是cortex-debug插件,JlinkGDBServer和OpenOCD的配置内容略有区别。
点击VScode左侧活动栏的调试图标,如果是第一次使用的话,会让你创建launch.json文件,选择cortex-debug就可以生成一个模板。

需要修改:

{
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/${workspaceFolderName}.elf",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "arm-none-eabi-gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {"text": "cd ${workspaceFolder}/build"},
                {"text": "file ${workspaceRootFolderName}.elf"},
                {"text": "target remote localhost:3333"},
                {"text": "monitor reset"},
                {"text": "monitor halt"},
                {"text": "load"},
            ]
        }

    ]
}
(4)创建任务

可以直接在终端输入make进行编译,VScode还具有一个tasks功能,可以自己配置一些指令。

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "编译项目",
            "type": "shell",
            "command": "make",
            "args": [
                "-j4"
            ]
        },
        {
        "label": "启动调试下载器",
        "type": "shell",
        "command":"openocd -f interface/cmsis-dap.cfg -c 'transport select swd' -f target/stm32f1x.cfg" 
       }

    ]
}

/**
启动调试下载器命令 openocd- f interface/ cmsis-dap.cfg-c' transport select swd- f target/stm32f1x.c
选择下载器型号
D: \OpenOCD-20191216-0100\share\openocd\scripts\interface
选择芯片型号
D: \OpenoCD-20191216-0.10.0\share\openocd\ scripts\target
printf问题结尾加\n
支持f1oat makefile加- u printf f1oat
#libraries
LiBS=-1c-1m-1 nosy
LIBDIR=
LDFLAGS= $(MCU)-specs=nano specs -u printf float -T$(LDSCRIPT)$(LIBDIR) $(LIBS )-Wl,-Map=$(BUILD DIR)/$(TARGET).map
*/ 


使用这里的任务的话,快捷键Ctrl+Shift+P,然后输入task和空格,会自动弹出当前有的任务,回车执行即可。

(5)编译项目

启动任务

编译成功

(6)启动调试下载器

ctrl + shift + p

(7)调试设备


项目地址

github

  • 26
    点赞
  • 133
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: VSCodeSTM32CubeMX是两个不同的工具,可以结合使用来进行STM32开发VSCode是一款轻量级的代码编辑器,支持多种编程语言和插件扩展,可以通过安装插件来实现对STM32开发的支持。例如,安装C/C++插件和ARM插件可以实现对STM32的编译、调试和烧录等功能。 STM32CubeMX是一款图形化的STM32配置工具,可以帮助开发者快速生成STM32项目的代码框架和初始化代码。可以通过生成的代码框架和初始化代码来快速开发STM32应用程序。 在使用VSCodeSTM32CubeMX进行STM32开发时,可以先使用STM32CubeMX生成项目代码框架和初始化代码,然后在VSCode中进行代码编写、编译、调试和烧录等操作。通过结合使用这两个工具,可以提高STM32开发的效率和质量。 ### 回答2: VSCodeSTM32CubeMX均是非常实用的开发工具,都有着自己的优点和适用场景。 首先,VSCode作为一款轻量级、高效率的文本编辑器,具有开源、跨平台的优点,适用于各种程序开发的需求,特别是针对C++语言的开发有非常出色的支持,拥有各种功能丰富的插件以及可自定义的配置,使得程序开发更加便捷。 而STM32CubeMX是一款用于STM32系列芯片开发的可视化工具,其可以非常方便地进行代码生成、硬件配置等操作,快速搭建起STM32芯片的开发环境。同时,STM32CubeMX还具有各种功能模块(如对PWM、ADC等的支持),方便用户开发新的项目。 那么,VSCodeSTM32CubeMX结合起来,就可以带来更加高效、便捷的开发体验了。 一方面,VSCode支持各种编程语言的开发,并且作为一个优秀的编辑器,体验也更加流畅。用户可以用VSCode进行STM32CubeMX生成的代码的开发、编译等工作,并同时可以使用丰富的VSCode插件(如Git、IntelliSense等)帮助自己更加高效地开发项目。 另一方面,STM32CubeMX则可以帮助用户极大地降低STM32开发的门槛。通过鼠标点选,硬件配置、代码生成过程可以被轻松地完成,还可以轻松添加和删除硬件功能模块进入项目。在整个开发流程中,STM32CubeMX可以帮助用户大大减少了编码的时间以及代码调试的难度,从而使得整个开发流程更加高效。 总的来说,VSCodeSTM32CubeMXSTM32程序开发中都有着各自独特的优势和作用,搭配使用更是能够带来事半功倍的效果。 ### 回答3: 在进行STM32开发时,选择合适的开发工具和方式是非常重要的。VSCodeSTM32CubeMX都是非常受欢迎的开发工具,但是它们各自有着不同的优势和特点。 VSCode是一款由微软开发的轻量级开源编辑器,它可以支持多种编程语言,包括C/C++。VSCode的优势在于其丰富的插件生态系统和高度的可扩展性。VSCode可以通过安装不同的插件来提升其对不同开发环境的支持,例如C++插件可以提供代码补全、文本高亮、调试工具等功能。同时,VSCode也可以通过自定义设置来满足不同开发者的需求。因此,VSCode是非常适合那些喜欢自定义配置和寻求高度可扩展性的开发者。 STM32CubeMX是一个工具,可帮助快速配置嵌入式应用程序的外设和代码框架。它提供了一种图形化的用户界面,允许用户轻松选择和配置不同的外设。这极大地简化了嵌入式系统开发的流程,使开发者可以更专注于软件开发使用STM32CubeMX还可以自动生成C代码,包括启动文件、中断处理程序、外设驱动程序等。这些代码框架可以帮助开发者快速启动项目,并提高代码的质量和可读性。 综上所述,VSCodeSTM32CubeMX都有其优点,开发者需要根据具体开发需求和个人偏好来选择适合自己的工具。如果需要高度可扩展性和自定义设置,可以选择VSCode;如果需要快速配置外设并自动生成C代码,可以选择STM32CubeMX。同时,它们也可以结合使用,以实现更高效的开发

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

都学点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值