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
热门推荐
「肺」腑之言 | 有结节,不纠结,定期随访是关键!
家用消毒液选购指南:成分解析与安全使用推荐
喝什么茶清热去火消炎:选择与效果全面解析
明末农民战争的直接起因是什么?失败的原因又是什么?
医患纠纷调解员怎么考?工作内容和优势详解
考劳动争议调解员证:法律实务与职业发展全解析
军事外交双管齐下,皇太极如何征服天下,奠定清朝基业?
关系型数据库与非关系型数据库(NoSQL)的主要区别是什么?
“九大行动”护航全链条就业创业服务
如何鉴别蚕丝和人造丝:六种实用分辨方法
斯里兰卡寻求印钱抵债之路:探讨其背后原因及影响
源头遏制群租、拒绝不靠谱“二房东”!代理经租模式在华新动迁小区试点探索→
消化科门诊,挤满了焦虑和抑郁症患者
数据一体化助力智能钻井
色差仪类型全解析:从便携程度到测量原理的全方位指南
C语言中将整数转换成小数的几种方法
备孕查口腔都查什么
关于描写春天的成语92句
黑檀木茶盘真假鉴别以及保养技巧
详解英语不定式(to do)的用法
鼻窦炎头痛头晕影响生活,不治可危害大脑!
市场竞争者分析:如何在激烈竞争中脱颖而出
涡扇15发动机的表现,引发了一些讨论,这背后到底意味着什么?
肠炎宁片应该如何服用
脑干与情绪意识的关联:探讨情绪意识产生的生物学机制
四川月亮湾旅游攻略:景点介绍、实用建议与最新资讯
海南月亮湾深度游攻略:景点详解与全方位旅行指南
杜甫的代表作:一位伟大诗人的创作精华
解读华为的底层管理逻辑—员工篇
美"滞留宇航员"归期再添变数