stm32庫工程分析.doc_第1頁
stm32庫工程分析.doc_第2頁
stm32庫工程分析.doc_第3頁
stm32庫工程分析.doc_第4頁
stm32庫工程分析.doc_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

STM32 V3.4固件庫使用實例1 概述: 剛入手STM32,查了好多資料也看了好多開發(fā)板的程序和教程,以自己的思路先上一個工程框架吧,剩下的就是大家想加什么就加什么了,希望對和我一樣的STM32初學者有點幫助,如果您是初次使用ARM MDK希望對你也有幫助,本實例是一個“神馬”功能都沒有的RS422模塊。2建立目錄2.1 新建工程目錄:“RS422”,你也可以根據(jù)自己的需要命名此頂層目錄;2.2在目錄“RS422”下新建 “RVMDK”目錄,表示采用ARM MDK開發(fā)環(huán)境;2.3在“RVMDK”目錄下新建目錄“V1”,表示軟件版本V1.0,這個好處在于下次將整個目錄復制一下改為“V2”,軟件版本就是V2.0了。2.4在“V1”目錄下新建 “Libraries”目錄;2.5在“V1” 目錄下新建 “Project” 目錄。2.6在“Project”目錄下新建“OBJ”、“LIST”、“Pro”3個目錄。2.7在“V1” 目錄下新建“USER”目錄。2.8在“USER”目錄下新建“INC”、“SRC”2個目錄。這兩個目錄來源于第3.1節(jié) 圖1:目 錄 結 構 圖3 拷貝文件 (已經(jīng)寫的很詳細了,就不上圖了)3.1 將固件庫目錄“STM32F10X_StdPeriph_lib_V3.4.0”“Libraries”下的所有目錄拷貝到工程目錄“RS422” “RVMDK” “V1” “Libraries”目錄下。3.2將固件庫目錄 “STM32F10X_StdPeriph_lib_V3.4.0” “Project” “STM32F10x_StdPeriph_Examples” “GPIO” “IOToggle”目錄下的“stm32f10x_it.c”、“system_stm32f10x.c”拷貝到工程目錄“RS422” “RVMDK” “V1” “USER” “SRC”目錄下,在此“SRC”目錄下新建“main.c”文件,“main.c”先“神馬”也不寫。3.3 將固件庫目錄“STM32F10X_StdPeriph_lib_V3.4.0”“Project” “STM32F10x_StdPeriph_Examples” “GPIO” “IOToggle”目錄下的“stm32f10x_conf.h”、“stm32f10x_it.h” 這2個文件拷貝到工程目錄 “RS422” “RVMDK” “V1” “USER” “INC”目錄下。4 建立工程:(已經(jīng)寫的很詳細了,就不上圖了)4.1我用的是ARM 的MDK4.14開發(fā)環(huán)境,運行“Keil uVision4” ;4.2點擊主菜單欄 “Project”“New uVision Project”,選擇在工程目錄的“V1” “Project” “Pro”目錄下命名新建工程為“RS422_MODULE.uvproj”(當然也可以命名為你自己需要的工程名);4.3接下來出現(xiàn)CPU選擇窗口,選擇CPU為 “STMicroelectronics” “STM32F103ZE” (這個大家根據(jù)自己的需要選擇),點擊 “OK” 按鈕;4.4接下來出現(xiàn)“Copy STM32 Startup Code to Project Folder and ADD File to Project ?”提示時選擇“否”(在后面的步驟中會根據(jù)CPU選擇啟動文件的,這里不用選擇),完成工程建立。 5 工程管理 上一節(jié)新建的工程還是空空的,這一步要將它實例化。5.1 在“Project”窗口中用鼠標左鍵點擊“Target 1”,再點擊右鍵彈出菜單選擇菜單中的 “Manage Components”子菜單(見圖2),出現(xiàn)“Components,Environment and Books”窗口(見圖3)。 圖2 圖35.2 用鼠標雙擊“Project Targets”欄中的 “Target 1” 將 “Target 1” 改為 “RS422_MODULE” (見圖4),在中間的 “Groups”欄中添加“USER”、“STM32_LIB”、“MDK_STARTUP”、“CMSIS”4個條目(見圖5)。圖 4圖55.3 在“USER”條目的“Files”欄中添加目錄“V1” “USER” “SRC”下的“main.c”、“stm3210x_it.c”2個文件,通過窗口的“Add Files”按鈕可以添加文件 (見圖6)。 圖65.4 在 “STM32_LIB” 條目的 “Files” 欄中添加目錄“V1” “Libraries” “STM32F10x_StdPeriph_Driver” “SRC”目錄下的“stm3210x_misc.c”、“stm3210x_rcc.c”、“stm3210x_gpio.c”、 “stm3210x_usart.c”4個文件(見圖7),其中“stm3210x_misc.c”、“stm3210x_rcc.c” 這2個文件是必須的(我自己的理解)。 因為我的程序要用到“GPIO”和“串口”,所以又添加了“stm3210x_gpio.c”、 “stm3210x_usart.c”這2個文件,大家在開發(fā)中如果用到STM32 的其他功能,再添加相應的接口庫文件就可以了。 圖75.5 在“MDK_STARTUP”條目的“Files” 欄中添加目錄“V1” “Libraries” “CMSIS” “CM3”“DeviceSupport”“ST”“STM32F10x”“startup”“arm”(我的神?。篠T的目錄夠深的)下的 “startup_stm3210x_hd.s”這個文件(見圖8),因為我選用的CPU是“STM32103ZE” 是高容量FLASH的CPU所以選擇這個文件。 圖85.6 在 “CMSIS” 條目的 “Files” 欄中添加目錄 “V1” “Libraries” “CMSIS” “CM3”“CoreSupport”下的“core_cm3.c”和目錄“V1” “USER” “SRC”下的“system_stm32f10x.c”這2個文件(見圖9)。 圖95.7 退出“Keil uVision4”開發(fā)環(huán)境,將工程目錄“RS422”去掉文件夾的只讀屬性,并“應用到子目錄和所有文件”,這是因為STM32固件庫下載下來是只讀的,無法修改庫中的文件。去掉只讀屬性后再進入“Keil u Vision4”,然后打開工程 “RS422_MODULE.uvproj”。6 工程設置6.1在“Project”窗口中用鼠標左鍵點擊最頂層的“RS422”,再點擊右鍵彈出菜單選擇菜單中的 “Options for Target RS422”子菜單(見圖10),出現(xiàn)“Options for Target RS422”窗口(見圖11),可以按圖11進行設置。 圖 10 圖11IROM1、IRAM1根據(jù)芯片不同而不同,一般KEIL會自動根據(jù)芯片填好的6.2 選擇頂層的“Output ”,進入“Output”設置頁,點擊下面的“Select Folder for Objects”按鈕,選擇目錄“V1” “Project” “OBJ”為目標文件目錄,選中“Create HEX File” (見圖12)。見下面的重點1件生成目錄(見圖13),所有的目標文件和燒寫到芯片中的文件都在這里。選擇“Create HEX File”前面的方框,用來生成目標文件。這個見重點2 圖 12以下兩點很重要: 1. 將上圖”Name of Executable”后的文本框中的”RS422_MODULE” 更改為”RS422”,否則用JLINK或ULINK仿真時會報錯,這是經(jīng)過1個上午的奮斗才找見的KEIL BUG,我的截圖忘了更改了。2. 選中“Browse infomation”前的復選框,我的截圖忘了選了,要不會找不見函數(shù)或變量的定義的。6.3 選擇頂層的“Listing”頁 ,進入“Listing”設置頁,點擊下面的“Select Folder for Listings”按鈕,選擇目錄“V1” “Project” “LIST”目錄為list文件生成目錄(見圖13)。 圖136.4 這是關鍵的一步,選擇頂層的“C/C+”頁 ,進入“C/C+”設置頁,在“Preprocessor Symbols”的“Define:”文本框中填入“STM32F10X_HD,USE_STDPERIPH_DRIVER”。如果不填編譯會報錯,大家可以試一下,這是因為在固件庫“stm32f10x.h”中有如下的片斷(見圖14),需要根據(jù)你的CPU來去掉相應行的注釋,我選的是STM32系列高容量的CPU,所以需要去掉“stm32f10x.h”中第“0054”行“/*define STM32F10X_HD */”這一行的注釋符,但是不能換一個CPU就改一次注釋吧,老去改文件自己哪天不定就改的迷糊了,幸好編譯器提供了這個功能,只要按本步驟的方法加入“STM32F10X_HD”就可以了,省得自己換了CPU 還得把文件找出來更改。加入“USE_STDPERIPH_DRIVER”是同樣的道理,這個出現(xiàn)在“stm32f10x.h”的第“8280”行(見圖15),但是固件庫中并未定義“USE_STDPERIPH_DRIVER” ,所以也需要用這種辦法靈活的加入,否則編譯時就不會鏈接“stm32f10x_conf.h”,這個文件可是大有用處,打開看看吧,這里就不描述了。 圖 14 圖 156.5 引用固件庫文件所在的目錄也在頂層的“C/C+”頁中進行設置,上面寫的啰里啰唆的,已經(jīng)太多了,所以寫在這里吧。如果現(xiàn)在編譯程序,會報錯的,看看出錯提示,有一些庫文件跑到開發(fā)工具Keil的安裝目錄下鏈接去了,這是因為沒有設置STM32固件庫的目錄,編譯器就默認到“Keil”根目錄下的某某目錄找去了。我們工程用到的STM32 3.4.0固件庫的相關文件在上面第3節(jié)中已經(jīng)直接拷貝到工程里了,這個是因為STM32庫升級到3.4已經(jīng)經(jīng)歷了好多個版本了,而安裝完KEIL 后并不是最新的3.4庫,不能說哪天系統(tǒng)OVER了,裝一次KEIL 就升級一次庫吧,干脆就把庫文件直接放在工程中,即使將工程拷貝到其他機器上也可以編譯,不會因為沒有庫文件而報錯,唉!又啰嗦了這么多。在窗口的“Include Paths”旁邊的文本框后有一個按鈕,點擊調(diào)出“Folder Setup”窗口。這里要添加4個目錄(見圖16),因為這4個目錄里都有“.h ”文件:“ RS422RVMDKV1LibrariesSTM32F10x_StdPeriph_Driverinc” ;“ RS422RVMDKV1LibrariesCMSISCM3CoreSupport ” ;“ RS422RVMDKV1LibrariesCMSISCM3DeviceSupportSTSTM32F10x ” ;“ RS422RVMDKV1USERinc ” ; 圖166.6 其他“C/C+”按圖17設置默認就可以了。 圖177. main.c

溫馨提示

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

評論

0/150

提交評論