1. 程式人生 > >使用MDK建立stm32 庫函式工程簡單教程

使用MDK建立stm32 庫函式工程簡單教程

一. 需要準備的資料及環境:

    1.STM32韌體庫,我們使用的韌體庫為STM32F10x_StdPeriph_Lib_V3.5.0,可在st官方下載

    2.MDK開發環境(我們使用的版本為MDK4.7A)。

二. 新建工程     1.開啟MDK,然後選擇選單 Project->Close Project,關掉已存在的工程!這樣整個MDK就是一個空的了,接下來我們將建立工程。

    2.在建立工程之前,建議使用者在電腦的某個目錄下面建立一個資料夾,後面所建立的工程都可以放在這個資料夾下面,這裡我們建立一個資料夾為: STM32_IAP.在該資料夾下再建立CORE、OBJ、STM32F10x_FWLib、USER等資料夾,USER用來儲存工程,CORE用來存放核心檔案和啟動,OBJ是用來存放編譯過程檔案以及 hex 檔案,STM32F10x_FWLib 資料夾用來存放ST 官方提供的庫函式原始碼文 官方提供的庫函式原始碼文 官方提供的庫函式原始碼文 官方提供的庫函式原始碼件。

    3.點選Keil的選單:Project –>New Uvision Project ,然後將目錄定位到剛才建立的資料夾STM32_IAP之下,把工程檔案儲存到USER資料夾下面。工程命名為IAP-Bootloader ,點選儲存

   4.接下來會出現一個選擇Device的介面,我們選擇STM32F103C8(如果是其他晶片,請選擇對應的型號)。


5.彈出對話方塊“ Copy STM32 Startup Code to project  ….”,詢問是否新增啟動程式碼到工程中,選擇“否”,”,因為使用的 ST 韌體庫檔案已經包含了啟動檔案。


6.下面我們要將官方的韌體庫包裡的原始碼檔案複製到我們的工程目錄資料夾下面。

    開啟官方韌體庫包,定位到我們之前準備好的韌體庫包的目錄STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver下面,將目錄下面的src,inc資料夾copy到我們剛才建立的STM32F10x_FWLib資料夾下面。src存放的是韌體庫的.c檔案,inc存放的是對應的.h檔案。

    7.將韌體庫包裡面相關的啟動檔案複製到我們的工程目錄CORE之下。     開啟官方韌體庫包,定位到目錄STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下面,將檔案core_cm3.c和檔案core_cm3.h 複製到CORE下面去。然後定位到目錄STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下面,將裡面所有的檔案同樣複製到CORE下面

    8.定位到目錄:STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x,將裡面的三個檔案stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,複製到我們的USER目錄之下。然後將STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下面的4個檔案main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h複製到USER目錄下面。

    9.前面的步驟,我們將需要的韌體庫相關檔案複製到工程目錄下面,下面我們將這些檔案加入我們的工程中去。右鍵點選Target1,選擇Manage Components

    10.Project Targets一欄,我們將Target名字修改為IAP-Bootloader,然後在Groups一欄刪掉一個,建立三個Groups:USER,CORE,FWLIB.點選OK.可以看到我們的Target名字以及Groups情況。

    11.往Group裡面新增我們需要的檔案。我們按照步驟10的方法, 右鍵點選點選IAP-Bootloader,選擇選擇Manage Components.然後選擇需要新增檔案的Group,這裡第一步我們選擇FWLIB,然後點選右邊的Add Files,定位到我們剛才建立的目錄STM32F10x_FWLib/src下面,選擇需要的檔案,然後點選Add,然後Close.可以看到Files列表下面包含我們新增的檔案。

    12.用同樣的方法,將Groups定位到CORE和USER下面,新增需要的檔案。這裡我們的CORE下面需要新增的檔案為core_cm3.c,startup_stm32f10x_md.s,USER目錄下面需要新增的檔案為main.c,stm32f10x_it.c,system_stm32f10x.c.這樣我們需要新增的檔案已經新增到我們的工程中去了,最後點選OK,回到工程主介面。

13.點選魔術棒,出來一個選單,然後點選 c/c++選項.然後點選Include Paths右邊的按鈕。彈出一個新增path的對話方塊,然後我們將圖上面的3個目錄新增進去。記住,keil只會在一級目錄查詢,所以如果你的目錄下面還有子目錄,記得path一定要定位到最後一級子目錄。然後點選OK.


