STM32的cubemx生成的工程中头文件的包含关系
举例说明:
上图是通过cubemx生成的工程,文件的包含关系如下:
1. main.c文件开头就包含了main.h iwdg.h gpio.h,
由于 iwdg.h 和gpio.h中都对应声明void MX_xxx_Init(void)(xxx表示外设名称),所以main.c中就可以使用这些MX开头的外设函数了,而在iwdg.c gpio.c等c文件中定义void MX_xxx_Init(void)的内容时需要用到各类外设寄存器等,外设寄存器等文件都在stm32f1xx_hal.h的后续包含文件中,而stm32f1xx_hal.h又被包含在main.h中,所以iwdg.h gpio.h中只需包含main.h即可,这样c文件中就能定义void MX_xxx_Init(void)了,这样在iwdg.c 和gpio.c中,他们包含的头文件除了自身的头文件,其他剩余都是一样的,如下图:
2. gpio.c文件下包含了一堆头文件,这些头文件的包含关系始于gpio.h,下面梳理包含关系,其中依次为表示“包含”关系:
其中,stm32f1xx_hal_conf.h中内容如下,使能外设头文件引入外设的相关功能函数(函数声明在外设头文件中):
(gpio外设头文件)stm32f1xx_hal_xxx.h中的内容
另外,stm32f1xx.h中的内容如下,这是keil中的设置定义的变量使能了图中的头文件:
赞 (0)