STM32 標準外設庫說明

1.從stm32網站下載標準外設庫,解壓後得到下面文件

Libraries目錄:

    CMSIS目錄是函數固件庫的核心文件:CMSIS向下負責與內核和各個外設直接打交道,向上提供實時操作系統用戶程序調用的函數接口。若無CMSIS標準,那麼各個公司設計的庫函數就會不同。 

        CM3\CoreSupport下的core_cm3.c、core_cm3.h是CMSIS的核心文件,提供進入Crotex-M3內核的接口,這是由ARTM公司提供的,對所有M3內核的芯片都適用。

        DeviceSupport\ST\STM32F10x目錄下主要存放一些啓動文件以及基礎的寄存器和中斷向量的定義的文件。

        startup目錄主要存放芯片的引導文件,即Bootload.

                這8個startup打頭的.s文件,是針對不同容量的芯片的啓動文件

                    startup_stm32f10x_hd.s: 適用於小容量的STM32,小容量: <= 32K
                    startup_stm32f10x_ld.s: 適用於中等容量的STM32,中等容量: >= 64K && <= 128K
                    startup_stm32f10x_md.s: 適用於大容量的STM32,大容量: >= 256K

    STM32F10x_StdPeriph_Driver放的是STM32的固件庫源碼文件

        inc存放stm32f10x_xxx.h頭文件

        src目錄下存放的是stm32f10x_xxx.c的源代碼文件,每一個.c和.h文件對應稱爲一組文件,每組文件對應一個片內外設,如RCC、IIC。

2.重要文件說明:

stm32f10x.h這個頭文件是STM32開發最爲重要的一個頭文件,其間有許多結構體和宏定義,這個文件裏面主要是系統寄存器的定義申明以及包裝對其的操作。

    extern "C" {   這個語句用來說明後面的定義都是使用C語言寫的。這個 __cplusplus 是指C++來的,4、5句的意思就是說如果用C++編譯器的話,它裏面是定義有__cplusplus 這個的,而通過 extern "C" { 告知編譯器,這段代碼是用C編寫的,要按照C語言編譯。這是因爲C++裏面有函數重載,編譯的時候把參數也編譯了,而C的話,編譯只編譯函數名。

    #if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL) 
這段是用來定義器件容量,可以通過自己取消註釋來選擇,也可以在KEIL裏面設置全局宏定義,2種方式。

    用於定義是否使用外設驅動,如果註釋掉或者keil中沒設全局宏定義的話,則代表不使用ST庫提供的外設驅動庫,在本文倒數第二段代碼中有句

  #ifdef USE_STDPERIPH_DRIVER

   #include "stm32f10x_conf.h"

  #endif

  stm32f10x_conf.h用於外設註釋配置。

 

 

 

 

 

 

 

system_stm32f10x.c對應的頭文件時system_stm32f10x.h,這組文件的功能是設置系統和總線時鐘,其間最重要的函數是SystemInit()函數,這個函數是在系統啓動時調用的,用來設置整個系統的時鐘。在system_stm32f10x.c文件中的開頭註釋,也明確指明這組文件的作用:
 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章