微機(jī)原理及單片機(jī)應(yīng)用技術(shù)-Keil MDK使用入門_第1頁(yè)
微機(jī)原理及單片機(jī)應(yīng)用技術(shù)-Keil MDK使用入門_第2頁(yè)
微機(jī)原理及單片機(jī)應(yīng)用技術(shù)-Keil MDK使用入門_第3頁(yè)
微機(jī)原理及單片機(jī)應(yīng)用技術(shù)-Keil MDK使用入門_第4頁(yè)
微機(jī)原理及單片機(jī)應(yīng)用技術(shù)-Keil MDK使用入門_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

西安文理學(xué)院自動(dòng)化教研室

KeilMDK使用入門本章主要內(nèi)容7.1MDK-ARM簡(jiǎn)介7.2KEIL5的安裝7.3創(chuàng)建庫(kù)函數(shù)工程模板7.4KEIL5的使用技巧

7.1MDK-ARM簡(jiǎn)介MDK-ARM是比較官方的名字,其實(shí)在生活中還有很多工程師習(xí)慣用別的名字叫它KeilMDK、RVMDK、ARMMDK等。為何MDK-ARM會(huì)有這么多的名字呢?那就要了解一下它的前世今生:2005年10月,ARM公司收購(gòu)了Keil公司,2006年1月,ARM推出集成KeilμVision3的RealViewMDK開發(fā)環(huán)境,當(dāng)時(shí)叫DK-ARM(大家更喜歡叫KeilforARM),后來(lái)經(jīng)過(guò)版本的演變,ARM公司最后將其命名為MDK-ARM。MDK-ARM的全稱是MicrocontrollerDevelopmentKitforARM,其集成開發(fā)環(huán)境是KeilμVisionIDE,和KeilC51是同一個(gè)集成開發(fā)環(huán)境,因而深得從51單片機(jī)向STM32轉(zhuǎn)型的工程師的喜愛(ài);而且其集成了ARM公司的開發(fā)工具集RealView(包括RVD、RVI、RVT、RVDS等),ARM和STM32的關(guān)系就不用多說(shuō)了,其根正苗紅的特性,也是很多人選擇MDK-ARM的又一個(gè)原因。目前,Keil最新版為Version5.33,有關(guān)更多MDK-ARM的信息,可以登錄Keil公司的主頁(yè)了解。

7.2KEIL5的安裝要在電腦上成功安裝KEIL5,首先必須要有安裝包,我們可以在KEIL的官網(wǎng)上下載:/download/product/。打開界面如圖7.1所示,點(diǎn)擊MDK-Arm即可下載。

圖7.1MDK-ARM下載界面軟件包下載完成之后,雙擊安裝包程序,進(jìn)入程序安裝的歡迎界面。直接單擊“Next”,進(jìn)入安裝協(xié)議界面,如圖7.3所示。勾選“IagreetoallthetermsoftheprecedingLicenseAgreement”,單擊“Next”,進(jìn)入下一步文件夾選擇界面可以安裝在默認(rèn)路徑下,也可以安裝在其他路徑,自行修改即可,一般選擇好Code路徑,Pack路徑自動(dòng)就會(huì)出現(xiàn)。注意軟件安裝路徑不能出現(xiàn)中文。單擊“Next”,進(jìn)入用戶信息界面,填寫用戶信息后,繼續(xù)單擊“Next”就開始執(zhí)行安裝了,如下圖所示安裝過(guò)程完成后,會(huì)顯示如下圖所示界面。最后點(diǎn)擊“Finish”即可完成安裝,隨后,MDK會(huì)自動(dòng)彈出PackInstaller界面,如上圖所示。程序會(huì)自動(dòng)去KEIL的官網(wǎng)下載各種支持包,用戶也可以根據(jù)需要自行去官網(wǎng)下載,下載地址/dd2/pack。以STM32F103ZET6為例,我們需要安裝STM32F103ZET6的器件安裝包Keil.STM32F1xx_DFP.1.0.5.pack。器件安裝包下載好后,可以直接雙擊安裝,也可以通過(guò)PackInstaller界面安裝。在PackInstaller程序下選擇菜單“File”->“Import…”,彈出文件選擇對(duì)話框,如左圖所示,選擇需要的器件安裝包,單擊“打開”,即可開始安裝該器件包。當(dāng)需要安裝的器件包成功導(dǎo)入后,PackInstaller界面如右圖所示,可以看到已導(dǎo)入的安裝包以及所支持的器件列表。PackInstaller成功安裝pack后的界面導(dǎo)入器件安裝包KEIL5安裝完成后,可以發(fā)現(xiàn)桌面上生成了名為KeiluVision5的可執(zhí)行文件快捷方式圖標(biāo)。雙擊該圖標(biāo)打開KEIL5的開發(fā)環(huán)境,如下圖所示,其主界面主要由菜單欄、工具欄、工程區(qū)、代碼編輯區(qū)、信息區(qū)、狀態(tài)欄等部分組成。接下來(lái)通過(guò)菜單“File”->“LicenseManagement...”打開“LicenseManagement”對(duì)話框,如圖所示。填寫NewLicenseIDCode后,單擊“AddLIC”按鈕,完成注冊(cè)。注冊(cè)成功時(shí)會(huì)在“LicenseManagement”對(duì)話框中顯示使用期限和“***LICAddedSuccessfully***”提示信息。最后選擇“Close”按鈕關(guān)閉“LicenseManagement”對(duì)話框,完成注冊(cè)。7.3創(chuàng)建庫(kù)函數(shù)工程模板本節(jié)主要內(nèi)容 7.3.1STM32固件庫(kù)介紹 7.3.2創(chuàng)建庫(kù)函數(shù)工程

7.3.1STM32固件庫(kù)介紹要?jiǎng)?chuàng)建庫(kù)函數(shù)工程模板,首先需要有固件庫(kù)包,讀著可以通過(guò)ST官網(wǎng)的下載鏈接進(jìn)行下載:/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software.html?querycriteria=productId=SC961下載時(shí)一定要根據(jù)所使用的芯片型號(hào)選擇對(duì)應(yīng)的固件庫(kù)(如芯片為STM32F103ZE,則下載對(duì)應(yīng)的STM32F10x_StdPeriph_Lib)。官方固件庫(kù)的目錄結(jié)構(gòu)如圖所示。

根目錄中有一個(gè)stm32f10x_stdperiph_lib_um.chm文件,這是固件庫(kù)的幫助文檔,這個(gè)文檔非常有用,在開發(fā)過(guò)程中,這個(gè)文檔會(huì)經(jīng)常被使用到。Project文件夾下面有兩個(gè)文件夾。STM32F10x_StdPeriph_Examples文件夾下面存放的ST官方提供的固件實(shí)例源碼,在今后的開發(fā)過(guò)程中,可以參考修改這個(gè)官方提供的實(shí)例來(lái)快速驅(qū)動(dòng)自己的外設(shè),這些源碼對(duì)以后的學(xué)習(xí)非常重要。STM32F10x_StdPeriph_Template文件夾下面存放的是工程模板。Utilities文件下是ST官方評(píng)估板的一些對(duì)應(yīng)源碼。Libraries文件夾下面有CMSIS和STM32F10x_StdPeriph_Driver兩個(gè)目錄,這兩個(gè)目錄包含固件庫(kù)核心的所有子文件夾和文件。其中CMSIS目錄下面是啟動(dòng)文件,STM32F10x_StdPeriph_Driver存放的是STM32固件庫(kù)源碼文件。源文件目錄下面的inc目錄存放的是stm32f10x_xxx.h頭文件,無(wú)需改動(dòng)。src目錄下面放的是stm32f10x_xxx.c格式的固件庫(kù)源碼文件。每一個(gè).c文件和一個(gè)相應(yīng)的.h文件對(duì)應(yīng)。這里的文件也是固件庫(kù)的核心文件,每個(gè)外設(shè)對(duì)應(yīng)一組文件。Libraries文件夾里面的文件在我們建立工程的時(shí)候都會(huì)使用到。core_cm3.c和core_cm3.h文件提供了進(jìn)入Cortex-M3內(nèi)核的接口,這是ARM公司提供,我們永遠(yuǎn)都不需要修改這兩個(gè)文件,它們位于\Libraries\CMSIS\CM3\CoreSupport目錄下。和CoreSupport同一級(jí)還有一個(gè)DeviceSupport文件夾。DeviceSupport\ST\STM32F10xt文件夾下面主要存放一些啟動(dòng)文件以及比較基礎(chǔ)的寄存器定義以及中斷向量定義的文件。這個(gè)目錄下面有三個(gè)文件:system_stm32f10x.c,system_stm32f10x.h以及stm32f10x.h文件。其中system_stm32f10x.c和對(duì)應(yīng)的頭文件system_stm32f10x.h文件的功能是設(shè)置系統(tǒng)以及總線時(shí)鐘,這個(gè)里面有一個(gè)非常重要的SystemInit()函數(shù),這個(gè)函數(shù)在我們系統(tǒng)啟動(dòng)的時(shí)候都會(huì)調(diào)用,用來(lái)設(shè)置系統(tǒng)的整個(gè)時(shí)鐘系統(tǒng)。stm32f10x.h這個(gè)文件就相當(dāng)重要了,只要是做STM32開發(fā),就幾乎時(shí)刻都要查看這個(gè)文件相關(guān)的定義。這個(gè)文件打開可以看到,里面非常多的結(jié)構(gòu)體以及宏定義。這個(gè)文件里面主要是系統(tǒng)寄存器定義聲明以及包裝內(nèi)存操作。在DeviceSupport\ST\STM32F10x同一級(jí)還有一個(gè)startup文件夾,這個(gè)文件夾里面放的文件是啟動(dòng)文件。在\startup\arm目錄下,我們可以看到8個(gè)startup開頭的.s文件,分別為對(duì)應(yīng)于不同容量的芯片啟動(dòng)文件。對(duì)于F103系列,主要是用其中3個(gè)啟動(dòng)文件:startup_stm32f10x_ld.s:適用于小容量產(chǎn)品,F(xiàn)LASH≤32K;startup_stm32f10x_md.s:適用于中等容量產(chǎn)品,64K≤FLASH≤128K;startup_stm32f10x_hd.s:適用于大容量產(chǎn)品,256K≤FLASH。以STM32F103ZET6為例,該芯片屬于大容量產(chǎn)品,其啟動(dòng)文件選擇startup_stm32f10x_hd.s。啟動(dòng)文件是用匯編語(yǔ)言編寫的,系統(tǒng)上電后將首先執(zhí)行啟動(dòng)文件。啟動(dòng)文件主要執(zhí)行以下工作:(1)初始化堆棧(2)定義中斷向量表以及中斷函數(shù)(3)初始化PC指針,令其=Reset_Handler(4)進(jìn)入Reset_Handler后,先調(diào)用SystemInit系統(tǒng)初始化函數(shù)(5)最終調(diào)用main函數(shù)進(jìn)入C的世界7.3.2創(chuàng)建庫(kù)函數(shù)工程

