-庫介紹:
各個芯片廠家在提高自家芯片性能的同時也在想方設(shè)法的降低自家芯片的開發(fā)難度。開發(fā)難度降低就會減少開發(fā)的時間和金錢成本,那樣芯片就會受到開發(fā)工程師和工廠的歡迎,自然賣的就多效益就好。ST公司針對STM32系列芯片發(fā)布了開發(fā)所用的庫。 STM32庫包含大量的函數(shù)接口,開發(fā)者在編寫程序時在庫的基礎(chǔ)上調(diào)用這些函數(shù)接口來配置STM32的寄存器,而不是開發(fā)者直接接觸底層寄存器,可以玩笑的說初學(xué)者接觸寄存器相當(dāng)于自殺。庫是在寄存器和用戶驅(qū)動層之間的代碼,向下處理與寄存器直接相關(guān)的配置,向上為用戶提供配置寄存器的接口。庫開發(fā)方式與直接配置寄存器方式的區(qū)分。 本文以STM32的3.5版本的庫為例,庫的原始文件可以從官網(wǎng)下載,也可從各個論壇和資料中獲得。 解壓后得到文件夾如下:STM32F10x_StdPeriph_Lib_V3.5.0 
--庫解釋:
點入文件夾后出現(xiàn)四個文件夾: 
_htmresc:包含兩張和ST公司相關(guān)的圖片,這個在編程時沒用,所以可以刪除。 Libraries:點入文件夾后發(fā)現(xiàn)兩個文件夾如下:CMSIS和STM32F10x_Stdperiph_Driver 
這里邊的文件都很重要,其中CMSIS的含義是:cortex microcontroller software interface standard即首字母縮寫成CMSIS標(biāo)準(zhǔn)。之前和大家介紹過STM32的內(nèi)核是由ARM公司設(shè)計的cortex_M3,而實際上使用此內(nèi)核的芯片不只是STM32,為了基于統(tǒng)一內(nèi)核的芯片能夠兼容(能夠兼容自然對ARM公司有利),所以ARM公司和芯片廠商建立了CMSIS標(biāo)準(zhǔn)。 在路徑STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS下有兩個文件夾: 
這兩個文件夾內(nèi): CoreSupport包含對核相關(guān)的一些函數(shù)。 
而DeviceSupport包含對外設(shè)和中斷相關(guān)的一些函數(shù)。startup中包含啟動文件。 
3.5的啟動文件比較之前分的更詳細(xì)了,啟動文件自然也就更多了。

