STM32 F10X 固件庫(kù) 是一個(gè)完整的軟件包,包括所有的標(biāo)準(zhǔn)外設(shè)的設(shè)備驅(qū)動(dòng)程序,該庫(kù)是一個(gè)固件包,其中包含例程,數(shù)據(jù)結(jié)構(gòu)和宏覆蓋STM32外設(shè)功能的集合。它包括一個(gè)描述該設(shè)備的驅(qū)動(dòng)程序,以及一組的每個(gè)外設(shè)的例子。固件庫(kù)允許用戶(hù)應(yīng)用程序可用于任何設(shè)備,而不需要深入研究每個(gè)外設(shè)的規(guī)格。
STM32標(biāo)準(zhǔn)外設(shè)庫(kù)概述:
STM32標(biāo)準(zhǔn)外設(shè)庫(kù)之前的版本也稱(chēng)固件函數(shù)庫(kù)或簡(jiǎn)稱(chēng)固件庫(kù),是一個(gè)固件函數(shù)包,它由程序、數(shù)據(jù)結(jié)構(gòu)和宏組成,包括了微控制器所有外設(shè)的性能特征。該函數(shù)庫(kù)還包括每一個(gè)外設(shè)的驅(qū)動(dòng)描述和應(yīng)用實(shí)例,為開(kāi)發(fā)者訪(fǎng)問(wèn)底層硬件提供了一個(gè)中間API,通過(guò)使用固件函數(shù)庫(kù),無(wú)需深入掌握底層硬件細(xì)節(jié),開(kāi)發(fā)者就可以輕松應(yīng)用每一個(gè)外設(shè)。因此,使用固態(tài)函數(shù)庫(kù)可以大大減少用戶(hù)的程序編寫(xiě)時(shí)間,進(jìn)而降低開(kāi)發(fā)成本。每個(gè)外設(shè)驅(qū)動(dòng)都由一組函數(shù)組成,這組函數(shù)覆蓋了該外設(shè)所有功能。每個(gè)器件的開(kāi)發(fā)都由一個(gè)通用API (application programming interface 應(yīng)用編程界面)驅(qū)動(dòng),API對(duì)該驅(qū)動(dòng)程序的結(jié)構(gòu),函數(shù)和參數(shù)名稱(chēng)都進(jìn)行了標(biāo)準(zhǔn)化。
ST公司2007年10月發(fā)布了V1.0版本的固件庫(kù),MDK ARM3.22之前的版本均支持該庫(kù)。2008年6月發(fā)布了V2.0版的固件庫(kù),從2008年9月推出的MDK ARM3.23版本至今均使用V2.0版本的固件庫(kù)。V3.0以后的版本相對(duì)之前的版本改動(dòng)較大,本書(shū)使用目前較新的V3.4版本。
使用標(biāo)準(zhǔn)外設(shè)庫(kù)有兩個(gè)優(yōu)點(diǎn):它節(jié)省了顯著,否則將被花費(fèi)在編碼時(shí)間,同時(shí)降低了應(yīng)用開(kāi)發(fā)和集成成本。
STM32F10x的標(biāo)準(zhǔn)外設(shè)庫(kù)是完全符合CMSIS。
使用步驟:
如果在開(kāi)發(fā)中使用標(biāo)準(zhǔn)外設(shè)庫(kù)需要哪些描述呢?下面就進(jìn)行簡(jiǎn)要的介紹,這兒介紹的使用方法是與開(kāi)發(fā)環(huán)境無(wú)關(guān)的,在不同的開(kāi)發(fā)環(huán)境中可能在操作方式上略有不同,但是總體的流程都是一樣的,下一小節(jié)將介紹在MDK ARM開(kāi)發(fā)環(huán)境下使用標(biāo)準(zhǔn)外設(shè)庫(kù)的詳細(xì)過(guò)程。
首先新建一個(gè)項(xiàng)目并設(shè)置工具鏈對(duì)應(yīng)的啟動(dòng)文件,可以使用標(biāo)準(zhǔn)外設(shè)庫(kù)中提供的模板,也可以自己根據(jù)自己的需求新建。標(biāo)準(zhǔn)外設(shè)庫(kù)中已經(jīng)提供了不同工具鏈對(duì)應(yīng)的文件,位于STM32F10x_StdPeriph_Lib_V3.4.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup目錄下。
其次按照使用產(chǎn)品的具體型號(hào)選擇具體的啟動(dòng)文件,加入工程。文件主要按照使用產(chǎn)品的容量進(jìn)行區(qū)分,根據(jù)產(chǎn)品容量進(jìn)行選擇即可。每個(gè)文件的具體含義可以在“stm32f10x.h”文件中找到對(duì)應(yīng)的說(shuō)明