1.整理工程文件夾我們?cè)陔娔X任意位置創(chuàng)建一個(gè)文件夾,命名為“庫(kù)函數(shù)模板創(chuàng)建”,然后在其下面新建3個(gè)文件夾(文件夾命名可任意,這里根據(jù)文件類型命名),如下:(1)Obj文件夾:用于存放編譯產(chǎn)生的c/匯編/鏈接的列表清單、調(diào)試信息、hex文件、預(yù)覽信息、封裝庫(kù)等文件。(2)User文件夾:用于存放用戶編寫的main.c、stm32f10x.h頭文件、stm32f10x_conf.h配置文件、stm32f10x_it.c和stm32f10x_it.h中斷函數(shù)文件。這些文件都可以從固件庫(kù)中復(fù)制得到。(3)Libraries文件夾:用于存放CMSIS標(biāo)準(zhǔn)和STM32外設(shè)驅(qū)動(dòng)文件。在此文件夾下新建2個(gè)文件夾,分別命名為CMSIS和STM32F10x_StdPeriph_Driver,這些文件夾命名都是直接復(fù)制固件庫(kù)相應(yīng)的文件夾名。CMSIS文件夾用于存放一些CMSIS標(biāo)準(zhǔn)文件和啟動(dòng)文件,從固件庫(kù)中復(fù)制相應(yīng)的文件放入我們自建的CMSIS文件夾下,所包含的文件如下圖所示。STM32F10x_StdPeriph_Driver可直接將固件庫(kù)中相應(yīng)目錄下的內(nèi)容復(fù)制過(guò)來(lái)。里面存放的是STM32標(biāo)準(zhǔn)外設(shè)驅(qū)動(dòng)文件,src目錄存放的是外設(shè)驅(qū)動(dòng)的源文件,inc目錄存放的是對(duì)應(yīng)的頭文件。至此,就已經(jīng)將創(chuàng)建庫(kù)函數(shù)模板所需的固件庫(kù)文件復(fù)制過(guò)來(lái)了,接下來(lái)就可以建立新工程了。2.建立工程打開Keil5軟件,新建一個(gè)工程,填寫工程名稱,但是要注意使用英文來(lái)命名,這里我們命名為Template,直接保存在最開始創(chuàng)建的“庫(kù)函數(shù)模板創(chuàng)建”文件夾下。具體步驟如下圖所示。3.選擇CPU型號(hào)根據(jù)所使用的CPU的具體型號(hào)來(lái)選擇,這里仍以STM32F103ZET6芯片為例,芯片選擇過(guò)程如圖所示。選擇完CPU點(diǎn)擊OK后會(huì)彈出在線添加固件庫(kù)文件的界面,如下圖所示。我們這里手動(dòng)進(jìn)行添加,不需要此步,所以直接關(guān)閉即可。在線添加固件庫(kù)文件的界面4.給工程添加文件給工程添加文件就是將前面創(chuàng)建的“庫(kù)函數(shù)模板創(chuàng)建”文件夾下的文件和自己編寫的源代碼添加到工程中。雙擊Group文件夾就會(huì)出現(xiàn)添加文件的路徑,然后選擇文件即可。如果我們將“庫(kù)函數(shù)模板創(chuàng)建”目錄下的文件都添加到Group這個(gè)默認(rèn)組中,顯然是非?;靵y的,對(duì)于我們查找工程文件和工程維護(hù)極其不方便,因此這里需要根據(jù)文件類型來(lái)構(gòu)建新的工程組。創(chuàng)建新的工程組的操作步驟如下圖所示??梢赃x擇快捷圖標(biāo)來(lái)進(jìn)行創(chuàng)建工程組,也可以在工程列表下右鍵“Target1”選擇“ManageProjectItems...”,如左圖所示。為了工程目錄更加清晰及方便文件查找,新建User、Startup、StdPeriph_Driver和CMSIS工程組。User組用于存放User文件夾下的源文件,Startup組用于存放STM32的啟動(dòng)文件,StdPeriph_Driver組用于存放STM32外設(shè)的驅(qū)動(dòng)源文件、CMSIS組用于存放CMSIS標(biāo)準(zhǔn)文件,比如系統(tǒng)總線時(shí)鐘等初始化源文件。創(chuàng)建好的工程目錄組如右圖所示。接下來(lái)就需要將對(duì)應(yīng)的一些文件添加到工程目錄組中,這樣才能進(jìn)行程序的開發(fā)。添加工程文件步驟如下圖所示。第1步,點(diǎn)擊圖標(biāo),彈出界面。第2步,選擇要添加的工程組。第3步,點(diǎn)擊添加文件,會(huì)彈出添加文件對(duì)話框。第4步,選擇對(duì)應(yīng)文件夾內(nèi)的文件。文件類型默認(rèn).c文件,如果需要添加其他類型的文件(如啟動(dòng)文件的類型是.s),則需要進(jìn)行第5步,更改文件類型。第6步,點(diǎn)擊“Add”按鈕完成文件添加。將所有文件添加至對(duì)應(yīng)工程組后,如圖所示。在StdPeriph_Driver工程組中我們只添加了2個(gè)源文件,對(duì)于STM32程序開發(fā),通常這2個(gè)文件都是需要的。其他的外設(shè)源文件根據(jù)是否使用外設(shè)而添加,如果把所有的源文件都加進(jìn)來(lái)也是沒(méi)有問(wèn)題的,只不過(guò)工程在編譯的時(shí)候會(huì)比較慢,所以原則是使用到哪個(gè)外設(shè)就添加哪個(gè)外設(shè)的源文件。5.配置工程這一步的配置工作非常重要,很多人編寫程序編譯后發(fā)現(xiàn)找不到HEX文件,還有的人后面做printf實(shí)驗(yàn)時(shí)打印不出信息,這些問(wèn)題都是在這個(gè)地方?jīng)]有配置好導(dǎo)致的。(1)如圖所示,第1步,點(diǎn)擊“工程目標(biāo)選項(xiàng)”進(jìn)入配置(或Project->OptionsforTarget)。第2步,選中Target選項(xiàng)卡。第3步,勾選“UseMicroLib”選項(xiàng),主要是為了后面printf重定向輸出使用。其他的設(shè)置保持默認(rèn)即可。(2)Output選項(xiàng)卡中把輸出文件夾定位到我們工程目錄下的Obj文件夾,如果想在編譯的過(guò)程中生成hex文件,那么需要勾選CreateHEXFile選項(xiàng)。如圖所示。(3)Listing選項(xiàng)卡中把輸出文件夾也定位到我們工程目錄下的Obj文件夾。其他設(shè)置默認(rèn)。如圖7.25所示。(4)C/C++選項(xiàng)卡配置。因?yàn)閯?chuàng)建的是庫(kù)函數(shù)工程模板,所以需要在對(duì)處理器類型和庫(kù)進(jìn)行宏定義,在Define這一欄中填寫兩個(gè)宏:USE_STDPERIPH_DRIVER,STM32F10X_HD注意它們之間有一個(gè)英文符的逗號(hào),如下圖。通過(guò)這兩個(gè)宏就可以對(duì)STM32F10x系列芯片進(jìn)行庫(kù)開發(fā),因?yàn)樵趲?kù)源碼內(nèi)支持很多F1系列芯片,通過(guò)這個(gè)宏就可以選擇到底是用哪種芯片的庫(kù)驅(qū)動(dòng)。同理USE_STDPERIPH_DRIVER這個(gè)宏也是類似的原理。設(shè)置好了宏,還需要將我們前面添加到工程組中的文件路徑包括進(jìn)來(lái),同樣還是在C/C++選項(xiàng)卡中,具體步驟如圖所示。第1步,點(diǎn)擊“…”按鈕,彈出一個(gè)添加頭文件路徑的對(duì)話框。第2步,然后點(diǎn)擊添加路徑按鈕,新建一個(gè)空路徑列表。第3步,點(diǎn)擊“…”按鈕,會(huì)彈出瀏覽文件夾對(duì)話框。第4步,選擇對(duì)應(yīng)的頭文件路徑,這個(gè)頭文件路徑就是工程組中那些文件的頭文件路徑。第5步,選擇好后點(diǎn)擊“確定”按鈕,回到添加頭文件路徑的對(duì)話框。重復(fù)2、3、4、5步直到所有頭文件路徑添加完成。第6步,點(diǎn)擊“OK”按鈕完成設(shè)置。最后添加好的頭文件路徑如圖7.28。(5)選擇下載調(diào)試工具。這個(gè)選項(xiàng)根據(jù)所使用的下載調(diào)試器來(lái)選擇,比如:ST-Link,如圖所示。(6)下載復(fù)位并運(yùn)行設(shè)置。如圖7.30所示,在Utilities選項(xiàng)卡內(nèi)點(diǎn)擊“Settings”按鈕,彈出如圖7.31所示對(duì)話框,選擇FlashDownload選項(xiàng)卡,勾選“ResetandRun”選項(xiàng),當(dāng)程序下載進(jìn)去后CPU自動(dòng)復(fù)位運(yùn)行,如果不勾上,程序下載進(jìn)去后需按下復(fù)位鍵才能運(yùn)行。6.編寫一個(gè)簡(jiǎn)單的main.c完成工程配置后,雙擊工程組中的main.c文件會(huì)發(fā)現(xiàn)里面有很多代碼,這是因?yàn)槲覀冎苯訌腟T公司提供的模板上復(fù)制過(guò)來(lái)的,所以我們把main.c文件內(nèi)的所有內(nèi)容刪除,寫上一個(gè)如下所示的簡(jiǎn)單的main程序。#include"stm32f10x.h"intmain(){while(1){}}最后編譯一下工程,編譯后結(jié)果0錯(cuò)誤0警告,表明創(chuàng)建的庫(kù)函數(shù)模板完全正確。到這一步庫(kù)函數(shù)工程模板創(chuàng)建完成。7.4KEIL5的使用技巧本節(jié)主要內(nèi)容 7.4.1文本美化 7.4.2語(yǔ)法檢測(cè)和代碼提示 7.4.3快速注釋與快速消注釋

西安文理學(xué)院自動(dòng)化教研室7.4.1文本美化文本美化,主要是設(shè)置一些關(guān)鍵字、注釋、數(shù)字等的顏色和字體。KEIL5提供了自定義字體顏色的功能??梢栽诠ぞ邨l上點(diǎn)擊(配置對(duì)話框)彈出如圖所示界面。在該對(duì)話框中,先設(shè)置Encoding為ChineseGB2312(Simplified),以更好的支持簡(jiǎn)體中文(否則,拷貝到其他地方的時(shí)候,中文可能是一堆的問(wèn)號(hào))。然后設(shè)置Tabsize為4

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論