STM32高级开发——使用VSCode搭建STM32开发环境

李肖遥 2022-10-07 22:10
    关注、星标公众号,直达精彩内容

素材来源:https://blog.csdn.net/zhengyangliu123/article/details/79090601

整理:技术让梦想更伟大 | 李肖遥


以前在伴随着开发平台的转换中,我尝试过各种各样的开发环境,而在最近一段时间的开发中我使用了Visual Studio Code来作为代码编辑器,其优异的工程管理,超快的启动速度,各种各样功能强大的插件,使我立刻爱上了这个文本编辑器。

但是在开发中来来回回在编辑器和Keil等IDE之间来回切换对我造成了不少不方便,另外由于希望能够在windows下使用gcc工具链开发,所以我尝试使用插件来完整的在vscode上搭建了一个开发环境。可以说这是我在windows平台下尝试过的最好用的一种搭配,下面我就来详细讲述一下这个环境的搭建和基本使用方式。

ps:启动真心快,在win下优化程度堪比记事本.
1

安装软件

  1. 下载安装 Visual Studio Code

    过程按照正常方式安装就可,记得在安装快完成后的选项中勾选,添加右键打开文件和文件夹的选项,把有选择的那页全部勾选就行,这样就可以很方便的在文件夹目录下快速用VS Code打开文件或工程目录了。

  2. 下载安装 Clang

    用于提供语法补全代码格式化等功能,正常完成安装后将软件的安装目录下的bin文件夹设置进入环境变量PATH中。 如:

    D:\LLVM\bin
    1
  3. 下载安装 Git for Windows

    提供Git支持和MINGW64指令终端。

  4. 下载 OpenOCD for Windows

    下载后的文件不是安装包,把程序文件夹放入自己的软件安装目录下,将软件的bin文件夹路径加入用户环境变量PATH中。 如:

    D:\OpenOCD0.10.0\bin
    1
  5. 下载安装 arm-none-eabi-gcc

    正常安装,安装后需要将软件的安装目录下的bin文件夹设置进入环境变量PATH中。 如:

    D:\GNU Tools ARM Embedded\7 2017-q4-major\bin
    1

