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
热门推荐
牙髓炎诊断方法:从温度测试到穿刺检查
油性空气滤芯与普通滤芯有何差异?
什么是"从壁上观"这个成语的含义?
多方助力中小企业创新发展
淋巴结:人体的防御卫士
BIM技术在建筑设计中的应用:提高效率与协同合作的最佳实践
小户型秒变大户型的几个收纳原则
如何在 Windows 11 上添加多个时区时钟
甲泼尼龙导致的视力模糊
中国新能源汽车科技创新和产业发展路径及思考
七言律诗,诗歌的韵律与格律
中国古代诗词英译品读:李商隐《锦瑟》
两车刮擦责任图解:全责与主次责任的利弊分析
月子里的宝宝怎样睡觉姿势
何时桃花烂漫?黟县桃花开花期预报来了
牵手冯小刚?阿里影业再出手
《鹰之歌》的阅读答案
成都市人工智能行业春招热度飙升,求职人数创历史新高
人生复利的α和β
公司对公账户注销流程及有限公司债务责任归属指南
中国法律案例数据库:构建、特点与应用
怎样选择合适的徒步鞋
给水管径规格如何确定?选择要点
风险管理在项目管理中的实际应用与效果评估
股票账户佣金调整指南:从协商到更换券商的全方位攻略
跨越神话与历史:孙悟空背后的多元文化故事
元素百科——氟,一段悲壮的发现史
《哪吒》燃爆了!故事的发生地陈塘关在宁波镇海?
商标保护的措施有哪些
美国着急也没用!中国火星采样任务定了,大概率比美国更先完成