當前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]1.1使用Keil MDK以及標準外設(shè)庫創(chuàng)建STM32工程通過上一節(jié)對標準外設(shè)庫的介紹,想必各位讀者對標準外設(shè)庫已經(jīng)有了基本的認識,然而由于標準外設(shè)庫中文件眾多,很多初學(xué)者在開始很長一段時間內(nèi)甚至都無法完全自己建立一

1.1使用Keil MDK以及標準外設(shè)庫創(chuàng)建STM32工程

通過上一節(jié)對標準外設(shè)庫的介紹,想必各位讀者對標準外設(shè)庫已經(jīng)有了基本的認識,然而由于標準外設(shè)庫中文件眾多,很多初學(xué)者在開始很長一段時間內(nèi)甚至都無法完全自己建立一個工程,很多人只是依賴標準外設(shè)庫或給定的工程模板。本節(jié)就介紹怎樣利用Keil MDK開發(fā)環(huán)境和標準外設(shè)庫來搭建自己的工程。

建立一個基于標準外設(shè)庫其實并不復(fù)雜,網(wǎng)絡(luò)上也有很多關(guān)于怎樣在Keil MDK下建立工程的教程,方法也各異,本節(jié)所介紹的方法本著少改動、便于使用、方便更換器件等原則,給大家介紹怎樣在Keil中創(chuàng)建一個工程,并以一個最簡單的例子來說明怎樣下載和調(diào)試程序。

1.1.1開發(fā)工具與開發(fā)環(huán)境1.軟件版本

本節(jié)所使用Keil MDK為目前的最新版V4.21,具體版本信息如圖5?6所示。其他版本差別不大,讀者可以根據(jù)自己使用的版本進行操作或者從Keil的官網(wǎng)下載新版本。使用的標準外設(shè)庫為目前最新的V3.5版本。使用的開發(fā)調(diào)試工具為JLINK-V8,使用的驅(qū)動版本為V4.08l。

圖5?6MDK詳細版本信息

2.建立工程目錄

首先先建立一個用于存放工程的文件夾,此處命名為STM32,在文件夾下分別建立LIB、USER、MDK三個文件夾,分別用于存放標準外設(shè)庫文件、用戶程序文件、工程目錄。在MDK文件夾下建立List、Obj兩個文件夾,分別用于存放在編譯過程中產(chǎn)生的臨時文件和輸出文件。

接下來拷貝標準外設(shè)庫和相應(yīng)的文件到工程目錄中,首先拷貝STM32F10x_StdPeriph_Lib_V3.5.0Libraries文件夾下的兩個文件夾CMSIS和STM32F10x_StdPeriph_Driver到剛剛新建的STM32LIB目錄下,接下來拷貝用戶編寫程序的程序文件,此文件可以從標準外設(shè)庫自帶的例程中拷貝,這里從STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_ExamplesADC3ADCs_DMA目錄下拷貝main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h四個文件,這四個文件是在編程的時候用戶往往需要根據(jù)實際需求進行修改的。因此拷貝至STM32USER目錄下,system_stm32f10x.c文件定義了系統(tǒng)時鐘等參數(shù)并完成微控制器的初始化,標準外設(shè)庫中已經(jīng)有了,這里可以不拷貝。這樣所需要的文件都已經(jīng)具備了,如圖5?7所示。

圖5?7工程目錄文件夾結(jié)構(gòu)

1.1.2MDK的操作與設(shè)置1.新建工程

首先啟動Keil uVision4,點擊菜單欄Project-New uVision Project,選擇工程的保存位置,保存位置選擇在之前建立的MDK文件夾下,如圖5?8所示。

圖5?8保存路徑的選擇

在彈出的界面中選擇所使用的芯片信號,筆者使用的芯片型號為STM32F103ZET6,所以選擇STM32F103ZE,如圖5?9所示。

圖5?9選擇芯片型號

