1. 开发工具下载
-
下载STM32CubeMX:https://www.st.com.cn/zh/development-tools/stm32cubemx.html(可通过访客方式下载)
安装时一直默认即可
-
下载stm32固件库:
-
在线下载方式(需要登陆):安装好STM32CubeMX后,在菜单栏【Help】->【Manage Embedded Software Packages】里选择合适的固件库下载
-
离线下载方式(以stm32f1系列为例):https://www.st.com.cn/zh/embedded-software/stm32cubef1.html?dl=redirect
下载后,打开stm32cubemx,点击菜单栏【Help】->【Manage Embedded Software Packages】->左下角【From Local】,然后选择刚下载的zip文件即可
-
-
下载cmake(版本大于3.19):https://cmake.org/download/,然后解压到一个不含中文的路径,再把文件夹bin路径添加到环境变量
-
下载ninja:https://github.com/ninja-build/ninja/releases,选择一个路径创建ninja文件夹,把ninja.exe放进去,再把ninja文件夹添加到环境变量
注:ninja和make一样都是代码构建工具,因此网上也有很多文章使用make的,这2个都是可以的,最终都是通过调用gcc完成代码的编译,因此如果之前安装且使用过MinGW,就不用使用ninja了(MinGW里包含了一个mingw32-make的工具)。使用起来ninja编译速度会快一些。
-
下载gcc-arm-none-eabi:https://developer.arm.com/downloads/-/gnu-rm,解压后,把`bin`和`arm-none-eabi/bin`文件夹添加到环境变量
-
下载openOCD(用于在线调试):https://gnutoolchains.com/arm-eabi/openocd/,选择一个下载、解压、环境变量配置即可
- 注:如果不需要在线调试,只是把程序下载到板子的话,可以通过串口下载hex文件的方式,这时不需要下载该软件,通过flymcu软件下载程序即可。flymcu下载链接:http://www.mcuisp.com/chinese mcuisp web/ruanjianxiazai-chinese.htm,选择【Free STM32 ISP software】下载即可
cmake、ninja、openocd、gcc-arm-none-eabi下载完且配置好环境变量后,打开cmd或终端,输入以下命令确保安装和环境变量配置没问题:
-
VsCode下载
-
安装C++插件
-
安装cmake tools插件
-
2. 创建项目
(1) 打开stm32cubemx
选择芯片、项目配置……参考文章:STM32CubeMX学习笔记(1)——搭建环境、编译烧写_stm32cubemx编译烧录-CSDN博客
注意在生成代码前,按照下面的方式配置:
(2)打开vscode
-
在vscode打开刚生成的stm32项目,输入快捷键 ctrl+ship+p,输入命令:
cmake:select Configure
,选择选择之后会生成一个
CMakePreset.json
文件(需要cmake版本大于等于3.19才支持),如果使用make,generator
的值是MinGW Makefiles
, 使用ninja,generator
的值是Ninja
-
然后继续输入命令进行配置
配置成功输出:
-
左下角点击【生成】进行编译,编译后会生成build文件夹, 编译产生的文件都在里面
编译成功输出:
如果要生成hex文件,打开CMakeLists.txt文件,在最后添加下面几行代码,然后重新编译即可。
1 | add_custom_command( |
说明:stm32CubeMX在生成项目的时候,项目下的cmake/gcc-arm-none-eabi.cmake文件包含了gcc配置信息,因此前面我们在下载安装好gcc-arm-none-eabi后需要配置好环境变量