分享

STM32的cubemx生成的工程中头文件的包含关系

 remag 2021-08-22

举例说明:

上图是通过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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多