芯片選擇完成后軟件會彈出一條提示,提示是否要拷貝STM32大容量啟動代碼并添加到工程,由于我們使用新版本標準外設(shè)庫中提供的啟動代碼,因此此處選擇否。如圖5?10所示。

圖5?10拷貝啟動代碼選擇

接下來就出現(xiàn)了一個空的工程窗口,建立了一個新的工程。

2.添加程序文件

在左側(cè)Project一欄中對Target 1兩次點擊之后可以重命名,這里命名為STM32,然后右擊,如所示,單擊Manage Comoonents。出現(xiàn)如所圖5?11示界面。

圖5?11選擇Manage Comoonents

在這個界面里可以更為方便的添加工程的相關(guān)文件。也可以在對應(yīng)的Group上右鍵Add Group和Add Files to Group只是這種方式更方便集中的添加和管理。按照圖5?12所示,建立四個Group,點擊Groups一欄右上角圖標,依次新建USER、CMSIS、LIB、StartUp四個組,點擊對應(yīng)的組在點擊右下方Add Files添加相應(yīng)的文件到對應(yīng)的組中。USER組中添加USER文件夾下的文件,CMSIS組中添加STM32 PJSTM32LIBCMSISCM3CoreSupport文件夾下core_cm3.c文件和STM32LIBCMSISCM3DeviceSupportSTSTM32F10x文件夾下system_stm32f10x.c文件。在LIB組下添加STM32LIBSTM32F10x_StdPeriph_Driversrc下的所有文件,這個組的文件也可以根據(jù)后面的程序功能添加對應(yīng)的功能文件。StartUp組下添加STM32LIBCMSISCM3DeviceSupportSTSTM32F10xstartuparm文件夾下startup_stm32f10x_hd.s文件,此文件根據(jù)芯片的所屬類型來選擇,STM32F103ZE為大容量器件所以選擇hd結(jié)尾的啟動文件。至此,已經(jīng)將對應(yīng)的文件全部加入工程中。

圖5?12編輯組并添加對應(yīng)文件

文件添加完成后的工程管理窗口如圖5?13所示。其中CMSIS和LIB組中的文件圖標上由個鑰匙圖案,表示該文件當前為只讀屬性,工程編譯完成后前面會出現(xiàn)一個加號,點擊展開可以顯示當前文件所調(diào)用的文件。

圖5?13工程管理文件列表

3.參數(shù)設(shè)置

接下來需要對工程進行一些參數(shù)設(shè)置,在中STM32上右擊,選擇第一項Options for Target ‘STM32’,如圖5?14所示。

圖5?14選擇進行參數(shù)設(shè)置

彈出窗口如圖5?15所示。在這個窗口中共有10個選項卡,第一個選項卡Device用于選擇使用的器件,由于在新建工程的時候已經(jīng)選擇這里可以不用在選擇,當前的工程如果在后期要更換使用的芯片時可以在這個選項卡中更換芯片,同時還要注意更換對應(yīng)的啟動文件。在Target選項卡中,一般只需要填上使用的晶振頻率即可,其他都可以保持默認。

圖5?15Target選項設(shè)置

在如圖5?16所示Output選項卡中主要注意兩項,一是選擇輸出文件夾,選擇之前工程目錄中MDK文件夾下的Obj文件夾,在下面還有一個Create HEX File選項,用于選擇是否生成hex文件,如果編譯好的程序要寫片,或者要提供給別人下載到芯片中而不希望別人知道源碼時可以提供HEX文件。

圖5?16Output選項設(shè)置

在Listing選項卡下同樣可以選擇Listing對應(yīng)的文件夾,這里選擇STM32MDKList文件夾,下方的復(fù)選框可以選擇需要生成的調(diào)試信息,這里保持默認即可,如圖5?17所示。

圖5?17Listing選項設(shè)置