配置 VS Code

  1. 安装插件

    在软件左侧选项中选择扩展选项,在插件市场中搜索安装 VS Code 插件如下:

  • ARM

    提供 ARM 汇编代码的语法识别加亮

  • C/C++

    提供 C/C++ 的语法智能感知、加亮及调试功能

  • C/C++ Clang Command Adapter

    提供 Clang 功能的调用

  • Code Outline

    提供类似 eclipse 文件函数列表的功能

  • GBKtoUTF8

    用来识别调整文件的编码格式

  • Makefiles support for VSCode

    提供对 Makefile 的语法识别等功能

  • 设置 VS Code 功能

    点击 文件 -> 首选项 -> 设置,来打开 VS Code 的配置文件( VS Code 采用 json 格式的文件进行配置,没有图形界面),在文件中加入如下配置(窗口左侧为系统壳配置选项及默认参数是只读的,右侧窗口为配置设置界面,可写),尤其注意最后两项执行程序的路径要设到自己的路径下:

    {
        "editor.detectIndentation"false,
        "git.ignoreMissingGitWarning"true,
        "files.autoGuessEncoding"true,
        "editor.formatOnSave"true,
        "editor.formatOnPaste"true,
        "editor.formatOnType"true,
        "terminal.integrated.shell.windows""D:\\Git\\bin\\bash.exe",
        "terminal.external.windowsExec""D:\\Git\\bin\\bash.exe",
    }

    然后我们我们重启程序加载配置,而后点击 查看 -> 集成终端 可以看到 VS Code 的内部终端已经改变为 MINGW64 的终端。

  • 开发工程

    1. 首先选择一个用 CubeMX 生成的带 Makefile 的工程目录,右键点击空白处,选择以 Open With Code ,首先我们打开 Makefile 文件,修改求其中的 arm-none-gcc-eabi 的路径设置,由于我们已经将工具链的路径设置进入环境变量中,这里只需要将执行指令前的路径变量全部删除即可,如下:

      #######################################
      # binaries
      #######################################
      BINPATH = 
      PREFIX = arm-none-eabi-
      CC = $(PREFIX)gcc
      AS = $(PREFIX)gcc -x assembler-with-cpp
      CP = $(PREFIX)objcopy
      AR = $(PREFIX)ar
      SZ = $(PREFIX)size
      HEX = $(CP) -O ihex
      BIN = $(CP) -O binary -S
    2. 修改样本工程下的配置文件到自己的工程中

      .vscode 目录下文件共有3个配置文件,实际上我们只需要配置launch.json文件就可以实现全部的调试功能,但是由于vscode不会自动识别makefile中的配置参数,所以如果想要使其代码索引,智能感知运行正确的话,就需要我们单独设置其中的c_cpp_properties.json文件。

    • includePath 提供.h的搜索目录
    • defines 编译时在指令中加入的宏定义
    • path 使用右键或ctrl追踪函数实现时搜索的目录
    • c_cpp_properties.json 用于设定工程的 Include 路径,宏定义及搜索浏览路径,其中需要设定三个参数:
    • launch.json 用于设定调试功能 这个文件的参数很多,我们对于简单的使用,只需要将其中的路径改为自己的工程路径和名称即可,有关于其具体意义和使用方式的说明可以查看c/c++插件的官方github userguid来学习使用。其中需要注意的是,由于我们的调试是在windows环境下使用mingw64来实现的,所以在调试的启动过程中指令会在windows cmd和mingw64跳转几次,具体指令是在哪个终端内调用的要根据指令的类型来决定,所以我们必须很小心的来设置路径参数,分清“ / ” 和 “ \ ”路径的表示方法,如果执行起来有错误,就多看看启动时,在调试窗口打印的记录来调整修改正确。
    • settings.json 用于设定工程中 VS Code 的特殊设置 可以设置特定的如代码格式化样式等。
    • 启动调试

      如果我们之前 c_cpp_properties.json 设置正确的话,这时在左侧调试界面中,我们应该就可以看到,launch中有一个调试启动选项了,在下方终端中使用make编译生成elf文件,点击启动调试,即可开始调试了。启动后与大多数编译器操作是相同的,单步运行,右键运行到该行,鼠标悬停显示数据等。(唯一注意的是由于插件本身的bug,调试启动后不会自动停在代码起始位置或main函数入口位置,对此我们只需要在调试前在代码运行的第二行或者main函数入口手动加个断点即可)


    • 版权声明:本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。

      ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧  END  ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧

      关注我的微信公众号,回复“加群”按规则加入技术交流群。


      点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。

      李肖遥 公众号“技术让梦想更伟大”,作者:李肖遥,专注嵌入式,只推荐适合你的博文,干货,技术心得,与君共勉。
      评论
      • 概述 说明(三)探讨的是比较器一般带有滞回(Hysteresis)功能,为了解决输入信号转换速率不够的问题。前文还提到,即便使能滞回(Hysteresis)功能,还是无法解决SiPM读出测试系统需要解决的问题。本文在说明(三)的基础上,继续探讨为SiPM读出测试系统寻求合适的模拟脉冲检出方案。前四代SiPM使用的高速比较器指标缺陷 由于前端模拟信号属于典型的指数脉冲,所以下降沿转换速率(Slew Rate)过慢,导致比较器检出出现不必要的问题。尽管比较器可以使能滞回(Hysteresis)模块功
        coyoo 2024-12-03 12:20 70浏览
      • 遇到部分串口工具不支持1500000波特率,这时候就需要进行修改,本文以触觉智能RK3562开发板修改系统波特率为115200为例,介绍瑞芯微方案主板Linux修改系统串口波特率教程。温馨提示:瑞芯微方案主板/开发板串口波特率只支持115200或1500000。修改Loader打印波特率查看对应芯片的MINIALL.ini确定要修改的bin文件#查看对应芯片的MINIALL.ini cat rkbin/RKBOOT/RK3562MINIALL.ini修改uart baudrate参数修改以下目
        Industio_触觉智能 2024-12-03 11:28 44浏览
      • 当前,智能汽车产业迎来重大变局,随着人工智能、5G、大数据等新一代信息技术的迅猛发展,智能网联汽车正呈现强劲发展势头。11月26日,在2024紫光展锐全球合作伙伴大会汽车电子生态论坛上,紫光展锐与上汽海外出行联合发布搭载紫光展锐A7870的上汽海外MG量产车型,并发布A7710系列UWB数字钥匙解决方案平台,可应用于数字钥匙、活体检测、脚踢雷达、自动泊车等多种智能汽车场景。 联合发布量产车型,推动汽车智能化出海紫光展锐与上汽海外出行达成战略合作,联合发布搭载紫光展锐A7870的量产车型
        紫光展锐 2024-12-03 11:38 65浏览
      • 作为优秀工程师的你,已身经百战、阅板无数!请先醒醒,新的项目来了,这是一个既要、又要、还要的产品需求,ARM核心板中一个处理器怎么能实现这么丰富的外围接口?踌躇之际,你偶阅此文。于是,“潘多拉”的魔盒打开了!没错,USB资源就是你打开新世界得钥匙,它能做哪些扩展呢?1.1  USB扩网口通用ARM处理器大多带两路网口,如果项目中有多路网路接口的需求,一般会选择在主板外部加交换机/路由器。当然,出于成本考虑,也可以将Switch芯片集成到ARM核心板或底板上,如KSZ9897、
        万象奥科 2024-12-03 10:24 41浏览
      • 11-29学习笔记11-29学习笔记习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
        youyeye 2024-12-02 23:58 51浏览
      •         温度传感器的精度受哪些因素影响,要先看所用的温度传感器输出哪种信号,不同信号输出的温度传感器影响精度的因素也不同。        现在常用的温度传感器输出信号有以下几种:电阻信号、电流信号、电压信号、数字信号等。以输出电阻信号的温度传感器为例,还细分为正温度系数温度传感器和负温度系数温度传感器,常用的铂电阻PT100/1000温度传感器就是正温度系数,就是说随着温度的升高,输出的电阻值会增大。对于输出
        锦正茂科技 2024-12-03 11:50 69浏览
      • 戴上XR眼镜去“追龙”是种什么体验?2024年11月30日,由上海自然博物馆(上海科技馆分馆)与三湘印象联合出品、三湘印象旗下观印象艺术发展有限公司(下简称“观印象”)承制的《又见恐龙》XR嘉年华在上海自然博物馆重磅开幕。该体验项目将于12月1日正式对公众开放,持续至2025年3月30日。双向奔赴,恐龙IP撞上元宇宙不久前,上海市经济和信息化委员会等部门联合印发了《上海市超高清视听产业发展行动方案》,特别提到“支持博物馆、主题乐园等场所推动超高清视听技术应用,丰富线下文旅消费体验”。作为上海自然
        电子与消费 2024-11-30 22:03 86浏览
      • 光伏逆变器是一种高效的能量转换设备,它能够将光伏太阳能板(PV)产生的不稳定的直流电压转换成与市电频率同步的交流电。这种转换后的电能不仅可以回馈至商用输电网络,还能供独立电网系统使用。光伏逆变器在商业光伏储能电站和家庭独立储能系统等应用领域中得到了广泛的应用。光耦合器,以其高速信号传输、出色的共模抑制比以及单向信号传输和光电隔离的特性,在光伏逆变器中扮演着至关重要的角色。它确保了系统的安全隔离、干扰的有效隔离以及通信信号的精准传输。光耦合器的使用不仅提高了系统的稳定性和安全性,而且由于其低功耗的
        晶台光耦 2024-12-02 10:40 105浏览
      • RDDI-DAP错误通常与调试接口相关,特别是在使用CMSIS-DAP协议进行嵌入式系统开发时。以下是一些可能的原因和解决方法: 1. 硬件连接问题:     检查调试器(如ST-Link)与目标板之间的连接是否牢固。     确保所有必要的引脚都已正确连接,没有松动或短路。 2. 电源问题:     确保目标板和调试器都有足够的电源供应。     检查电源电压是否符合目标板的规格要求。 3. 固件问题: &n
        丙丁先生 2024-12-01 17:37 86浏览
      • 最近几年,新能源汽车愈发受到消费者的青睐,其销量也是一路走高。据中汽协公布的数据显示,2024年10月,新能源汽车产销分别完成146.3万辆和143万辆,同比分别增长48%和49.6%。而结合各家新能源车企所公布的销量数据来看,比亚迪再度夺得了销冠宝座,其10月新能源汽车销量达到了502657辆,同比增长66.53%。众所周知,比亚迪是新能源汽车领域的重要参与者,其一举一动向来为外界所关注。日前,比亚迪汽车旗下品牌方程豹汽车推出了新车方程豹豹8,该款车型一上市就迅速吸引了消费者的目光,成为SUV
        刘旷 2024-12-02 09:32 101浏览
      我要评论
      0
      点击右上角,分享到朋友圈 我知道啦
      请使用浏览器分享功能 我知道啦