意法半導體固件庫stdperiph_lib v3.5 配置工程MDK模板

首先下載STM32F10x_StdPeriph_Lib_V3.5.0,許多論壇上有,下邊也有鏈接,這個版本算是比較新的

貌似11年4月左右出來的,裏邊東西挺全乎~

首先看看解壓之後的目錄結構吧~

裏邊有如下文件夾:

_htmresc : ST的 logo

Libraries:  重要的文件均再次文件夾,包含STM32的系統文件和大量頭文件,也就是庫文件了。 

     子文件:CMSIS :一些內核、內部時鐘等驅動,ARM Cortex™ 微控制器軟件接口標準(CMSIS:Cortex Microcontroller Software Interface Standard) 是 Cortex-M 處理器系列的與供應商無關的硬件抽象層。 使用CMSIS,可以爲處理器和外設實現一致且簡單的軟件接口

     子文件:STM32F10x_StdPeriph_Driver :是意法半導體公司爲其芯片所加外設開發的標準驅動文件,裏邊一個含有 .h 文件夾,一個含有 .c 文件夾 分別對應 ADC DMA 等等外設,這些標準庫函數是我們的開發可以脫離 強硬件相關的一些 東西,而且裏邊註釋完整 方便閱讀理解。

Project:   包含大量外設的例程,和各個軟件版本的評估版工程模板。

                 KEIL MDK對應的就是 MDK-ARM 文件下的工程模板。你也可以利用這個工程模板來修改,得到你自己的工程模塊。

Utilities: 就是ST官方評估版的相關開發文件:對於自己的板子做的模板也不會用到。

stm32f10x_stdperiph_lib_um:這個是官方庫說明文檔,裏邊講解的很細緻,有點英文水平的可以參考,畢竟表述會更加準確,翻一翻有好處。

庫文件就簡單介紹到這裏,下面開始建立我們的MDK模板!

首先在桌面建立建立文件夾  ST_MDK_Template  

然後打開文件夾,在裏邊建立一下文件夾,便於將固件庫整理並且放入相關文件夾

 

Libraries : 這個文件夾是直接將 固件庫裏邊的主目錄下的 同名文件夾複製過來即可,因爲裏邊均爲庫函數 編輯工程是不會做修改,所以不要修改該文件夾的只讀屬性。

Obj : 用來保存編譯鏈接時產生的一些中間文件,還有最後的目標文件.hex 也會生成到此目錄下

User :該文件夾主要用來存儲用戶工程需要的一些文件,如main.c 等,下邊爲我在這個目錄下的一些文件,其中 main.c  std_periph_conf.h  std_periph_conf.c 三個文件是從工程當中建立的,其餘三個是從固件庫當中拖過來即可,三個固件庫文件位置如下:

stm32f10x_conf.h :   \STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\ 該文件是一個用來設置 是否包含相關外設(adc DMA 等)頭文件的預定義頭文件

stm32f10x_it.h stm32f10x_it.c  :   \STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\ 這兩個文件爲一套 用戶用來定義外部中斷函數的文件,需要用戶根據需要修改。

 

文件均已經準備好了,下面就可以進入MDK 當中進行工程配置:

雙擊打開Keil MDK ,點擊新建project ,如圖,將保存目錄選在剛建立好的最上層目錄中

                              

然後選擇你所使用的芯片 我的是STM32F103R8系,確認之後完成建立如下圖:

                                      

                                          

當出現如上提示問是否添加啓動文件時,選擇否,因爲我們會選擇固件庫自帶的啓動文件。

然後在Target1下建立幾個group ,project 目錄下 右鍵 add group.. 新建以下 3個group:

                                            

sys:用來指向系統啓動以及時鐘初始化等文件

src:用來指向固件庫裏外設源文件

user:用來指向用戶建立的文件中斷函數保存文件(stm3210x_it.h \ .c)

開始向工程當中添加文件~

點擊sys 右鍵add files to group 'sys' 分別添加當前項目所在文件夾下的以下文件

                                         

           文件                                    目錄                         

startup_stm32f10x_md.s   :ST_MDK_Template\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\  

說明:在以上目錄有 許多.s 結尾的彙編啓動文件,但是添加時只需要選擇你的芯片對應的啓動文件,選擇依據爲你的芯片的ROM容量 分爲三種 

小容量(ld):FLASH容量大小爲小於等於32K

中容量(md):FLASH容量大小爲64K-128K

大容量(hd):FLASH容量大小爲256K及以上

system_stm32f10x.c          :ST_MDK_Template\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\

說明: 這個文件用來初始化芯片的系統時鐘

core_cm3.c                        :ST_MDK_Template\Libraries\CMSIS\CM3\CoreSupport\

說明:保存着系統最核心的一些函數調用,均爲彙編編寫

點擊src 右鍵add files to group 'src' 分別添加當前項目所在文件夾下的所有.c文件,以上文件均爲外設驅動文件

ST_MDK_Template\Libraries\STM32F10x_StdPeriph_Driver\src

                                            

點擊user 右鍵add files to group 'src' 分別添加當前項目一下文件:

                                          

stm32f10x_it.c       \\ST_MDK_Template\User  中斷函數所在文件

點擊新建文件,在user文件夾下建立main.c文件 並且用同樣的方法添加到工程中的user group 中 。

將如下代碼複製到main.c當中,已備調試,main中實現的是初始化PB0,並拉高該端口電位。

#include"stm32f10x.h"
int main(void)
{

GPIO_InitTypeDef GPIO_InitStructure; 
/* GPIOD Periph clock enable */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
/* Configure PB0 in output pushpull mode */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB,&GPIO_InitStructure);
void GPIO_SetBits(GPIOB,GPIO_Pin_0);
while(1);
}

至此,完成了全部固件庫文件的遷移,下面需要在在當前項目中進行一些配置

 

右鍵單擊Target1 ,出現 options for target ....

點擊output 標籤 點擊 select folder for objects 將目錄指向新建的Obj文件夾,以使的產生的中間文件均保存在該文件夾下,保持主文件夾的“乾淨”

點擊C\C++ 標籤 在Define 文本框輸入 兩個預定義的量 STM32F10X_MD,USE_STDPERIPH_DRIVER  注意 兩個預定義的量中間使用逗號(英文輸入狀態下)隔開

仍然在C\C++標籤下 在Include Paths 文本框當中 添加當前文件夾內所有.h 文件所在目錄,以便編譯器查找時搜索各級目錄,具體步驟不講,將目錄列在這裏,需要的可以直接複製,但是前提是按照我的規則命名文件夾,否則你懂得。。。:

.\Libraries\CMSIS\CM3\CoreSupport;.\Libraries\STM32F10x_StdPeriph_Driver\inc;.\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x;.\User;..\ST_MDK_Template;.\Libraries\CMSIS\CM3

                                   

完成以上步驟呢,一個模板就建好了,點擊Build 或者 按 F7 快捷鍵編譯 通過 ~~~

 

大家可以保留 以後 都可以直接在此基礎上 DIY,這樣進度會快一些,請各位大俠拍磚~~

還有 我編輯好的 代碼打包上傳到iask 大家可以點擊 此 下載 固件庫V3.5  點擊 此下載 MDK工程模板

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