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中的設置定義的變量使能了圖中的頭文件:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章