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

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