日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > 嵌入式微處理器
[導讀]本文所使用Keil MDK 的版本為V4.21。其他版本差別不大,讀者可以根據(jù)自己使用的版本進行操作或者從Keil的官網下載新版本。使用的標準外設庫為V3.5版本。使用的開發(fā)調試工具為JLINK-V8,使用的驅動版本為V4.08l。



本文所使用Keil MDK 的版本為V4.21。其他版本差別不大,讀者可以根據(jù)自己使用的版本進行操作或者從Keil的官網下載新版本。使用的標準外設庫為V3.5版本。使用的開發(fā)調試工具為JLINK-V8,使用的驅動版本為V4.08l。


建立工程目錄


首先先建立一個用于存放工程的文件夾,此處命名為STM32;在文件夾下分別建立LIBUSER、MDK三個文件夾,分別用于存放標準外設庫文件、用戶程序文件、工程目錄。


MDK文件夾下建立List、Obj兩個文件夾,分別用于存放在編譯過程中產生的臨時文件輸出文件。


接下來拷貝標準外設庫和相應的文件到工程目錄中,

首先拷貝STM32F10x_StdPeriph_Lib_V3.5.0\Libraries文件夾下的兩個文件夾CMSISSTM32F10x_StdPeriph_Driver到剛剛新建的STM32\LIB目錄下,接下來拷貝用戶編寫程序的程序文件,此文件可以從標準外設庫自帶的例程中拷貝,從STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples\ADC\3ADCs_DMA目錄下拷貝main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h四個文件,這四個文件是在編程的時候用戶往往需要根據(jù)實際需求進行修改的。并且拷貝至STM32\USER目錄下,system_stm32f10x.c文件定義了系統(tǒng)時鐘等參數(shù)并完成微控制器的初始化,標準外設庫中已經有了,這里可以不拷貝。這樣所需要的文件都已經具備了,如圖1所示。


圖1?工程目錄文件夾結構



MDK的操作與設置


1. 新建工程


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


圖2?保存路徑的選擇


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


圖3?選擇芯片型號


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


圖4?拷貝啟動代碼選擇


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


2. 添加程序文件


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


圖5?選擇Manage Comoonents


在這個界面里可以更為方便的添加工程的相關文件。也可以在對應的Group上右鍵Add Group和Add Files to Group只是這種方式更方便集中的添加和管理。按照圖6所示,建立四個Group,點擊Groups一欄右上角圖標,依次新建USER、CMSIS、LIB、StartUp四個組,點擊對應的組在點擊右下方Add Files添加相應的文件到對應的組中。


USER組中添加USER文件夾下的文件。


CMSIS組中添加STM32 PJ\STM32\LIB\CMSIS\CM3\CoreSupport文件夾下core_cm3.c文件和STM32\LIB\CMSIS\CM3\DeviceSupport\ST\STM32F10x文件夾下system_stm32f10x.c文件。


LIB組下添加STM32\LIB\STM32F10x_StdPeriph_Driver\src下的所有文件,這個組的文件也可以根據(jù)后面的程序功能添加對應的功能文件。


StartUp組下添加STM32\LIB\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm文件夾下startup_stm32f10x_hd.s文件,此文件根據(jù)芯片的所屬類型來選擇,STM32F103ZE為大容量器件所以選擇hd結尾的啟動文件。


至此,已經將對應的文件全部加入工程中。


圖6?編輯組并添加對應文件


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


圖7?工程管理文件列表


3. 參數(shù)設置


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


圖8?選擇進行參數(shù)設置


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


圖9 Target選項設置


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


圖10 Output選項設置


Listing選項卡下同樣可以選擇Listing對應的文件夾,這里選擇STM32\MDK\List文件夾,下方的復選框可以選擇需要生成的調試信息,這里保持默認即可,如圖11所示。


圖11 Listing選項設置


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


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


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


圖12 C/C++選項設置


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


..\USER

..\LIB\STM32F10x_StdPeriph_Driver\inc

..\LIB\CMSIS\CM3\CoreSupport

..\LIB\CMSIS\CM3\DeviceSupport\ST\STM32F10x


圖13?添加頭文件包含路徑


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


4. 程序調試與下載設置


頭文件引用路徑添加完成后,就可以進行相關的編譯工作了,在進行這一步工作之前,我們還要完成有關程序調試和下載的相關設置,有關調試的設置在Debug選項卡中,之前的Asm和Linker選項卡保持默認。Debug選項卡如圖14所示。在此選項卡中主要完成程序調試的相關設置,選項卡主要分為兩個部分,左側是使用模擬器進行仿真與調試的方式,點選后軟件會進入模擬器調試。右側是使用仿真器連接硬件開發(fā)平臺進行調試,首先從右側選擇所使用的仿真器,這里使用的是J-Link仿真器,故在下拉框中選擇Cortex-M/R J-LINK/J-Trace,在兩側的下方可以通過勾選對應的復選框來選擇是否需要在調試開始時下載程序和運行到主程序,其他部分的設置保持默認即可。


圖14?調試工具設置


點擊右側圖標進入J-Link設置界面,如果此時仿真器和硬件開發(fā)平臺已經正確連接就會出現(xiàn)如圖15所示的界面,同時系統(tǒng)系統(tǒng)任務欄中會自動彈出J-Link的控制軟件。從界面中可以讀出當前的J-Link SN號以及相應的版本信息,如果沒有出現(xiàn)相關信息請檢查相關驅動程序是否正確安裝,并到系統(tǒng)的設備管理器中通用串行總線控制設備一項檢查系統(tǒng)有沒有識別出J-Link,右側則可以讀取所連接的設備信息,如果沒有出現(xiàn)類似的信息請檢查硬件連接。在此選項卡中可以進行J-Link的端口、速度等設置,這里只需要保持默認就可以了。


圖15?J-Link連接


STM32F10X內核集成了串行/JTAG調試接口SWJ-DP(Serial Wire and JTAG)。這是標準的ARM CoreSight調試接口,包括JTAG-DP接口(使用5個引腳)和SW-DP(使用兩個引腳)。引腳分配如表1所示。兩種方式都可以進行程序的調試和下載,但是SW方式更節(jié)省端口,只需要兩根線就可以,多余的I/O可以釋放用作普通用途,SW方式和JTAG方式在普通程序調試下載與調試過程中并無明顯差別,如果想使用SW的方式調試程序只需要在Port的下拉列表中選擇SW即可,如圖16所示。選擇完成后如果硬件連接正確同樣能夠讀取芯片的信息。


表1?SWJ調試端口引腳


圖16?使用SW方式


設置好了Debug選項卡中有關選項后還需要設置Flash Download選項卡,如圖17所示。本選項卡主要設置燒寫Flash時的相關參數(shù),這里主要設置兩個部分,一個是設置程序下載的一些配置,這兒選擇Erase Sectors表示下載程序的時候擦除對應分區(qū),勾選后面三項,分別表示下載程序,下載后校驗,程序下載后復位并運行。接下來需要選擇所使用的Flash,點擊Add,添加所使用的芯片類型,筆者使用的是STM32F103ZET6,F(xiàn)lash大小是512k,因此選擇STM32F10X High-density Flash。至此完成使用J-Link完成程序調試的配置。


圖17 Flash燒寫參數(shù)設置


最后選擇程序下載按鈕所對應的工具配置,配置同Debug界面如圖18所示,同樣選擇Cortex-M/R J-LINK/J-Trace這樣就可以在后面的使用中一鍵將程序下載到Flash中。至此已經全部完成了程序調試和下載的必要設置。


圖18 設置程序下載菜單對應的工具


-END-



推薦閱讀



【01】編碼器是什么?STM32編碼器接口及應用編程 【02】STM32學了很久,為什么還是不會做項目? 【03】STM32庫中的Assert斷言有必要使用嗎? 【04】先學STM8,還是學STM32? 【05】STM32好找工作,所以學linux終究是錯付了嗎?


免責聲明:整理文章為傳播相關技術,版權歸原作者所有,如有侵權,請聯(lián)系刪除

免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關注更多精彩內容

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

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