本文以stm32f4為例,講解stm32標(biāo)準(zhǔn)庫工程中各個(gè)文件的作用,學(xué)藝不精,如有錯(cuò)誤,望大家私信或評論指出。
先看思維導(dǎo)圖
啟動文件
startup_stm32f427xx.s?
該文件是stm32的啟動文件,由匯編語言編寫,主要是做stm32上電時(shí)的配置設(shè)置(如堆棧指針,時(shí)鐘數(shù))并跳轉(zhuǎn)到main函數(shù)中,執(zhí)行c代碼。
stm32從該文件開始執(zhí)行,單獨(dú)包含該文件時(shí)(使用寄存器編程時(shí)),需在外部文件聲明兩個(gè)函數(shù)分別是void SystemInit(void) 和 int main();是因?yàn)閟tartup_stm32f4xx.s文件中調(diào)用了上述兩個(gè)函數(shù)用來配置芯片時(shí)鐘樹,main()函數(shù)執(zhí)行用戶代碼。
時(shí)鐘配置文件
system_stm32f4xx.h? 和?system_stm32f4xx.c
這倆文件主要用于stm32的時(shí)鐘管理,該文件會根據(jù)不同的芯片,配置不同的內(nèi)核時(shí)鐘。
文件提供了四個(gè)函數(shù),其中最重要的便是SystemInit()函數(shù),該函數(shù)用于配置芯片時(shí)鐘。
外設(shè)相關(guān)文件
stm32f4xx.h
類似于51單片機(jī)的頭文件#includ <reg52.h>????????stm32也有對應(yīng)的頭文件#includ“stm32f4xx.h”(注意,頭文件用尖括號引出,編譯器會直接到安裝目錄尋找頭文件,若用雙引號引出,編譯器會先在工程目錄下尋找頭文件(注意在魔法棒中包含頭文件),若工程中沒找到頭文件,再會到安裝目錄下尋找)。
該文件實(shí)現(xiàn)對所有(片外)外設(shè)寄存器的定義和地址映射,時(shí)鐘的晶振頻率數(shù)據(jù)也保存在該文件中。
stm32f4xx_xxx.c 和stm32f4xx_xxx.h
_xxx : gpio,i2c, usart,spi...一系列外設(shè)
?.h文件:外設(shè)固件庫函數(shù)的聲明,外設(shè)結(jié)構(gòu)體的定義,初始化結(jié)構(gòu)體時(shí)所需的參數(shù)列表。
.c文件:主要是固件庫函數(shù)的實(shí)現(xiàn)。
內(nèi)核相關(guān)文件
core_cm4.h 和 core_cm4.c
這倆文件由arm提供實(shí)現(xiàn)對所有片內(nèi)外設(shè)的寄存器定義和描述。
misc.c 和 misc.h
這倆文件由ST提供用來配置NVIC(嵌套向量中斷控制器)和Systick(滴答定時(shí)器)
其他文件
stm32f4xx_it.c 和 stm32f4xx_it.h
這倆文件由ST提供,用于用戶集中管理系統(tǒng)中斷,用戶可以講中斷服務(wù)函數(shù)寫在任何位置,也可以集中寫在stm32f4xx_it.c文件中。
stm32f4xx_conf.h
頭文件的頭文件,包含了所有外設(shè)的頭文件文章來源:http://www.zghlxwxcb.cn/news/detail-831735.html
如你需要在一個(gè)文件中包含多個(gè)外設(shè)(如 gpio ,usart,flash,dma等)那么你可以直接包含stm32f4xx_conf.h文章來源地址http://www.zghlxwxcb.cn/news/detail-831735.html
到了這里,關(guān)于一篇文章帶你搞懂stm32工程文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!