程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 【STM32學習筆記1】基於固件庫的STM32_MDK工程模版

【STM32學習筆記1】基於固件庫的STM32_MDK工程模版

編輯:關於C語言

  文章包含STM32固件庫介紹和工程模板搭建兩方面內容。

一、STM32固件庫介紹


  要建立工程模板,首先要對STM32的固件庫有所了解。STM32的固件可以從ST官網下載,網址為:http://www.stmicroelectronics.com.cn/web/cn/catalog/tools/FM147/CL1794/SC961/SS1743,下載後的文件夾組織結構如圖1所示。

 

  為了更清楚的了解這個文件夾,我們把Libraries文件夾展開來看,如圖2的所示。其中CMSIS文件夾提供了對STM32F10x系列芯片的Cortex M3的支持。Documentation下有個CMSIS_Core.htm文件,描述了Cotex Microcontroller Software Interface Standard(CMSIS)。CM3文件夾下的兩個文件夾,在CoreSupport中的是位於CMSIS標准的核內設備函數層的M3核通用的源文件core_cm3.c和頭文件core_cm3.h,它們的作用是為那些采用Cortex-M3核設計SOC的芯片商設計的芯片外設提供一個進入M3內核的接口,這兩個文件在其它公司的M3系列芯片也是相同的。另外一個文件夾包括了為STM32F10x系列MCU寫的設備外設訪問層DPAL頭文件stm32f10x.h以及設備外設訪問層系統DPALS頭文件system_stm32fx.h。

  (1)stm32f10x.h

  stm32f10x.h包括了STM32F10x系列處理器所有的外設寄存器定義、位定義和不同容量STM32F10x的內存映射。這裡強調一點,如果選用外設庫來編程,必須在編譯器的PreProcessor Symbols的Define中寫入STM32F10X_HD,USE_STDPERIPH_DRIVER,原因是在stm32f10x.h中有兩條判斷語句,如果不定義就會報錯。

STM32F10X_HD USE_STDPERIPH_DRIVER

  (2)system_stm32f10x

  system_stm32f10x.c,是由ST公司提供的,遵守CMSIS標准。該文件的功能是設置系統時鐘和總線時鐘。system_stm32f10x.c在實現系統時鐘的時候要用到PLL(鎖相環),這就需要操作寄存器,寄存器都是以存儲器映射的方式來訪問的,所以該文件中包含了stm32f10x.h 這個頭文件。

  (3)startup文件夾

  startup文件夾根據不同編譯環境編寫了啟動的匯編代碼,這些匯編文件根據不同內存容量的芯片來區分,根據自己芯片選擇對應的啟動文件。文件名的英文縮寫的意義如下:

  cl:互聯型產品,stm32f105/107系列

  vl:超值型產品,stm32f100系列

  xl:超高密度(容量)產品,stm32f101/103系列

  ld:低密度產品,FLASH小於64K

  md:中等密度產品,FLASH=64 or 128

  hd:高密度產品,FLASH大於128

  (4)STM32F10x_StdPeriph_Driver文件夾

  Libraries\STM32F10x_StdPeriph_Driver文件夾下有inc(include的縮寫)跟src(source的簡寫)這兩個文件夾,這都屬於CMSIS的設備外設函數部分。src裡面是每個設備外設的驅動程序,這些外設是芯片制造商在Cortex-M3核外加進去的。

  為了更好的理解STM32F10xxx標准外設庫各個文件間的聯系,我們繪出它的體系結構,如圖3所示。圖中很好的展示了各層以及具體文件之間的聯系,各文件的具體功能說明如表2所示。

二、STM32工程模板搭建

  (1)新建文件夾

  新建文件夾Template,在該文件夾下面建立四個文件夾,入下圖4所示。

  (2)復制庫文件

  將第一節介紹的固件庫相關文件復制到下圖所示文件夾中

                                                

  新建工程的方法不再詳述,關鍵講解文件添加部分。如圖6,右擊Target1,單擊Manage Componets。修改工程名為Temp,Groups中新建Project,CORE,FWLIB三個文件夾,各個文件夾添加文件如圖7~9所示。

                    

                 main

  (5)Target Options編輯

  單擊魔法棒,選擇Output,在Select Folder for Objects中選擇第一步中建立的OBJ文件夾,圖10。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved