基于ARM單片機應用與實踐課件第四章_第1頁
基于ARM單片機應用與實踐課件第四章_第2頁
基于ARM單片機應用與實踐課件第四章_第3頁
基于ARM單片機應用與實踐課件第四章_第4頁
基于ARM單片機應用與實踐課件第四章_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于ARM單片機應用與實踐課件第四章基于ARM單片機應用與實踐課件第四章基于ARM單片機應用與實踐課件第四章4.1MDK-ARM4.70簡介Keil公司開發(fā)的ARM開發(fā)工具MDK,是用來開發(fā)基于Cotex-MA、Cotex-R4、ARM核的系列微控制器的嵌入式應用程序。它適合不同層次的開發(fā)者使用,包括專業(yè)的應用程序開發(fā)工程師和嵌入式軟件開發(fā)的入門者。MDK包含了工業(yè)標準的KeilC編譯器、宏匯編器、調試器、實時內核等組件,支持所有基于ARM的設備,易于學習和使用,同時具有強大的功能,適用于多數(shù)要求嚴苛的嵌入式應用程序開發(fā)。圖1MDK開發(fā)工具的組件通過閱讀報刊,我們能增長見識,擴大自己的知識面。基于ARM單片機應用與實踐課件第四章基于ARM單片機應用與實14.1MDK-ARM4.70簡介Keil公司開發(fā)的ARM開發(fā)工具MDK,是用來開發(fā)基于Cotex-MA、Cotex-R4、ARM核的系列微控制器的嵌入式應用程序。它適合不同層次的開發(fā)者使用,包括專業(yè)的應用程序開發(fā)工程師和嵌入式軟件開發(fā)的入門者。MDK包含了工業(yè)標準的KeilC編譯器、宏匯編器、調試器、實時內核等組件,支持所有基于ARM的設備,易于學習和使用,同時具有強大的功能,適用于多數(shù)要求嚴苛的嵌入式應用程序開發(fā)。圖1MDK開發(fā)工具的組件4.1MDK-ARM4.70簡介Keil公司開發(fā)的ARM開24.1MDK-ARM4.70簡介MDK的特點MDK-ARM軟件主要特點如下:■完美支持Cortex-M、Cortex-R4、ARM7和ARM9系列器件。■ULINKpro可實時分析運行中的應用程序,且能記錄Cortex-M指令的每一次執(zhí)行?!鰹閹D形用戶接口的嵌入式系統(tǒng)提供了完善的GUI庫支持?!鲂袠I(yè)領先的ARMC/C++編譯工具鏈?!龃_定的KeilRTX,小封裝實時操作系統(tǒng)(帶源碼)?!鯰CP/IP網(wǎng)絡套件提供多種的協(xié)議和各種應用。4.1MDK-ARM4.70簡介MDK的特點MDK-A34.2新建MDK工程如何新建MDK工程?■安裝開發(fā)環(huán)境和調試驅動程序■創(chuàng)建一個工程并配置工程■編寫程序、下載、調試4.2新建MDK工程如何新建MDK工程?■安裝開發(fā)環(huán)境和調試44.2新建MDK工程4.2新建MDK工程5選擇工具欄Project->NewμVisionProject…新建我們的工程文件,我們將新建的工程文件保存在桌面的STM32-Template\USER文件夾下(先在電腦桌面上新建一STM32-Template文件夾,在STM32-Template里面新建一個USER文件夾),文件名取為STM32-DEMO,名字可以隨便取,點擊保存。最終效果如下圖所示。創(chuàng)建一個工程并配置工程4.2新建MDK工程選擇工具欄Project->NewμVisionPro64.2新建MDK工程4.2新建MDK工程7此時工程新建成功,接下來需要添加文件,具體操作如下所述:在STM32-Template文件夾下,新建四個文件夾,分別為FWlib、CMSIS、Uotput、Listing。原先新建的USER用來存放工程文件和用戶代碼,包括主函數(shù)main.c。FWlib用來存放STM32庫里面的inc和src這兩個文件,這兩個文件包含了芯片上的所有驅動。CMSIS用來存放庫為我們自帶的啟動文件和一些M3系列通用的文件。CMSIS里面存放的文件適合任何M3內核的單片機。Output用來保存軟件編譯后輸出的文件,Listing用來存放一些編譯過程中產(chǎn)生的文件。最終效果如下圖所示。

