HAL库主要有3个层次的头文件: 1.芯片系列总包头文件。如H7系列为 stm32h7xx.h, 这也是用户在程序中要包含的头文件。它的主要作用是通过设备型号宏的定义,将具体型号头文件包括进来。
2. 该系列具体型号头文件。如 stm32h743xx. h就是stm32h743的设备文件。在这个文件中有一个外设配置文件stm32h7xx_hal_conf.h,通过这个文件,可以进行外设配置(是否包括相应外设的头文件)。用户也可以不进行配置,它默认包含全部外设头文件。注意,这里的配置仅仅是将头文件包含进来,工程中必须添加相应外设的c 文件后,才能真正使用相应的外设函数。 3. 外设头文件。如ADC对应的头文件stm32h7xx_hal_adc.h, DAC对应的头文件为stm32h7xx_hal_dac.h。 具体说明如下: stm32h7xx.h是包括各种H7xx系列芯片的总包头文件,在应用程序中使用它即可。通过定义型号宏,可以灵活确定对应的芯片型号。 它分为两大部分: 1.设备型号定义。通过定义STM32H743xx宏(可以在Keil中定义,也可以直接放开相关宏定义) ,来确定使用的MCU型号。定义这个宏以后,对应的头文件stm32h743xx.h就被包括进来了。
2.是否使用HAL库。通过定义USE_HAL_DRIVER宏来确定使用HAL库。定义这个宏以后,stm32h7xx_hal.h这个头文件就被包括进来了。它里面有各种除外设外的HAL函数的声明及相关变量,结构,宏等的定义。除此此外,它还包括一个外设配置头文件stm32h7xx_hal_conf.h,在这个头文件中,通过外设宏的定义和取消,可以将各个外设的头文件包含或排除,如ADC,CEC,DAC等的定义形式如下:
#define HAL_ADC_MODULE_ENABLED #define HAL_CEC_MODULE_ENABLED #define HAL_DAC_MODULE_ENABLED #define HAL_CORDIC_MODULE_ENABLED 如果将相应的宏义注释掉,就可以不包含相应外设的头文件。例如,如果不使用ADC外设,将HAL_ADC_MODULE_ENABLED宏定义注释掉,则ADC对应的头文件stm32h7xx_hal_adc.h就被排除了。
|