C/C++選項卡中的設(shè)置比較重要,如圖5?18所示,選項卡中主要有兩個地方需要注意,首先是整個工程的宏定義,在前面標準外設(shè)庫部分已經(jīng)有過介紹,標準外設(shè)庫中很多功能都是通過宏定義來實現(xiàn)的,由于標準外設(shè)庫針對STM32一系列芯片,因此需要通過宏定義來進行針對性的選擇。這種選擇有兩種方式,有的人是直接改動宏定義部分的庫文件,缺點是需要更改一些功能時不是很方便,而且筆者建議在盡量不更改庫文件的方式下實現(xiàn)功能的配置和使用,另一種方式就是在工程的設(shè)置中添加宏定義,這兒添加了兩個宏定義,USE_STDPERIPH_DRIVER表示使用標準外設(shè)庫進行程序開發(fā),STM32F10X_HD表示使用的是STM32F10X系列大容量器件,本例中中使用的是STM32F103ZET6故填寫此項。

需要說明的是在程序開發(fā)過程中不光庫文件可以通過宏定義的方式進行程序功能配置,用戶程序也可以仿照庫文件的這種形式,通過相關(guān)的宏定義進行一些參數(shù)配置。STM32的標準外設(shè)庫在程序組織性、層次性、規(guī)范性等方面都值得我們?nèi)W(xué)習(xí)的。在“Target”的選項卡中進行的宏定義是這對當前“Target”有效的,在每一個“Group”同樣可以設(shè)置作用于Group的宏定義。

Language/Code Generation一欄中主要是針對程序語言所所的一些優(yōu)化和配置,默認情況下保持默認即可。

圖5?18C/C++選項設(shè)置

接下來一個重要的設(shè)置就是設(shè)置工程所包含的頭文件目錄,如圖5?19所示,點擊Include Paths一欄右側(cè)圖標,彈出如所示的對話框。點擊對話框右上角圖標,添加工程所包括的頭文件路徑,添加頭文件路徑的時候要把當前工程目錄中包含頭文件的路徑都添加進去,如所示,添加了以下幾個路徑:

..USER

..LIBSTM32F10x_StdPeriph_Driverinc

..LIBCMSISCM3CoreSupport

..LIBCMSISCM3DeviceSupportSTSTM32F10x

圖5?19添加頭文件包含路徑

如果有用戶自己編寫的頭文件也要相應(yīng)的加上引用路徑。仔細觀察可以發(fā)現(xiàn)在標注外設(shè)庫中頭文件的引用為:#include "stm32f10x.h",在C語言的學(xué)習(xí)中我們知道雙引號表示編譯器從用戶目錄開始搜索,如果未找到才回去系統(tǒng)目錄去查找,MDK的安裝目錄中同樣存在對應(yīng)的庫文件,路徑為KeilARMINCSTSTM32F10x,但是由于不同的版本所內(nèi)含的庫文件不同,如目前最新的V4.21版本中則內(nèi)置了V3.4版本的庫文件,而之前的版本中很多內(nèi)置了V2.0版本的庫文件,因此為了保持工程所使用的庫文件和引用的頭文件的一致性,同時也方便工程文件拷貝到其他電腦上運行,建議大家都按照本書介紹的方式都從自己的目錄中引用頭文件。

4.程序調(diào)試與下載設(shè)置

頭文件引用路徑添加完成后,就可以進行相關(guān)的編譯工作了,在進行這一步工作之前,我們還要完成有關(guān)程序調(diào)試和下載的相關(guān)設(shè)置,有關(guān)調(diào)試的設(shè)置在Debug選項卡中,之前的Asm和Linker選項卡保持默認。Debug選項卡如圖 5?20所示。在此選項卡中主要完成程序調(diào)試的相關(guān)設(shè)置,選項卡主要分為兩個部分,左側(cè)是使用模擬器進行仿真與調(diào)試的方式,點選后軟件會進入模擬器調(diào)試。右側(cè)是使用仿真器連接硬件開發(fā)平臺進行調(diào)試,首先從右側(cè)選擇所使用的仿真器,這里使用的是J-Link仿真器,故在下拉框中選擇Cortex-M/R J-LINK/J-

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