標(biāo)題:
stm32的庫(kù)文件的用法解釋
[打印本頁(yè)]
作者:
lianyiqun
時(shí)間:
2015-7-8 22:51
標(biāo)題:
stm32的庫(kù)文件的用法解釋
1、
我們需要加那些文件進(jìn)來才能跑動(dòng)一個(gè)程序:
首先我們要對(duì)庫(kù)文件有一定的了解,其中STM32F10xR.LIB是封裝好了的.C文件,它包括stm32f10x_conf.c stm32f10x_adc.c stm32f10x_gpio.c等等,要用這些C函數(shù),直接包含頭文件stm32f10x_conf.h stm32f10x_adc.h stm32f10x_gpio.h就行了,但是頭文件也能用stm32f10x_lib.h直接包含就行了,所以我們看到的keil中只用添加GROUP中的SOURCE中的四個(gè)文件就行了
其中的stm32f10x_vector.s是啟動(dòng)文件,有的版本是startup_stm32f10x_hd.s,這個(gè)事根據(jù)版本和芯片的型號(hào)來定得名稱,總之他的功能就是啟動(dòng)代碼。其中stm32f10x_lib.h是在main.c中包含的,stm32f10x_it.c是中斷的相關(guān)程序,暫時(shí)沒用到。以上圖片是沒有編譯的時(shí)候的,如果編譯之后會(huì)見到.C文件下面會(huì)有很多的.H頭文件
也可以在C文件上點(diǎn)擊右鍵,隱藏這些.H頭文件。
下面我們來看看,火牛開發(fā)板的程序都添加了那些東西進(jìn)來用于跑通一個(gè)流水定的程序:
從這里看,有庫(kù)文件LIB其中他只含有要用到的5個(gè).C文件。在添加文件的過程中不用添加頭文件,因?yàn)槟闾砑恿讼鄳?yīng)的C文件之后,頭文件會(huì)在編譯的之后自動(dòng)包含進(jìn)來,只要你將頭文件放在正確的位置,現(xiàn)在說說如何添加正確的位置能讓KEIL找到頭文件,先看下圖
在火牛的這個(gè)跑馬燈的程序中要改變頭文件的位置可以通過改變inc文件夾的位置,到時(shí)候找到這個(gè)位置就行了,按照上圖的位置找到,并且重新編譯一遍就能指向新的位置了。
如果想另外添加頭文件新的位置時(shí)的話就用下圖
歸納兩點(diǎn):a:首先就是添加啟動(dòng)文件,用戶自己編寫的.C文件,函數(shù)庫(kù)中的C文件
b:然后就直接指定.h文件的位置,讓編譯器在編譯的時(shí)候能找到他們就行了。
2、下面主要說說每個(gè)C文件的含義和每個(gè)頭文件的含義:
a、首先是
stm32f10x_map.h
,
這個(gè)文件其實(shí)在新版本中改變了名字,現(xiàn)在的名字是
stm32f10x.h,它
stm32f10x.h則定義了啟動(dòng)設(shè)置,以及所有寄存器宏定義
b、
core_cm3.h這個(gè)加進(jìn)來可以先不管,初學(xué)者用不到他,他是內(nèi)核的相關(guān)知識(shí)
c、stm32f10x_conf.h用于包含
#include "stm32f10x_adc.h"
#include "stm32f10x_bkp.h"
#include "stm32f10x_can.h"
#include "stm32f10x_crc.h"
#include "stm32f10x_dac.h"
#include "stm32f10x_dbgmcu.h"
#include "stm32f10x_dma.h"
#include "stm32f10x_exti.h"
#include "stm32f10x_flash.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_i2c.h"
#include "stm32f10x_iwdg.h"
#include "stm32f10x_pwr.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_rtc.h"
#include "stm32f10x_spi.h"
#include "stm32f10x_tim.h"
#include "stm32f10x_usart.h"
#include "stm32f10x_wwdg.h"
#include"misc.h"等等這些文件,以免在主函數(shù)中寫太多包含的頭文件不夠簡(jiǎn)潔,然而在主函數(shù)main當(dāng)中再用 stm32f10x.h來包含stm32f10x_conf.h,這樣在主函數(shù)中直接include就相當(dāng)于包含了以上的那么多的頭文件,這個(gè)就相當(dāng)于是傳遞的功能了。
d、stdint.h定義了 int16_t 、 uint32_t 、 int64_t 等整型,在需要確定大小的整型時(shí)可以使用它們代替 short 、unsigned long long 等
e、system_stm32f10x.h,
微控制器專用系統(tǒng)文件
不得不承認(rèn)火牛開發(fā)板配套的程序所加載的庫(kù)文件確實(shí)是太亂了,很多庫(kù)文件要自己去看其中的內(nèi)容才能知道他的用法和意義
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1