溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

意法半導(dǎo)體固件庫stdperiph_lib v3.5 配置工程MDK模板

發(fā)布時間:2020-06-21 04:30:51 來源:網(wǎng)絡(luò) 閱讀:1042 作者:楊利平 欄目:開發(fā)技術(shù)

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

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

首先看看解壓之后的目錄結(jié)構(gòu)吧~

意法半導(dǎo)體固件庫stdperiph_lib v3.5 配置工程MDK模板

里邊有如下文件夾:

_htmresc : ST的 logo

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

     子文件:CMSIS :一些內(nèi)核、內(nèi)部時鐘等驅(qū)動,ARM Cortex™ 微控制器軟件接口標(biāo)準(zhǔn)(CMSIS:Cortex Microcontroller Software Interface Standard) 是 Cortex-M 處理器系列的與供應(yīng)商無關(guān)的硬件抽象層。 使用CMSIS,可以為處理器和外設(shè)實現(xiàn)一致且簡單的軟件接口

     子文件:STM32F10x_StdPeriph_Driver :是意法半導(dǎo)體公司為其芯片所加外設(shè)開發(fā)的標(biāo)準(zhǔn)驅(qū)動文件,里邊一個含有 .h 文件夾,一個含有 .c 文件夾 分別對應(yīng) ADC DMA 等等外設(shè),這些標(biāo)準(zhǔn)庫函數(shù)是我們的開發(fā)可以脫離 強(qiáng)硬件相關(guān)的一些 東西,而且里邊注釋完整 方便閱讀理解。

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

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

Utilities: 就是ST官方評估版的相關(guān)開發(fā)文件:對于自己的板子做的模板也不會用到。

stm32f10x_stdperiph_lib_um:這個是官方庫說明文檔,里邊講解的很細(xì)致,有點英文水平的可以參考,畢竟表述會更加準(zhǔn)確,翻一翻有好處。

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

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

然后打開文件夾,在里邊建立一下文件夾,便于將固件庫整理并且放入相關(guān)文件夾

意法半導(dǎo)體固件庫stdperiph_lib v3.5 配置工程MDK模板

 

Libraries : 這個文件夾是直接將 固件庫里邊的主目錄下的 同名文件夾復(fù)制過來即可,因為里邊均為庫函數(shù) 編輯工程是不會做修改,所以不要修改該文件夾的只讀屬性。

Obj : 用來保存編譯鏈接時產(chǎn)生的一些中間文件,還有最后的目標(biāo)文件.hex 也會生成到此目錄下

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

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

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

意法半導(dǎo)體固件庫stdperiph_lib v3.5 配置工程MDK模板 

文件均已經(jīng)準(zhǔn)備好了,下面就可以進(jìn)入MDK 當(dāng)中進(jìn)行工程配置:

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

                              意法半導(dǎo)體固件庫stdperiph_lib v3.5 配置工程MDK模板

然后選擇你所使用的芯片 我的是STM32F103R8系,確認(rèn)之后完成建立如下圖:

                                      意法半導(dǎo)體固件庫stdperiph_lib v3.5 配置工程MDK模板

                                          意法半導(dǎo)體固件庫stdperiph_lib v3.5 配置工程MDK模板

當(dāng)出現(xiàn)如上提示問是否添加啟動文件時,選擇否,因為我們會選擇固件庫自帶的啟動文件。

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

                                            意法半導(dǎo)體固件庫stdperiph_lib v3.5 配置工程MDK模板

sys:用來指向系統(tǒng)啟動以及時鐘初始化等文件

src:用來指向固件庫里外設(shè)源文件

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

開始向工程當(dāng)中添加文件~

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

                                         意法半導(dǎo)體固件庫stdperiph_lib v3.5 配置工程MDK模板

           文件                                    目錄                         

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

說明:在以上目錄有 許多.s 結(jié)尾的匯編啟動文件,但是添加時只需要選擇你的芯片對應(yīng)的啟動文件,選擇依據(jù)為你的芯片的ROM容量 分為三種 

小容量(ld):FLASH容量大小為小于等于32K

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

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

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

說明: 這個文件用來初始化芯片的系統(tǒng)時鐘

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

說明:保存著系統(tǒng)最核心的一些函數(shù)調(diào)用,均為匯編編寫

點擊src 右鍵add files to group 'src' 分別添加當(dāng)前項目所在文件夾下的所有.c文件,以上文件均為外設(shè)驅(qū)動文件

ST_MDK_Template\Libraries\STM32F10x_StdPeriph_Driver\src

                                            意法半導(dǎo)體固件庫stdperiph_lib v3.5 配置工程MDK模板

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

                                          意法半導(dǎo)體固件庫stdperiph_lib v3.5 配置工程MDK模板

stm32f10x_it.c       \\ST_MDK_Template\User  中斷函數(shù)所在文件

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

將如下代碼復(fù)制到main.c當(dāng)中,已備調(diào)試,main中實現(xiàn)的是初始化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);
}

至此,完成了全部固件庫文件的遷移,下面需要在在當(dāng)前項目中進(jìn)行一些配置

 

右鍵單擊Target1 ,出現(xiàn) options for target ....

點擊output 標(biāo)簽 點擊 select folder for objects 將目錄指向新建的Obj文件夾,以使的產(chǎn)生的中間文件均保存在該文件夾下,保持主文件夾的“干凈”

意法半導(dǎo)體固件庫stdperiph_lib v3.5 配置工程MDK模板

點擊C\C++ 標(biāo)簽 在Define 文本框輸入 兩個預(yù)定義的量 STM32F10X_MD,USE_STDPERIPH_DRIVER  注意 兩個預(yù)定義的量中間使用逗號(英文輸入狀態(tài)下)隔開

意法半導(dǎo)體固件庫stdperiph_lib v3.5 配置工程MDK模板

仍然在C\C++標(biāo)簽下 在Include Paths 文本框當(dāng)中 添加當(dāng)前文件夾內(nèi)所有.h 文件所在目錄,以便編譯器查找時搜索各級目錄,具體步驟不講,將目錄列在這里,需要的可以直接復(fù)制,但是前提是按照我的規(guī)則命名文件夾,否則你懂得。。。:

意法半導(dǎo)體固件庫stdperiph_lib v3.5 配置工程MDK模板

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

                                   意法半導(dǎo)體固件庫stdperiph_lib v3.5 配置工程MDK模板

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

意法半導(dǎo)體固件庫stdperiph_lib v3.5 配置工程MDK模板

 

大家可以保留 以后 都可以直接在此基礎(chǔ)上 DIY,這樣進(jìn)度會快一些,請各位大俠拍磚~~

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

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI