已經介紹了過了CMSIS標准,ST公司按照這個標准設計了一套基於STM32F10x的固件庫,我們可以直接在ST公司的官網進行下載,現在給大家STM32最新固件庫v3.5,在網盤上給大家提供了下載包,鏈接及提取碼如下。
鏈接:http://pan.baidu.com/s/1nuXXLt3 密碼:wztk
文件夾介紹
下面就來介紹下庫文件的目錄及文件。打開下載好的固件庫包如下圖所示。

下面簡單介紹各個文件件及文件的作用。
-
_htmresc 文件夾:存放ST公司的LOGO圖標,這個文件夾不用管。
-
Libraries 文件夾:在這個文件夾內有兩個子目錄,CMSIS文件夾用於存放符合CMSIS標准的文件,包括STM32啟動文件、ARM Cortex內核文件和對應外設頭文件stm32f10x.h。STM32F10x_StdPeriph_Driver文件夾用於存放STM32外設驅動文件,inc目錄用於存放外設的頭文件,src目錄用於存放外設的源文件。從這些源文件的命名就可以知道對應文件的功能,比如stm32f10x_gpio.c文件,包含了對STM32的GPIO寄存器的操作函數等,如果要對STM32 GPIO操作可以調用這個文件內的函數,但是要記得添加對應的頭文件,如stm32f10x_gpio.h。此文件夾內文件在后面創建庫函數模板的時候會重點使用。
-
Project文件夾:此文件夾下有2個目錄,STM32F10x_StdPeriph_Examples文件夾存放的是ST公司提供的外設驅動例程,在開發過程中可以借鑒這些例程快速構建自己的外設驅動。有時間大家可以看看,里面的編程思路對我們還是很有幫助的。STM32F10x_StdPeriph_Templates文件夾存放的是官方的固件庫工程模板, 我們后面創建自己工程模板的時候就需要復制此文件夾內的幾個文件。
-
Utilities文件夾:此文件夾是ST官方評估板的一些源文件,這里不需要管。
-
固件庫文件夾根目錄下有一個stm32f10x_stdperiph_lib_um.chm文件,這個文件是固件庫的幫助文檔,可以直接雙擊打開。這個文檔對於后面學習庫函數是非常有幫助的, 只不過這里只有英文版的, 但是里面的英文都很好理解,如果學習過程中有不明白的單詞,都可以通過百度翻譯等軟件查詢。
文件介紹
在介紹庫文件之前先看下它們文件之間的關系,如下圖所示。

core_cm3.h 文件位於“\STM32 最新固件庫v3.5\Libraries\CMSIS\CM3\CoreSupport”目錄下,說明此文件屬於CMSIS標准文件,是用來提供進入M3內核的接口文件,屬於CMSIS的核心文件,由ARM提供。對於所有M3內核的芯片來說這個文件都是相同的,不需要我們修改。
stm32f10x.h 、system_stm32f10x.h和system_stm32f10x.c文件存放在“\STM32最新固件庫v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x”目錄下,system_stm32f10x.h是片上外設接入層系統頭文件。主要是申明設置系統及總線時鍾相關的函數。與其對應的源文件是system_stm32f10x.c。這個文件里面
有一個非常重要的SystemInit()函數申明,這個函數在我們系統啟動的時候都會調用,用來設置系統的整個系統和總線時鍾。而stm32f10x.h是STM32F10x的頭文件,類似於51單片機的reg.51,在開發STM32F10x程序的時候基本上都會調用這個頭文件,可見其重要性。此文件內部封裝了STM32的總線、內存和外設寄存器等,同時該文件還包含了一些時鍾相關的定義和中斷相關定義等。
stm32f10x_ppp.c文件是STM32外設的驅動源文件, 比如stm32f10x_gpio.c文件。 里面已經封裝好操作GPIO外設底層的內容, 提供給我們使用的是一些API函數。stm32f10x_ppp.h就是對應的頭文件。還有stm32f10x_rcc.c、misc.c和misc.h文件他們都是存放在“\STM32最新固件庫v3.5\Libraries\STM32F10x_StdPeriph_Driver”內。
stm32f10x_it.c文件用於存放中斷函數,不過中斷函數也可以放在其他工程文件內,所以這個文件很少操作,對應的stm32f10x_it.h文件是它的頭文件。 stm32f10x_conf.h文件是配置文件,用於刪減我們使用的外設頭文件,比如使用GPIO外設,那么就需要調用stm32f10x_gpio.h頭文件,如果不使用GPIO外設,可以將此頭文件注釋掉,一般情況下我們不會對這個配置文件操作,因為如果不使用一個外設,可以在工程內不調用即可。這幾個文件存在“\STM32 最新固件庫v3.5\Project\STM32F10x_StdPeriph_Template”內。
Application.c文件用於存放用戶編寫的應用程序,文件名可以根據個人愛好命名。我們通常會命名為main.c,表示存放我們的主函數代碼。
在后面創建工程模板時,添加這些文件還不夠,還要將STM32的啟動文件添加進來,否則系統不能啟動。ST固件庫提供的啟動文件有很多,需根據使用的STM32芯片來選擇,若開發板上使用的是高容量的STM32F1 芯片,選擇startup_stm32f10x_hd.s。啟動文件startup_stm32f10x_hd.s存放在“\STM32最新固件庫v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm”內。