4.2新建MDK工程此時工程新建成功,接下來需要添加文件,具體操作如下所述:4.84.2新建MDK工程4.2新建MDK工程9選擇芯片型號,我們使用ST公司的STM32F103VET6,則選擇對應型號,單擊“ok”鍵。彈出窗口問我們是否需要拷貝STM32的啟動代碼到工程文件中,這份啟動代碼在M3系列中都是適用的,一般情況下我們都點擊是,但我們這里用的是ST的庫,庫文件里面也自帶了這一份啟動代碼,所以為了保持庫的完整性,我們就不需要開發(fā)環(huán)境為我們自帶的啟動代碼了,稍后我們自己手動添加,這里我們點擊“否”。最終效果如下圖所示。

4.2新建MDK工程選擇芯片型號,我們使用ST公司的STM32F103VET6,104.2新建MDK工程4.2新建MDK工程113.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver的inc跟src這兩個文件夾拷貝到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此時我們新進的工程目錄如下所示:4.2新建MDK工程此時我們新進的工程目錄如下所示:4.2新建MDK工程17到我們剛剛新建的MDK工程中,將Target改為STM32-DEMO(不改也行)。最終效果如下圖所示。4.2新建MDK工程到我們剛剛新建的MDK工程中,將Target改為STM32-18在STM32-DEMO上右鍵選中AddGroup…選項,新建四個組,分別命名為STARTCODE、USER、FWlib、CMSIS。STARTCODE用它來放我們的啟動代碼的,最終效果如下圖。4.2新建MDK工程在STM32-DEMO上右鍵選中AddGroup…選項,新194.2新建MDK工程至于有些文件有個鎖的圖標,是因為這些都是庫文件,不需要我們修改,屬性為只讀。至此,工程基本建好。接下來配置一下MDK的配置選項,單擊按鈕,在彈出來的窗口中選中“Output”選項。點擊SelectFolderforObjects...設置編譯,輸出文件保存的位置。同時選上CreateHEXFile和Browseinformation這兩個選項框。最終效果如下圖所示。4.2新建MDK工程至于有些文件有個鎖的圖標,是因為這些都是204.2新建MDK工程4.2新建MDK工程21同樣在Listing這個選項卡中,我們也點擊SelectFolderlistings…定位到模板中的Listing文件夾。選中C/C++選項卡,在Define里面輸入添加USE_STDPERIPH_DRIVER,STM32F10X_HD。最終效果如下圖所示。4.2新建MDK工程同樣在Listing這個選項卡中,我們也點擊Select22在單擊IncludePaths欄,在這里添加庫文件的搜索路徑,這樣就可以屏蔽掉默認的搜索路徑。最終效果如下圖所示。4.2新建MDK工程在單擊IncludePaths欄,在這里添加庫文件的搜索路23但當編譯器在我們指定的路徑下搜索不到的話還是會回到標準目錄去搜索,就像有些ANSICC的庫文件,如stdin.h、stdio.h。庫文件路徑修改成功之后如下所示:

