您好,登錄后才能下訂單哦!
首先下載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工程模板
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。