14.配置一個全域性的巨集定義變數。按照步驟13,定位到c/c++介面,然後copy “STM32F10X_MD,USE_STDPERIPH_DRIVER”到 Define裡面。這裡解釋一下,如果你用的是大容量那麼STM32F10X_MD修改為STM32F10X_HD,小容量修改為STM32F10X_LD。


15.配置Output選項。定位到Output介面,點選Select Folder For Obiects...將目標檔案選擇到OBJ資料夾下。然後勾上下三個選項。其中Create HEX file是編譯生成hex檔案,Browser Information是可以檢視變數和函式定義 


16..配置Debug選項。定位到Debug介面,選擇ST-Link Debugger(按實際用的工具選擇),勾選Use,點選右邊的Setting選項,在彈出的Cortex-MTarget Driver Setup視窗中選擇SW(按實際選擇),選擇確定。


17.配置Utilities選項。(1)定位到Utilities介面;(2)選擇ST-Link Debugger(按實際用的工具選擇);(3)點選右邊的Setting選項;(4)在彈出的Cortex-MTarget Driver Setup視窗按下圖紅框4選擇;(5)點選下方ADD;(6)在彈出的Add Flash Programming Algorithm選單中選擇STM32F10X Med-density Flash(按實際對應晶片選擇);(7)選擇完後點擊Add;(8)選擇確定,回到上一選單後再次選擇確定,回到主介面。


18.編寫簡單main函式,點選進行編譯,編譯完成後在OBJ資料夾中生成.hex檔案


  19.用ST Link將MCU與PC連線好後,點選將.hex檔案下載到MCU中。

相關推薦

使用MDK建立stm32 函式工程簡單教程

一. 需要準備的資料及環境:     1.STM32韌體庫,我們使用的韌體庫為STM32F10x_StdPeriph_Lib_V3.5.0,可在st官方下載     2.MDK開發環境(我們使用的版本為MDK4.7A)。 二. 新建工程     1.開啟MDK,然

STM32函式開發工程模板

看了好多資料,自己也親手寫了好多程式,發現雖然都是庫函式開發,但是對於檔案的組織是不一樣的,比如有的人喜歡有OBJ,而有的人用LISTING,那麼到底怎麼樣好,關於檔案的組織形式也真是夠讓人頭疼的,總感覺是被別人牽著鼻子走,不像之前學習51微控制器或者MSP430微控制器,

常用的stm32函式

//初始化的方式:先定義初始化機構體、再開啟時鐘使能、在對每一組GPIO口進行初始化。   GPIO_InitTypeDef LED_GPIO; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOD,

STM32函式詳解----(外部中斷/事件控制器 EXTI)

1.void EXTI_DeInit  (void) 函式解釋:將EXTI外設暫存器重置為默註釋。RCC_APB2PeriphResetCmd引數中沒有EXTI外設的的巨集,該外設重置採取的是直接向暫存器賦預設值的操作。 例子:EXTI_DeInit ( );  

STM32函式詳解----(通用輸入/輸出GPIO)

初始化和配置相關函式 1.void  GPIO_DeInit  (GPIO_TypeDef* GPIOx) 函式解釋:gpio的反初始化函式,該函式的作用是把GPIO相關的暫存器配置成上電覆位後的預設狀態,在第一次初始化前或者不在使用某一介面後,可以呼叫該函式。 引數

Python中的PIL的一些簡單教程

PIL 庫中最重要的也是最常用的類是Image類from PIL import Image使用Image類開啟圖片使用open()函式image_ori=Image.open("pic/chenming.png");這樣就得到了一個Image類的例項,它具有一些屬性和方法pr

9.I2C讀寫資料—基於CT117E開發板的STM32函式程式設計

I2C  簡介 IIC(Inter-Integrated Circuit)匯流排是一種由 PHILIPS 公司開發的兩線式序列匯流排,用於連線微控制器及其外圍裝置。 它是由資料線 SDA 和時鐘 SCL 構成的序列匯流排, 可傳送和接收資料。在 CPU 與被控 IC 之間、

stm32開發之使用Keil MDK以及標準外設建立STM32工程