4.2新建MDK工程但當編譯器在我們指定的路徑下搜索不到的話還是會回到標準目錄244.3RVMDKS使用技巧文本美化文本美化,主要是設置一些關鍵字、注釋、數(shù)字等的顏色和字體。前面我們在介紹RVMDK新建工程的時候看到界面如下圖所示。4.3RVMDKS使用技巧文本美化文本美化,主要是設置一些關254.3RVMDKS使用技巧4.3RVMDKS使用技巧26這是MDK默認的設置,可以看到其中的關鍵字和注釋等字體的顏色不是很漂亮,而MDK提供了我們自定義字體顏色的功能。我們可以在工具條上點擊(編輯配置對話框)彈出如下圖所示界面。4.3RVMDKS使用技巧這是MDK默認的設置,可以看到其中的關鍵字和注釋等字體的顏274.3RVMDKS使用技巧4.3RVMDKS使用技巧28在該對話框中我們選擇Colors&Fonts選項卡,在該選項卡內,我們就可以設置自己的代碼的子體和顏色了。由于我們使用的是C語言,故在TextFileTypes下面選擇ARM:EditorCFiles在右邊就可以看到相應的元素了。最終效果如下圖所示。4.3RVMDKS使用技巧在該對話框中我們選擇Colors&Fonts選項卡,在該選294.3RVMDKS使用技巧4.3RVMDKS使用技巧30然后點擊各個元素修改為你喜歡的顏色,當然也可以在Font欄設置你字體的類型,以與字體的大小等。設置成之后,點擊OK,就可以在主界面看到你所修改后的結果,例如我修改后的代碼顯示效果如下圖所示:4.3RVMDKS使用技巧然后點擊各個元素修改為你喜歡的顏色,當然也可以在Font欄31TAB鍵的妙用MDK的TAB鍵和一般編譯器的TAB鍵有不同的地方,和C++的TAB鍵差不多。MDK的TAB鍵支持塊操作。也就是可以讓一片代碼整體右移固定的幾個位,也可以SHIFT+TAB鍵整體左移固定的幾個位。假設我們前面的串口1中斷響應函數(shù)如下圖所示。4.3RVMDKS使用技巧TAB鍵的妙用MDK的TAB鍵和一般編譯器的TAB鍵有324.3RVMDKS使用技巧4.3RVMDKS使用技巧33上圖中這樣的代碼大家肯定不會喜歡,這還只是短短的30來行代碼,如果你的代碼有幾千行,全部是這個樣子,不頭大才怪。看到這樣的代碼我們就可以通過TAB鍵的妙用來快速修改為比較規(guī)范的代碼格式。選中一塊然后按TAB鍵,你可以看到整塊代碼都跟著右移了一定距離,如下圖示。4.3RVMDKS使用技巧上圖中這樣的代碼大家肯定不會喜歡,這還只是短短的30來344.3RVMDKS使用技巧4.3RVMDKS使用技巧35接下來我們就是要多選幾次,然后多按幾次TAB鍵就可以達到迅速使代碼規(guī)范化的目的,最終效果如下圖所示。4.3RVMDKS使用技巧接下來我們就是要多選幾次,然后多按幾次TAB鍵就可以達到迅36快速定位函數(shù)/變量被定義的地方大家在調試代碼或編寫代碼的時候,一定有想看看某個函數(shù)是在那個地方定義的,具體里面的內容是怎么樣的,也可能想看看某個變量或數(shù)組是在哪個地方定義的等。只要你把光標放到這個函數(shù)/變量(xxx)的上面(xxx為你想要查看的函數(shù)或變量的名字),然后右鍵,彈出如下圖所示的菜單欄。4.3RVMDKS使用技巧快速定位函數(shù)/變量被定義的地方大家在調試代碼或編寫代碼的時候374.3RVMDKS使用技巧4.3RVMDKS使用技巧38在上圖中,我們找到GotoDefinitionOf‘STM32_Clock_Init’這個地方,然后單擊左鍵就可以快速跳到STM32_Clock_Init函數(shù)的定義處(注意要先在OptionsforTarget的Output選項卡里面勾選BrowseInformation選項,再編譯,再定位,否則無法定位!)。如下圖所示。4.3RVMDKS使用技巧在上圖中,我們找到GotoDefinitionO394.3RVMDKS使用技巧4.3RVMDKS使用技巧40快速注釋與快速消注釋在調試代碼的時候,你可能會想注釋某一片的代碼,來看看執(zhí)行的情況,MDK提供了這樣的快速注釋/消注釋塊代碼的功能。也是通過右鍵實現(xiàn)的。這個操作比較簡單,就是先選中你要注釋的代碼區(qū),然后右鍵,選擇Advanced->CommentSelection就可以了。以Stm32_Clock_Init函數(shù)為例,比如我要注釋掉下圖中所選中區(qū)域的代碼,如下圖所示。4.3RVMDKS使用技巧快速注釋與快速消注釋在調試代碼的時候,你可能會想注釋某一片的414.3RVMDKS使用技巧4.3RVMDKS使用技巧42我們只要在選中了之后,選擇右鍵,再選擇Advanced->CommentSelection就可以把這段代碼注釋掉了。執(zhí)行這個操作以后的結果如下圖所示:4.3RVMDKS使用技巧我們只要在選中了之后,選擇右鍵,再選擇Advanced->434.4RVMDKS調試技巧接下來我們用一個實例,來說明如何參考MDK的例子為自己所用。這里以一個IO口翻轉為例,其實就是LED的閃爍,看看如何借用MDK的代碼。首先打開D\KEIL3.80A\ARM\Examples\ST\STM32F10xFWLib\Examples目錄,可以看到很多例子,如下圖所示。4.4RVMDKS調試技巧接下來我們用一個實例,來說明如何參444.4RVMDKS調試技巧4.4RVMDKS調試技巧45上圖中提供的例程IO口翻轉的例子在GPIO目錄下的IOToggle下,我們將這個目錄下面的所有文件拷貝到D:\KEIL3.80A\ARM\Examples\ST\STM32F10xFWLib\Project里面,這里會提示下圖所示的信息:4.4RVMDKS調試技巧上圖中提供的例程IO口翻轉的例子在GPIO目錄下的IO46我們選擇全部就可以了。然后單擊Project.Uv2,打開工程,如下圖所示:4.4RVMDKS調試技巧我們選擇全部就可以了。然后單擊Project.Uv2,打開47然后點擊,編譯一遍??梢钥吹饺缦聢D所示的編譯結果:4.4RVMDKS調試技巧然后點擊,編譯一遍??梢钥吹饺缦?/p>

溫馨提示

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

評論

0/150

提交評論