尾綴英文縮寫不同,代表的含義為:
cl:互聯(lián)網(wǎng)型產(chǎn)品,目前包含此功能的系列芯片有STM32F105和F107系列。 vl:超值型產(chǎn)品,目前包含此功能的系列芯片有STM32F100系列。 xl:超高密度型產(chǎn)品。目前包含此功能的系列芯片有STM32F101系列和F103系列。 ld:低密度型,flash小于64K
md:中密度型,flash為64K或128K hd:高密度型,flash大于128K
庫并沒有介紹完,下面51黑會接著介紹。
庫是STM32系列芯片開發(fā)的基礎(chǔ)工具,就好比舞臺。8051內(nèi)核系列芯片呢,表演的節(jié)目比較簡單,所以找個空地人群一圍觀就能表演,而STM32系列芯片呢,功能比較復(fù)雜,就像表演大型的歌舞,需要一個燈光音響效果較好的舞臺。STM32的庫正是這樣的舞臺,但想在舞臺上自由表演前,自然也要對舞臺了解了解。
--庫解析: (接著STM32(6)--庫繼續(xù):)
Libraries:點入文件夾后發(fā)現(xiàn)兩個文件夾如下:CMSIS和STM32F10x_Stdperiph_Driver 
點入STM32F10x_Stdperiph_Driver文件夾,出現(xiàn)inc和src兩個文件夾。 
src是source的縮寫,是根源、本源的意思(英文縮寫喜歡省略掉中間的元音子母,有時不是很好理解原來的詞義。)。這里邊包含了大量的.文件,他們都是針對芯片外設(shè)(相對于CMSIS針對芯片的核來說)。而這些外設(shè)是芯片廠家自己設(shè)計時加入的,就是ST公司針對STM32每個外設(shè)而編寫的函數(shù)。 
大家可以發(fā)現(xiàn)這些.C文件的命名有很明顯的規(guī)律。那就是名字都是
stm32f10x_XXX.c而這XXX所替換的部分正對于著這個文件的功能。 比如說stm32f10x_exti.c文件。exti替換了XXX,exti大家應(yīng)該熟悉吧,因為樓道里總能看見發(fā)著綠光的標(biāo)示EXTI,就是出口的意思。在為控制器來說,這是中斷的含義。也就是說這個stm32f10x_exti.c文件負(fù)責(zé)STM32芯片和中斷相關(guān)的事情,換句話說,也就是當(dāng)你用到了中斷時,一定要把這個文件加到你的工程中。還有一個叫misc.c的文件,這里邊包含了外設(shè)對內(nèi)核的中斷向量控制器NVIC的訪問函數(shù),在配置中斷時,必須把這個文件添加到工程中。 inc是include的縮寫,里邊都是對應(yīng)著.C文件的.H頭文件。工程中用到的.C文件,就一定要把相應(yīng)的.H文件也添加進(jìn)去。 大家讀完上段可能對例子中的添加到工程里去這幾個字很不爽,因為我怎么知道哪個添加哪個不添加。其實有一個很簡單的方法,把兩個文件夾內(nèi)的.C和.H文件全部都添加到工程里去進(jìn)去。具體怎么新建工程后邊會講。
project:點入文件夾包括STM32F10x_StdPeriph_Examples和STM32F10x_StdPeriph_Template兩個文件夾。 
可以看出兩個文件夾的不同在于一個是這Examples一個Template。Examples翻譯為例子,Template翻譯為模版。例子和模版意思好像差不太多,舉個例子大家體會一下,六級作文例文和六級作文模版。 STM32F10x_StdPeriph_Template文件夾里主要都是這對不同編程軟件的工程模版。 
程序員可以再次基礎(chǔ)上進(jìn)行修改和繼續(xù)編程,此文件夾外的幾個.C和.H文件都是編程必須添加的文件,而且也是程序員需要改動的文件。 STM32F10x_StdPeriph_Examples文件點入有很多文件夾: 
大家會發(fā)現(xiàn)這個文件夾的名字和我們上邊說到的代表不同外設(shè)功能的XXX相對應(yīng)。這個文件夾正是ST公司針對外設(shè)的應(yīng)用舉例,每個外設(shè)的多種功能都有例舉,在后期自學(xué)過程很有參照意義。但這些例子不是工程形式,需要大家自己進(jìn)行配置,有的也需要進(jìn)行些修改。
以下是本系列教程文章列表:歡迎大家踴躍討論,有問題可在51黑論壇回帖提出.
STM32教程(1)-大學(xué)里沒碰見像STM32一樣吸引我的姑娘:http://www.torrancerestoration.com/bbs/dpj-41167-1.html STM32教程(2)-各種應(yīng)用和外設(shè)簡單介紹:http://www.torrancerestoration.com/bbs/dpj-41168-1.html STM32教程(3)-芯片引腳性質(zhì)介紹:http://www.torrancerestoration.com/bbs/dpj-41169-1.html STM32教程(4)-最小系統(tǒng)的設(shè)計:http://www.torrancerestoration.com/bbs/dpj-41170-1.html STM32教程(5)-庫:http://www.torrancerestoration.com/bbs/dpj-41171-1.html STM32教程(6)-STM32的流水燈程序:http://www.torrancerestoration.com/bbs/dpj-41162-1.html
STM32編程基礎(chǔ)(1)-Keil編程軟件的安裝:http://www.torrancerestoration.com/bbs/dpj-41163-1.html STM32編程基礎(chǔ)(2)-Keil庫的修改:http://www.torrancerestoration.com/bbs/dpj-41164-1.html STM32編程基礎(chǔ)(3)-Keil建立工程模版:http://www.torrancerestoration.com/bbs/dpj-41165-1.html STM32編程基礎(chǔ)(4)-Keil工程設(shè)置http://www.torrancerestoration.com/bbs/dpj-41166-1.html
|