抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

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(版本大于3.19):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编译速度会快一些。

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

    image-20240920135324879

  6. 下载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, 使用ninja,generator的值是Ninja

    image-20240922182824531

    image-20240922185622796

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

    image-20240920143223311

    配置成功输出:

    image-20240920144023070

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

    image-20240920143338788

    编译成功输出:

    image-20240920144153687

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

image-20240920143606498

1
2
3
4
5
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

评论