之前一直在使用HAL库但是从来没有仔细了解过HAL库文件结构,今天看了看写个博客来记录一下
HAL库关键文件包含关系
关键文件定义
-
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:芯片启动文件,主要包含堆栈定义,终端向量表等