当前位置: 首页 > news >正文

完整教程:【stm32】cube固件解析和放入工程(HAL_F4)

完整教程:【stm32】cube固件解析和放入工程(HAL_F4)

首先cmd中运用命令生成文件夹方便观看

tree /f /a > tree.txt

生成的有60000多行,不要用/f就只有文件夹

_htmresc一般这个名就是图片资源和html等,不管

文档。就是Documentation就不管

Projects存放官方献出的示例工程,包含各种外设的应用模板和复杂应用。参考使用。

Drivers存放最核心的底层驱动,包括CMSIS内核文件、MCU外设驱动等。这是每个工程都必须的。

Middlewares存放中间件,即一些功能丰富的软件库,如ST自家的USB驱动、第三方操作系统FreeRTOS、网络协议栈LwIP和文件系统FatFs等。按需取

Utilities包含针对ST官方评估板(开发板)的特定代码(如BSP驱动)和资源。不管

详细看Drivers文件夹

xx_HAL_Drvicer文件夹

一个就是.xxx.chm文件经过编译的HTML帮助文件,它包含了xxx系列微控制器的完整技术参考手册。你可以把它理解为ST官方为开发者准备的“产品说明书”或“制作指南”。双击打开。数据手册首要服务于硬件工程师,而用户手册(.chm)主要服务于软件工程师

CMSIS

CMSIS - Cortex微控制器软件接口标准。这是由ARM制定的通用标准,确保了不同芯片厂商的Cortex-M内核单片机在软件层面有一定的兼容性。你可以把它理解为计算机的"主板和CPU的基本驱动"。

Documentatioin/不用想

Include/ 文件和Core/Include/下面全部一样

Core/ - 与芯片无关的纯内核支持

Device/

Device/ST/STM32F4xx/ - ST公司为STM32F4系列添加的设备特定支持,其中include/下要复制到工程中(可以要哪个芯片用哪个)source/文件夹下的有对应arm,gcc,iar三个环境的启动文件(启动文件可以自己用c语言写,不难,自己写可以和平台初始化记录放一起)。

  • 启动文件 (startup_stm32f4xxxx.s):这是芯片上电后运行的第一段代码。它包含了堆栈初始化、中断向量表(告诉你发生某个中断时该跳转到哪里去执行)、以及最终调用 main 函数的复位程序。这是不可或缺的

  • 系统初始化文件 (system_stm32f4xx.c):包含 SystemInit() 函数,在启动文件里被调用,用于初始化芯片的时钟系统(设置PLL,配置HCLK, PCLK等),让CPU和外设运行在正确的频率上。这个文件的头文件在core/ 下面源文件是在source/下面。

  • 内核相关头文件:如 core_cm4.h,定义了Cortex-M4内核的寄存器、NVIC(嵌套向量中断控制器)、SysTick(系统定时器)等的访问方式。在 core/ 或者Include/

  • 设备特定头文件 (stm32f4xx.h):这是最重要的设备头文件。它包含了你的STM32F4型号的所有外设寄存器定义(即,每个寄存器地址的宏定义)。当你写 GPIOA->ODR = 0xFFFF; 时,其实就是这个文件定义了 GPIOA 和 ODR。在include/

DSP/ - 数字信号处理库 (可选)

作用:提供Cortex-M4内核DSP指令集的软件接口,让你能用C语言轻松调用底层硬件加速功能。

RTOS/ - 实时操作系统接口 (可选)

CMSIS-NN (神经网络库)

CMSIS-DAP (调试访问端口)

开源的JTAG/SWD调试器固件,用于连接电脑和目标MCU,你观察过H7的是没有这个的,拥护基于Cortex-M0/M3/M4,因为这个给做调试器的MCU用的。

构建自己的Project

cmake或者make,要额外有交叉编译工具和CMakeLists.txt文件,还要自己搞研发环境。不过我写了对应文章并开源工程模版提供使用。就是这里只说明用什么库,不说明用什么方式,因为我肯定用的

一个基本的stm32工程需的库了。这样有什么好处?就是首先就是ST的第三方库,把CMSIS的Include/和Device/,还有STM32xxxx_HAL_Driver/。只要这三个就

可以多个添加Device/ST/下的文件夹,比如同时有f4和f1和h7,STM32xxxx_HAL_Driver/。甚至可以添加非ST的芯片,比如我用了Generic未知/裸机系统嵌入式、RTOS、裸机研发,这时候就可以通过配置cmake管理配置选项搞大型工程。

http://www.hskmm.com/?act=detail&tid=32055

相关文章:

  • 312、金缕衣
  • 使用 Visual Studio 快速创建 NuGet 程序包并发布到 NuGet 官网
  • 反配容斥
  • 怎么激活win11?笔记本重装系统后怎么激活Windows?
  • AVG Clear:彻底卸载AVG产品的专业工具
  • 现代 PHP8+ 实战特性介绍 Enums、Fibers 和 Attributes
  • php 1026
  • 用【WPF+Dlib68】实现 侧脸 眼镜虚拟佩戴 - 用平面图表现空间视觉 - 行人-
  • 科学背景如何赋能云计算业务战略
  • 【GitHub每日速递 251016】23k star,Daytona:90ms内极速运行AI代码,安全弹性基础设施来袭!
  • 用 【C# + Winform + Dlib68点】 实现静图眼镜虚拟佩戴 - 行人-
  • 图神经网络前沿技术与应用探索
  • MVCC、幻读、间隙锁与临键锁(三)
  • MVCC、幻读、间隙锁与临键锁
  • MVCC、幻读、间隙锁与临键锁(二)
  • 读AI赋能01超级能动性
  • 生物聚酯塑料回收技术创新与商业应用
  • 189 轮转数组 - MKT
  • SGD 到 AdamW 优化器的实践选型指南
  • 图文并茂展示CSS li 排版大合集,总有一款是你刚好需要的
  • 10.15 闲话
  • 函数的类型注释器
  • 如何手动构建一个线性回归模型
  • DshanPI-A1 RK3576 gmrender-resurrect B站投屏
  • 组件级异步加载与预加载策略
  • 好记性不如烂笔头之C语言优先级查询
  • SAM系列论文浅析
  • 2023 ICPC Xian
  • 2025-10-15 ?
  • 为什么一部电影,一本书一看就喜欢