




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于ARM單片機(jī)應(yīng)用與實(shí)踐課件第四章基于ARM單片機(jī)應(yīng)用與實(shí)踐課件第四章基于ARM單片機(jī)應(yīng)用與實(shí)踐課件第四章4.1MDK-ARM4.70簡(jiǎn)介Keil公司開(kāi)發(fā)的ARM開(kāi)發(fā)工具M(jìn)DK,是用來(lái)開(kāi)發(fā)基于Cotex-MA、Cotex-R4、ARM核的系列微控制器的嵌入式應(yīng)用程序。它適合不同層次的開(kāi)發(fā)者使用,包括專業(yè)的應(yīng)用程序開(kāi)發(fā)工程師和嵌入式軟件開(kāi)發(fā)的入門者。MDK包含了工業(yè)標(biāo)準(zhǔn)的KeilC編譯器、宏匯編器、調(diào)試器、實(shí)時(shí)內(nèi)核等組件,支持所有基于ARM的設(shè)備,易于學(xué)習(xí)和使用,同時(shí)具有強(qiáng)大的功能,適用于多數(shù)要求嚴(yán)苛的嵌入式應(yīng)用程序開(kāi)發(fā)。圖1MDK開(kāi)發(fā)工具的組件通過(guò)閱讀報(bào)刊,我們能增長(zhǎng)見(jiàn)識(shí),擴(kuò)大自己的知識(shí)面?;贏RM單片機(jī)應(yīng)用與實(shí)踐課件第四章基于ARM單片機(jī)應(yīng)用與實(shí)14.1MDK-ARM4.70簡(jiǎn)介Keil公司開(kāi)發(fā)的ARM開(kāi)發(fā)工具M(jìn)DK,是用來(lái)開(kāi)發(fā)基于Cotex-MA、Cotex-R4、ARM核的系列微控制器的嵌入式應(yīng)用程序。它適合不同層次的開(kāi)發(fā)者使用,包括專業(yè)的應(yīng)用程序開(kāi)發(fā)工程師和嵌入式軟件開(kāi)發(fā)的入門者。MDK包含了工業(yè)標(biāo)準(zhǔn)的KeilC編譯器、宏匯編器、調(diào)試器、實(shí)時(shí)內(nèi)核等組件,支持所有基于ARM的設(shè)備,易于學(xué)習(xí)和使用,同時(shí)具有強(qiáng)大的功能,適用于多數(shù)要求嚴(yán)苛的嵌入式應(yīng)用程序開(kāi)發(fā)。圖1MDK開(kāi)發(fā)工具的組件4.1MDK-ARM4.70簡(jiǎn)介Keil公司開(kāi)發(fā)的ARM開(kāi)24.1MDK-ARM4.70簡(jiǎn)介MDK的特點(diǎn)MDK-ARM軟件主要特點(diǎn)如下:■完美支持Cortex-M、Cortex-R4、ARM7和ARM9系列器件?!鯱LINKpro可實(shí)時(shí)分析運(yùn)行中的應(yīng)用程序,且能記錄Cortex-M指令的每一次執(zhí)行。■為帶圖形用戶接口的嵌入式系統(tǒng)提供了完善的GUI庫(kù)支持?!鲂袠I(yè)領(lǐng)先的ARMC/C++編譯工具鏈?!龃_定的KeilRTX,小封裝實(shí)時(shí)操作系統(tǒng)(帶源碼)?!鯰CP/IP網(wǎng)絡(luò)套件提供多種的協(xié)議和各種應(yīng)用。4.1MDK-ARM4.70簡(jiǎn)介MDK的特點(diǎn)MDK-A34.2新建MDK工程如何新建MDK工程?■安裝開(kāi)發(fā)環(huán)境和調(diào)試驅(qū)動(dòng)程序■創(chuàng)建一個(gè)工程并配置工程■編寫(xiě)程序、下載、調(diào)試4.2新建MDK工程如何新建MDK工程?■安裝開(kāi)發(fā)環(huán)境和調(diào)試44.2新建MDK工程4.2新建MDK工程5選擇工具欄Project->NewμVisionProject…新建我們的工程文件,我們將新建的工程文件保存在桌面的STM32-Template\USER文件夾下(先在電腦桌面上新建一STM32-Template文件夾,在STM32-Template里面新建一個(gè)USER文件夾),文件名取為STM32-DEMO,名字可以隨便取,點(diǎn)擊保存。最終效果如下圖所示。創(chuàng)建一個(gè)工程并配置工程4.2新建MDK工程選擇工具欄Project->NewμVisionPro64.2新建MDK工程4.2新建MDK工程7此時(shí)工程新建成功,接下來(lái)需要添加文件,具體操作如下所述:在STM32-Template文件夾下,新建四個(gè)文件夾,分別為FWlib、CMSIS、Uotput、Listing。原先新建的USER用來(lái)存放工程文件和用戶代碼,包括主函數(shù)main.c。FWlib用來(lái)存放STM32庫(kù)里面的inc和src這兩個(gè)文件,這兩個(gè)文件包含了芯片上的所有驅(qū)動(dòng)。CMSIS用來(lái)存放庫(kù)為我們自帶的啟動(dòng)文件和一些M3系列通用的文件。CMSIS里面存放的文件適合任何M3內(nèi)核的單片機(jī)。Output用來(lái)保存軟件編譯后輸出的文件,Listing用來(lái)存放一些編譯過(guò)程中產(chǎn)生的文件。最終效果如下圖所示。
4.2新建MDK工程此時(shí)工程新建成功,接下來(lái)需要添加文件,具體操作如下所述:4.84.2新建MDK工程4.2新建MDK工程9選擇芯片型號(hào),我們使用ST公司的STM32F103VET6,則選擇對(duì)應(yīng)型號(hào),單擊“ok”鍵。彈出窗口問(wèn)我們是否需要拷貝STM32的啟動(dòng)代碼到工程文件中,這份啟動(dòng)代碼在M3系列中都是適用的,一般情況下我們都點(diǎn)擊是,但我們這里用的是ST的庫(kù),庫(kù)文件里面也自帶了這一份啟動(dòng)代碼,所以為了保持庫(kù)的完整性,我們就不需要開(kāi)發(fā)環(huán)境為我們自帶的啟動(dòng)代碼了,稍后我們自己手動(dòng)添加,這里我們點(diǎn)擊“否”。最終效果如下圖所示。
4.2新建MDK工程選擇芯片型號(hào),我們使用ST公司的STM32F103VET6,104.2新建MDK工程4.2新建MDK工程113.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver的inc跟src這兩個(gè)文件夾拷貝到STM32-Template\FWlib文件夾中。最終效果如下圖所示。4.2新建MDK工程3.5.0\STM32F10x_StdPeriph_Lib_123.5.0\3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm的全部文件拷貝到STM32-Template\CMSIS\startup(需先在CMSIS新建好startup文件夾)文件夾下。我們把startup_stm32f10x_hd.s添加到我們的工程中。3.5.0\3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport文件目錄中的core_cm3.c和core_cm3.h也拷貝到STM32-Template\CMSIS文件夾下。3.5.0\3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x文件目錄中的stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h拷貝到STM32-Template\CMSIS文件夾下。最終效果如下圖所示。4.2新建MDK工程3.5.0\3.5.0\STM32F10x_StdPerip134.2新建MDK工程4.2新建MDK工程143.5.0\3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下的main.c、stm32f10x_conf.h、stm32f10x_it.h、stm32f10x_it.c、system_stm32f10x.c拷貝到STM32-Template\USER目錄下。最終效果如下圖所示。4.2新建MDK工程3.5.0\3.5.0\STM32F10x_StdPerip154.2新建MDK工程4.2新建MDK工程16此時(shí)我們新進(jìn)的工程目錄如下所示:4.2新建MDK工程此時(shí)我們新進(jìn)的工程目錄如下所示:4.2新建MDK工程17到我們剛剛新建的MDK工程中,將Target改為STM32-DEMO(不改也行)。最終效果如下圖所示。4.2新建MDK工程到我們剛剛新建的MDK工程中,將Target改為STM32-18在STM32-DEMO上右鍵選中AddGroup…選項(xiàng),新建四個(gè)組,分別命名為STARTCODE、USER、FWlib、CMSIS。STARTCODE用它來(lái)放我們的啟動(dòng)代碼的,最終效果如下圖。4.2新建MDK工程在STM32-DEMO上右鍵選中AddGroup…選項(xiàng),新194.2新建MDK工程至于有些文件有個(gè)鎖的圖標(biāo),是因?yàn)檫@些都是庫(kù)文件,不需要我們修改,屬性為只讀。至此,工程基本建好。接下來(lái)配置一下MDK的配置選項(xiàng),單擊按鈕,在彈出來(lái)的窗口中選中“Output”選項(xiàng)。點(diǎn)擊SelectFolderforObjects...設(shè)置編譯,輸出文件保存的位置。同時(shí)選上CreateHEXFile和Browseinformation這兩個(gè)選項(xiàng)框。最終效果如下圖所示。4.2新建MDK工程至于有些文件有個(gè)鎖的圖標(biāo),是因?yàn)檫@些都是204.2新建MDK工程4.2新建MDK工程21同樣在Listing這個(gè)選項(xiàng)卡中,我們也點(diǎn)擊SelectFolderlistings…定位到模板中的Listing文件夾。選中C/C++選項(xiàng)卡,在Define里面輸入添加USE_STDPERIPH_DRIVER,STM32F10X_HD。最終效果如下圖所示。4.2新建MDK工程同樣在Listing這個(gè)選項(xiàng)卡中,我們也點(diǎn)擊Select22在單擊IncludePaths欄,在這里添加庫(kù)文件的搜索路徑,這樣就可以屏蔽掉默認(rèn)的搜索路徑。最終效果如下圖所示。4.2新建MDK工程在單擊IncludePaths欄,在這里添加庫(kù)文件的搜索路23但當(dāng)編譯器在我們指定的路徑下搜索不到的話還是會(huì)回到標(biāo)準(zhǔn)目錄去搜索,就像有些ANSICC的庫(kù)文件,如stdin.h、stdio.h。庫(kù)文件路徑修改成功之后如下所示:
4.2新建MDK工程但當(dāng)編譯器在我們指定的路徑下搜索不到的話還是會(huì)回到標(biāo)準(zhǔn)目錄244.3RVMDKS使用技巧文本美化文本美化,主要是設(shè)置一些關(guān)鍵字、注釋、數(shù)字等的顏色和字體。前面我們?cè)诮榻BRVMDK新建工程的時(shí)候看到界面如下圖所示。4.3RVMDKS使用技巧文本美化文本美化,主要是設(shè)置一些關(guān)254.3RVMDKS使用技巧4.3RVMDKS使用技巧26這是MDK默認(rèn)的設(shè)置,可以看到其中的關(guān)鍵字和注釋等字體的顏色不是很漂亮,而MDK提供了我們自定義字體顏色的功能。我們可以在工具條上點(diǎn)擊(編輯配置對(duì)話框)彈出如下圖所示界面。4.3RVMDKS使用技巧這是MDK默認(rèn)的設(shè)置,可以看到其中的關(guān)鍵字和注釋等字體的顏274.3RVMDKS使用技巧4.3RVMDKS使用技巧28在該對(duì)話框中我們選擇Colors&Fonts選項(xiàng)卡,在該選項(xiàng)卡內(nèi),我們就可以設(shè)置自己的代碼的子體和顏色了。由于我們使用的是C語(yǔ)言,故在TextFileTypes下面選擇ARM:EditorCFiles在右邊就可以看到相應(yīng)的元素了。最終效果如下圖所示。4.3RVMDKS使用技巧在該對(duì)話框中我們選擇Colors&Fonts選項(xiàng)卡,在該選294.3RVMDKS使用技巧4.3RVMDKS使用技巧30然后點(diǎn)擊各個(gè)元素修改為你喜歡的顏色,當(dāng)然也可以在Font欄設(shè)置你字體的類型,以與字體的大小等。設(shè)置成之后,點(diǎn)擊OK,就可以在主界面看到你所修改后的結(jié)果,例如我修改后的代碼顯示效果如下圖所示:4.3RVMDKS使用技巧然后點(diǎn)擊各個(gè)元素修改為你喜歡的顏色,當(dāng)然也可以在Font欄31TAB鍵的妙用MDK的TAB鍵和一般編譯器的TAB鍵有不同的地方,和C++的TAB鍵差不多。MDK的TAB鍵支持塊操作。也就是可以讓一片代碼整體右移固定的幾個(gè)位,也可以SHIFT+TAB鍵整體左移固定的幾個(gè)位。假設(shè)我們前面的串口1中斷響應(yīng)函數(shù)如下圖所示。4.3RVMDKS使用技巧TAB鍵的妙用MDK的TAB鍵和一般編譯器的TAB鍵有324.3RVMDKS使用技巧4.3RVMDKS使用技巧33上圖中這樣的代碼大家肯定不會(huì)喜歡,這還只是短短的30來(lái)行代碼,如果你的代碼有幾千行,全部是這個(gè)樣子,不頭大才怪??吹竭@樣的代碼我們就可以通過(guò)TAB鍵的妙用來(lái)快速修改為比較規(guī)范的代碼格式。選中一塊然后按TAB鍵,你可以看到整塊代碼都跟著右移了一定距離,如下圖示。4.3RVMDKS使用技巧上圖中這樣的代碼大家肯定不會(huì)喜歡,這還只是短短的30來(lái)344.3RVMDKS使用技巧4.3RVMDKS使用技巧35接下來(lái)我們就是要多選幾次,然后多按幾次TAB鍵就可以達(dá)到迅速使代碼規(guī)范化的目的,最終效果如下圖所示。4.3RVMDKS使用技巧接下來(lái)我們就是要多選幾次,然后多按幾次TAB鍵就可以達(dá)到迅36快速定位函數(shù)/變量被定義的地方大家在調(diào)試代碼或編寫(xiě)代碼的時(shí)候,一定有想看看某個(gè)函數(shù)是在那個(gè)地方定義的,具體里面的內(nèi)容是怎么樣的,也可能想看看某個(gè)變量或數(shù)組是在哪個(gè)地方定義的等。只要你把光標(biāo)放到這個(gè)函數(shù)/變量(xxx)的上面(xxx為你想要查看的函數(shù)或變量的名字),然后右鍵,彈出如下圖所示的菜單欄。4.3RVMDKS使用技巧快速定位函數(shù)/變量被定義的地方大家在調(diào)試代碼或編寫(xiě)代碼的時(shí)候374.3RVMDKS使用技巧4.3RVMDKS使用技巧38在上圖中,我們找到GotoDefinitionOf‘STM32_Clock_Init’這個(gè)地方,然后單擊左鍵就可以快速跳到STM32_Clock_Init函數(shù)的定義處(注意要先在OptionsforTarget的Output選項(xiàng)卡里面勾選BrowseInformation選項(xiàng),再編譯,再定位,否則無(wú)法定位?。?。如下圖所示。4.3RVMDKS使用技巧在上圖中,我們找到GotoDefinitionO394.3RVMDKS使用技巧4.3RVMDKS使用技巧40快速注釋與快速消注釋在調(diào)試代碼的時(shí)候,你可能會(huì)想注釋某一片的代碼,來(lái)看看執(zhí)行的情況,MDK提供了這樣的快速注釋/消注釋塊代碼的功能。也是通過(guò)右鍵實(shí)現(xiàn)的。這個(gè)操作比較簡(jiǎn)單,就是先選中你要注釋的代碼區(qū),然后右鍵,選擇Advanced->CommentSelection就可以了。以Stm32_Clock_Init函數(shù)為例,比如我要注釋掉下圖中所選中區(qū)域的代碼,如下圖所示。4.3RVMDKS使用技巧快速注釋與快速消注釋在調(diào)試代碼的時(shí)候,你可能會(huì)想注釋某一片的414.3RVMDKS使用技巧4.3RVMDKS使用技巧42我們只要在選中了之后,選擇右鍵,再選擇Advanced->CommentSelection就可以把這段代碼注釋掉了。執(zhí)行這個(gè)操作以后的結(jié)果如下圖所示:4.3RVMDKS使用技巧我們只要在選中了之后,選擇右鍵,再選擇Advanced->434.4RVMDKS調(diào)試技巧接下來(lái)我們用一個(gè)實(shí)例,來(lái)說(shuō)明如何參考MDK的例子為自己所用。這里以一個(gè)IO口翻轉(zhuǎn)為例,其實(shí)就是LED的閃爍,看看如何借用MDK的代碼。首先打開(kāi)D\KEIL3.80A\ARM\Examples\ST\STM32F10xFWLib\Examples目錄,可以看到很多例子,如下圖所示。4.4RVMDKS調(diào)試技巧接下來(lái)我們用一個(gè)實(shí)例,來(lái)說(shuō)明如何參444.4RVMDKS調(diào)試技巧4.4RVMDKS調(diào)試技巧45上圖中提供的例程IO口翻轉(zhuǎn)的例子在GPIO目錄下的IOToggle下,我們將這個(gè)目錄下面的所有文件拷貝到D:\KEIL3.80A\ARM\Examples\ST\STM32F10xFWLib\Project里面,這里會(huì)提示下圖所示的信息:4.4RVMDKS調(diào)試技巧上圖中提供的例程IO口翻轉(zhuǎn)的例子在GPIO目錄下的IO46我們選擇全部就可以了。然后單擊Project.Uv2,打開(kāi)工程,如下圖所示:4.4RVMDKS調(diào)試技巧我們選擇全部就可以了。然后單擊Project.Uv2,打開(kāi)47然后點(diǎn)擊,編譯一遍??梢钥吹饺缦聢D所示的編譯結(jié)果:4.4RVMDKS調(diào)試技巧然后點(diǎn)擊,編譯一遍??梢钥吹饺缦?/p>
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 溫州理工學(xué)院《居住建筑設(shè)計(jì)原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴州城市職業(yè)學(xué)院《化工原理實(shí)驗(yàn)一》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京工業(yè)職業(yè)技術(shù)大學(xué)《兒重發(fā)育保健護(hù)理》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南質(zhì)量工程職業(yè)學(xué)院《數(shù)字媒體后期制作》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東現(xiàn)代學(xué)院《寶石合成與優(yōu)化》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南應(yīng)用技術(shù)職業(yè)學(xué)院《建筑風(fēng)格史》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川音樂(lè)學(xué)院《ED器件與應(yīng)用技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 聊城大學(xué)《幼兒心理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 黑龍江能源職業(yè)學(xué)院《有限元分析及應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年江西省“三新”協(xié)同教研體高三上學(xué)期12月份聯(lián)考?xì)v史試卷
- GB/T 43700-2024滑雪場(chǎng)所的運(yùn)行和管理規(guī)范
- 魯迅《社戲》原文+賞析
- 部編版道德與法治三年級(jí)下冊(cè)教案全冊(cè)
- 幼兒教師之《幼兒游戲與指導(dǎo)》考試題庫(kù)(通用版)
- 中國(guó)建設(shè)銀行養(yǎng)老金融模式發(fā)展問(wèn)題研究
- 關(guān)于布郎芬布倫納發(fā)展心理學(xué)生態(tài)系統(tǒng)理論
- 我們身邊的法律故事課件
- 執(zhí)行律師服務(wù)方案
- GB 24544-2023墜落防護(hù)速差自控器
- 2023年11月上海市教育委員會(huì)教育技術(shù)裝備中心公開(kāi)招考3名工作人員筆試歷年高頻考點(diǎn)(難、易錯(cuò)點(diǎn)薈萃)附帶答案詳解
- 煤礦違章行為及預(yù)防
評(píng)論
0/150
提交評(píng)論