VSCode配置STM32HAL库开发环境

1. 开发工具下载

  1. 下载STM32CubeMX:https://www.st.com.cn/zh/development-tools/stm32cubemx.html(可通过访客方式下载)

    安装时一直默认即可

  2. 下载stm32固件库:

    • 在线下载方式(需要登陆):安装好STM32CubeMX后,在菜单栏【Help】->【Manage Embedded Software Packages】里选择合适的固件库下载

    • 离线下载方式(以stm32f1系列为例):https://www.st.com.cn/zh/embedded-software/stm32cubef1.html?dl=redirect

      image-20240920134107090

      下载后,打开stm32cubemx,点击菜单栏【Help】->【Manage Embedded Software Packages】->左下角【From Local】,然后选择刚下载的zip文件即可

  3. 下载cmake:https://cmake.org/download/,然后解压到一个不含中文的路径,再把文件夹bin路径添加到环境变量

    image-20240920134611599

  4. 下载ninja:https://github.com/ninja-build/ninja/releases,选择一个路径创建ninja文件夹,把ninja.exe放进去,再把ninja文件夹添加到环境变量

注:ninja和make一样都是代码构建工具,因此网上也有很多文章使用make的,这2个都是可以的,最终都是通过调用gcc完成代码的编译,因此如果之前安装且使用过MinGW,就不用使用ninja了(MinGW里包含了一个mingw32-make的工具)。不过使用起来ninja编译速度会快一些。

  1. 下载gcc-arm-none-eabi:https://developer.arm.com/downloads/-/gnu-rm,解压后,把binarm-none-eabi/bin文件夹添加到环境变量

    image-20240920135324879

  2. 下载openOCD(用于在线调试):https://gnutoolchains.com/arm-eabi/openocd/,选择一个下载、解压、环境变量配置即可

cmake、ninja、openocd、gcc-arm-none-eabi下载完且配置好环境变量后,打开cmd或终端,输入以下命令确保安装和环境变量配置没问题:

image-20240920140952988

image-20240920141119664

  1. VsCode下载

    • 安装C++插件

    • 安装cmake tools插件

      image-20240920141419215

2. 创建项目

(1) 打开stm32cubemx

选择芯片、项目配置……参考文章:STM32CubeMX学习笔记(1)——搭建环境、编译烧写_stm32cubemx编译烧录-CSDN博客

注意在生成代码前,按照下面的方式配置:

image-20240920142157881

(2) 打开vscode

  1. 在vscode打开刚生成的stm32项目,输入快捷键 ctrl+ship+p,输入命令:cmake:select Configure,选择

    image-20240920143029392
    选择之后会生成一个CMakePreset.json文件(需要cmake版本大于等于3.19才支持),如果使用make,generator的值是MinGW Makefiles,
    image-20240922182824531
    使用ninja,generator的值是Ninja
    image-20240922185622796

  2. 然后继续输入命令进行配置

    image-20240920143223311

    配置成功输出:

    image-20240920144023070

  3. 左下角点击【生成】进行编译,编译后会生成build文件夹, 编译产生的文件都在里面

    image-20240920143338788

    编译成功输出:

    image-20240920144153687

最后,如果要生成hex文件,打开CMakeLists.txt文件,在最后添加下面几行代码,然后重新编译即可。

image-20240920143606498

add_custom_command(
    TARGET ${CMAKE_PROJECT_NAME}  POST_BUILD
    COMMAND ${CMAKE_OBJCOPY} -O ihex "${CMAKE_PROJECT_NAME}.elf" "${CMAKE_PROJECT_NAME}.hex"
)

stm32CubeMX在生成项目的时候,项目下的cmake/gcc-arm-none-eabi.cmake文件包含了gcc配置信息,因此前面我们在下载安装好gcc-arm-none-eabi后需要配置好环境变量

3. 其它

如果使用clion,那么vscode以及对应插件不用下载了,配置起来很简单,就在settings里把工具链改为cmake和gcc-arm-none-eabi就行了
image

cmake options可以选择生成器,cmake支持的生成器可以通过命令 cmake --help查看
image

posted @   aJream  阅读(883)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示