当前位置:   article > 正文

STM32Cube +VSCode开发环境搭建_cubeide和vscode

cubeide和vscode


0.前言

  工欲善其事,必先利其器。由于受够了eclipse风格的cubeide,直接用vscode打开工程目录又是一大堆波浪线,所以终于下定决心整整我的开发环境。

一、各种方式对比

  stm32开发环境有很多方式,由于一些原因,这里就不使用keil+vscode方式进行介绍了,相关教程各大论坛也有不少,这里就介绍一下我踩坑的几种。环境搭建的宗旨是简单,尽量减少自己修改配置文件等繁琐步骤。

1.STM32CubeMX + CLion

  Clion作为比较现代化风格的IDE工具,并且支持像vscode风格的插件,用起来还是比较舒适的,不过缺点就是调试只能用openocd,这种方式需要加载芯片相关的cfg文件和寄存器映射表,所以搭建环境时还是比较麻烦的。笔者最终没有使用这种方式,因为所使用的STM32F103RCT6找不到对应的cfg文件和寄存器映射表文件,又懒得自己照着手册写。如果有想用这种方式的可以移步B站@Kevin_WWW大佬的相关视频。
注:这种方式最好使用官方能找得到芯片cfg文件的开发板,否则自己手动配置起来比较麻烦。

2.STM32CubeIDE + VSCode + STM32 VSCode Extension

  ST官方出了一个VSCode的相关插件,使用此插件可以直接打开对应的工程,支持编译下载和调试功能,本节内容主要也是以此方式介绍。
注:使用此方式前最好先在CubeIDE中查看自己的ST-Link是否满足要求,有些国产ST-Link过不了IDE检测,就无法正常烧录和调试。

3.VSCode + EIDE插件

由于笔者的两个ST-Link都无法过检测,又不想再花钱买新的,所以最终选择使用EIDE这种方式,使用起来甚至比第二种还要方便一点,相关教程可以移步同站@怠呆 大佬的《Windows VS Code + EIDE arm-none-eabi-gcc 开发STM32》。

二、STM32CubeIDE + VSCode + STM32 VSCode Extension环境搭建

1.需要安装的软件

① STM32CubeIDE
② VSCode
③ cmake
④ STM32 VSCode Extension(vscode插件
  ①和②的安装就不多介绍了,官网下载后安装就行。STM32CubeIDE建议安装在默认路径下,可以省去后续配置麻烦。更换了目录也行,笔者就是更换了目录后重新配置的,后续会介绍。
  ③ cmake的安装可以从官网下载安装包直接安装(记得勾选添加到环境变量,后续会更方便),也可以下载免安装.zip格式的文件。不想添加环境变量的话后续就要在VSCode中配置,看个人喜好。

2.相关配置

在vscode中安装STM32 VSCode Extension 插件,添加后左侧会出现如下标志,并且此插件会安装cmake、Cotex-Debug等其他需要依赖的插件。
在这里插入图片描述
添加cmake工具路径:
如果安装cmake时没有添加到环境变量,或者只下载了工具压缩包,那么就需要在vscode中指定相关路径。在vscode中使用ctrl + shift + P,搜索cmakepath,将相关路径添加即可:
在这里插入图片描述
配置STM32CubeIDE工具链:
在左侧STM32插件中导入一个CubeIDE生成的工程,然后修改如下文件:
注:如果STM32CubeIDE安装在默认路径下,应该不需要修改此路径,请以实际情况为准
在这里插入图片描述
将launch.json中这四项参数修改到CubeIDE安装目录下的对应路径。
.cmake 文件中一项参数也需要修改:
在这里插入图片描述
此项是用来加载交叉编译工具的,使用CubeIDE包内自带的交叉编译工具链即可。

3.编译测试

修改完这些参数正常情况应该就可以编译了,不过烧录和debug就需要自行解决了,由于ST-Link 的问题,尝试了很多种绕过检测的办法都没有奏效,感兴趣的可以参考此篇文章进行尝试:https://github.com/armink/HackSTLinkUpgrade .经过笔者尝试,应该只有1 和 3有尝试空间了。
在这里插入图片描述
点击左侧cmake工具中的构建按钮就可以编译工程了。左侧的运行按钮中可以对程序进行debug操作,这里就不演示了,有需求的可以自行研究。
在这里插入图片描述

三、总结

  官方的工具和插件虽然用起来方便快捷,但是捆绑st-link的情况比较严重,使用Jlink或者DAPLink的只能用openocd这种方式,加载芯片cfg文件和寄存器映射表也比较麻烦,不能做到每次都方便快捷的开始。Keil和IAR工具的界面一言难尽,所以只能寄希望于一些第三方平台的优化了,在此期间笔者还接触到PlatformIO的开发方式,可以直接兼容C++的类库及面向对象的编程模式,感兴趣的可以继续了解,笔者就先停在EIDE的开发方式了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/984473
推荐阅读
相关标签
  

闽ICP备14008679号