通過上一節對標準外設庫的介紹,想必各位讀者對標準外設庫已經有了基本的認識,然而由於標準外設庫中檔案眾多,很多初學者在開始很長一段時間內甚至都無法完全自己建立一個工程,很多人只是依賴標準外設庫或給定的工程

STM32開發環境--使用MDK建立一個工程

roc 並保存 用戶 all jlink 復制 一個 tty get 開發環境的搭建: MDK下載 首先應該下載到MDK官網:http://www.keil.com/arm/mdk.asp 下載最新版的MDK安裝包,進入MDK官網,點擊download按鈕 跳轉到下載界面

STM32+MDK+函式===基本環境配置及說明

使用MDK工具開發STM32,如果使用 庫函式(V3.5.0),有兩種配置編譯環境的方式(http://www.cnblogs.com/scdyxcc/archive/2013/01/04/2843545.html): 1、配置原始檔;2、配置MDK。 配置原始檔:可能包括

使用HAL函式建立STM32F2工程筆記

一、建立一個新的資料夾,新建三個資料夾User、Driver、Project,還可以加一個Doc存放工程的相關說明等等。 1、將STM32F2xx的庫函式(HAL函式庫)中的Drivers資料夾中的所有檔案複製到Driver中。 2、找到.\STM32Cub

初識STM32--MDK5下使用V3.5新建工程

tar rar 選擇 use 開發 drive bug ems 哪裏 提要:開發軟件:MDK5.24a 固件庫版本V3.5 最近剛剛開始接觸到STM32,於是下載了最新的軟件版本MDK5,結果上網搜到的好多教程都是使用的MDK4的版本,給入門學習帶來了許

ASP.NET Core 數據上下文 - ASP.NET Core 基礎教程 - 簡單教程簡單編程

ont code () entity clr stat hello 種類 刪除 原文:ASP.NET Core 數據庫上下文 - ASP.NET Core 基礎教程 - 簡單教程,簡單編程 ASP.NET Core 數據庫上下文 上一章節中我們了解了 Ent

python中的turtle函式簡單使用

      參考案例: import turtle d=0 for i in range(4): turtle.fd(200) #或者寫成turtle.forward(200) d =d+90

MyEclipse教程:使用UML建立模組——第二部分(二)

MyEclipse 線上訂購年終抄底促銷!火爆開搶>> 【MyEclipse最新版下載】 UML2建模檔案儲存在建模儲存庫中,建模可用於生成Java程式碼,或者可以從程式碼生成模型。 本教程介紹如何執行與建模儲存庫相關的任務。 您將學到如何: 建立UML模型儲存庫

MyEclipse教程:使用UML建立模組——第二部分(一)

MyEclipse 線上訂購年終抄底促銷!火爆開搶>> 【MyEclipse最新版下載】 UML2建模檔案儲存在建模儲存庫中,建模可用於生成Java程式碼,或者可以從程式碼生成模型。 本教程介紹如何執行與建模儲存庫相關的任務。 您將學到如何: 建立UML模型儲存庫

嘗試IAR下建立stm32工程及bootloader

之前在iar下開發都是在官方例程或網路中下載的例程,開發時IAR直接跳入main中執行c程式碼,最近想建立個新的stm32工程來寫一些彙編檔案瞭解下CM3彙編指令,於是痛苦摸索了很多天。 起初建立了IAR新工程,使用的stm32f103x,加入了官方提供的iar工程檔案:startup.s,原本

STM32-USART函式

USART_Cmd函式的功能是使能或失能USART串列埠外設。 例:使能USART1 USART_Cmd(USART1,ENABLE); USART_ITConfig函式的功能是使能或者失能指定的USART串列埠中斷。 USART_IT_PE 奇偶錯誤中斷 USART_IT_T

Spring Boot 的簡單教程(一) Spring Boot 專案的建立

一. 簡單介紹一下Spring Boot 世界慣例,在學習一個框架之前,我們需要了解一下這個框架的來歷。 下面我們引用一下百度百科的解釋。 Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程

STM32-自學筆記(9.SysTick定時器控制LED燈閃爍,程式用到的函式介紹)

1.SysTick_CLKSourceConfig 函式原型:viod SysTick_CLKSourceConfig (u32 SysTick_CLKSource) 功能:選擇SysTick的時鐘源 引數:SysTick_CLKSource:SysTick時鐘源 引數:S