VSCode配置STM32 HAL库开发环境
创作时间:
作者:
@小白创作中心
VSCode配置STM32 HAL库开发环境
引用
1
来源
1.
https://www.cnblogs.com/ajream/p/18422494
本文将详细介绍如何在VSCode上配置STM32 HAL库开发环境。从开发工具的下载到项目的创建,再到最终的编译和调试,每个步骤都配有详细的说明和命令行示例,适合有一定基础的嵌入式开发人员参考学习。
1. 开发工具下载
STM32CubeMX
- 下载地址:可通过ST官方网站以访客方式下载
- 安装说明:安装时一直默认即可
STM32固件库
- 在线下载方式:安装好STM32CubeMX后,在菜单栏【Help】->【Manage Embedded Software Packages】里选择合适的固件库下载
- 离线下载方式(以STM32F1系列为例):可通过ST官方网站下载,下载后,打开STM32CubeMX,点击菜单栏【Help】->【Manage Embedded Software Packages】->左下角【From Local】,然后选择刚下载的zip文件即可
CMake
- 下载地址:https://cmake.org/download/
- 安装说明:解压到一个不含中文的路径,再把文件夹bin路径添加到环境变量
Ninja
- 下载地址:https://github.com/ninja-build/ninja/releases
- 安装说明:选择一个路径创建ninja文件夹,把ninja.exe放进去,再把ninja文件夹添加到环境变量
- 注:Ninja和Make一样都是代码构建工具,最终都是通过调用GCC完成代码的编译。使用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】下载即可
VSCode
- 安装C++插件
- 安装CMake Tools插件
2. 创建项目
(1) 打开STM32CubeMX
选择芯片、项目配置……参考文章:STM32CubeMX学习笔记(1)——搭建环境、编译烧写_stm32cubemx编译烧录-CSDN博客
注意在生成代码前,按照下面的方式配置:
(2) 打开VSCode
在VSCode打开刚生成的STM32项目,输入快捷键 Ctrl+Shift+P,输入命令:
cmake:select Configure选择
选择之后会生成一个CMakePreset.json文件(需要CMake版本大于等于3.19才支持),如果使用Make,
generator的值是
MinGW Makefiles,使用Ninja,
generator的值是
Ninja然后继续输入命令进行配置
配置成功输出:
左下角点击【生成】进行编译,编译后会生成build文件夹, 编译产生的文件都在里面
编译成功输出:
最后,如果要生成hex文件,打开CMakeLists.txt文件,在最后添加下面几行代码,然后重新编译即可。
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就行了
- CMake options可以选择生成器,CMake支持的生成器可以通过命令
查看cmake --help
热门推荐
梦见父亲的深层含义:从心理学到文化解读
口呼吸=张嘴睡觉?要不要带孩子矫正?
挑灯夜战 抗击洪峰——郴州水文中心鏖战耒水特大洪水
遇到交通事故,先打电话给保险还是交警?老司机:顺序别弄错
为什么脚底经常裂口子?该怎么办?
小米电子锁用什么电池?不同型号电池使用指南
儿童肚子痛怎么办?专业医生详解用药和调理方法
月薪5000真的很低吗?这才是95%中国人的工资真相
年金险 vs 增额寿险:如何选择适合自己的养老储蓄方案?
《红楼梦》薛宝钗:最高级的智慧,不干己事莫开口
东莞十大徒步路线排名:从阳山到樟木头湿地公园
十二个提升摄影创意的小技巧,让你的摄影技术更好
梦到亲人去世的原因与心理影响
论文降重同义词替换:提升学术诚信与原创性的实用指南
六十四卦详解:从基本知识到文化意义
看见新质生产力 | “千年瓷都”景德镇:靠“艺术范”走红,向“国际范”求变
硬件开发的价格怎么算
茶胺酸是何方神圣?听闻其有助睡眠?3种功效介绍给你
房东违约了怎么办?
真正厉害的人,抽象思维都很强大
投简历找工作哪个网站靠谱?法律视角下的求职平台选择指南
他们用体育力量守护“星星的孩子”
运动对自闭症有好处吗
如何确保楼房接地线的安全性?这种安全性如何影响你的家居安全?
搜索图片有新招了!北大提出图像检索新方法 | ECCV 2024
北京烤鸭:京城美食的璀璨明珠,传统与创新的完美融合
《教父》三部曲:血色家族中的道德崩塌与人性的迷失
国家卫健委通报:未出现新发传染病,疫苗和抗病毒药物对当前甲流有效
Excel中剔除不想要数据的多种方法
17种常见身体异常无需过度担心,理性看待体检报告