【STM32】HAL库结构

之前一直在使用HAL库但是从来没有仔细了解过HAL库文件结构,今天看了看写个博客来记录一下

HAL库关键文件包含关系

main.c/.h \ 其他用户文件
stm32f1xx_hal.h
stm32f2xx_hal_ppp.c \stm32f2xx_hal_ppp_ex.c
stm32f1xx_hal_conf.h
stm32f1xx_hal_ppp.h
stm32f1xx_hal_def.h
system_stm32f1xx.c
stm32f1xx.h
stm32f1xx_hal_ppp_ex.h
startup_stm32f2xx.s
stm32f1xx_it.c/.h

关键文件定义

  • main.c/.h:主函数 程序执行的起点。

  • stm32f1xx_hal.c/.h: 此文件用于HAL初始化,并且包含DBGMCU、重映射和基于systick的时间延迟等相关的API。

  • stm32f1xx_hal_conf.h :该文件是一个用户级别的配置文件,用来实现对HAL库的裁剪,其位于用户文件目录,不要放在库目录中。

  • stm32f1xx_hal_ppp.c/.h:主要的外设或者模块的驱动源文件,包含了该外设的通用API 。ppp指不同的外设实现 (比如 stm32f1xx_hal_adc.c/.h stm32f1xx_hal_spi.c/.h)。

  • stm32f1xx_hal_ppp_ex.c/.h:外围设备或模块驱动程序的扩展文件。这组文件中包含特定型号或者系列的芯片的特殊API。以及如果该特定的芯片内部有不同的实现方式,则该文件中的特殊API将覆盖_ppp中的通用API,_ppp指不同的外设 (比如 stm32f1xx_hal_adc.c/.h stm32f2xx_hal_spi.c/.h)。

  • stm32f1xx_hal_def.h:此文件包含HAL公共定义、枚举、宏和结构定义。

  • system_stm32f2xx.c :此文件主要包含SystemInit()函数,该函数在刚复位及跳到main之前的启动过程中被调用。 它不在启动时配置系统时钟(与标准库相反)。 时钟的配置在用户文件中使用HAL API来完成。

  • stm32f1xx.h :主要包含STM32同系列芯片的不同具体型号的定义,是否使用HAL库等的定义,接着,其会根据定义的芯片信号包含具体的芯片型号的头文件。还有一些操作位宏定义。

  • stm32f1xx_it.c/.h : 中断处理函数的相关实现。

  • startup_stm32f2xx.s:芯片启动文件,主要包含堆栈定义,终端向量表等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值