




已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
STM32 V3.4固件庫(kù)使用實(shí)例1 概述: 剛?cè)胧諷TM32,查了好多資料也看了好多開發(fā)板的程序和教程,以自己的思路先上一個(gè)工程框架吧,剩下的就是大家想加什么就加什么了,希望對(duì)和我一樣的STM32初學(xué)者有點(diǎn)幫助,如果您是初次使用ARM MDK希望對(duì)你也有幫助,本實(shí)例是一個(gè)“神馬”功能都沒有的RS422模塊。2建立目錄2.1 新建工程目錄:“RS422”,你也可以根據(jù)自己的需要命名此頂層目錄;2.2在目錄“RS422”下新建 “RVMDK”目錄,表示采用ARM MDK開發(fā)環(huán)境;2.3在“RVMDK”目錄下新建目錄“V1”,表示軟件版本V1.0,這個(gè)好處在于下次將整個(gè)目錄復(fù)制一下改為“V2”,軟件版本就是V2.0了。2.4在“V1”目錄下新建 “Libraries”目錄;2.5在“V1” 目錄下新建 “Project” 目錄。2.6在“Project”目錄下新建“OBJ”、“LIST”、“Pro”3個(gè)目錄。2.7在“V1” 目錄下新建“USER”目錄。2.8在“USER”目錄下新建“INC”、“SRC”2個(gè)目錄。這兩個(gè)目錄來(lái)源于第3.1節(jié) 圖1:目 錄 結(jié) 構(gòu) 圖3 拷貝文件 (已經(jīng)寫的很詳細(xì)了,就不上圖了)3.1 將固件庫(kù)目錄“STM32F10X_StdPeriph_lib_V3.4.0”“Libraries”下的所有目錄拷貝到工程目錄“RS422” “RVMDK” “V1” “Libraries”目錄下。3.2將固件庫(kù)目錄 “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 將固件庫(kù)目錄“STM32F10X_StdPeriph_lib_V3.4.0”“Project” “STM32F10x_StdPeriph_Examples” “GPIO” “IOToggle”目錄下的“stm32f10x_conf.h”、“stm32f10x_it.h” 這2個(gè)文件拷貝到工程目錄 “RS422” “RVMDK” “V1” “USER” “INC”目錄下。4 建立工程:(已經(jīng)寫的很詳細(xì)了,就不上圖了)4.1我用的是ARM 的MDK4.14開發(fā)環(huán)境,運(yùn)行“Keil uVision4” ;4.2點(diǎn)擊主菜單欄 “Project”“New uVision Project”,選擇在工程目錄的“V1” “Project” “Pro”目錄下命名新建工程為“RS422_MODULE.uvproj”(當(dāng)然也可以命名為你自己需要的工程名);4.3接下來(lái)出現(xiàn)CPU選擇窗口,選擇CPU為 “STMicroelectronics” “STM32F103ZE” (這個(gè)大家根據(jù)自己的需要選擇),點(diǎn)擊 “OK” 按鈕;4.4接下來(lái)出現(xiàn)“Copy STM32 Startup Code to Project Folder and ADD File to Project ?”提示時(shí)選擇“否”(在后面的步驟中會(huì)根據(jù)CPU選擇啟動(dòng)文件的,這里不用選擇),完成工程建立。 5 工程管理 上一節(jié)新建的工程還是空空的,這一步要將它實(shí)例化。5.1 在“Project”窗口中用鼠標(biāo)左鍵點(diǎn)擊“Target 1”,再點(diǎn)擊右鍵彈出菜單選擇菜單中的 “Manage Components”子菜單(見圖2),出現(xiàn)“Components,Environment and Books”窗口(見圖3)。 圖2 圖35.2 用鼠標(biāo)雙擊“Project Targets”欄中的 “Target 1” 將 “Target 1” 改為 “RS422_MODULE” (見圖4),在中間的 “Groups”欄中添加“USER”、“STM32_LIB”、“MDK_STARTUP”、“CMSIS”4個(gè)條目(見圖5)。圖 4圖55.3 在“USER”條目的“Files”欄中添加目錄“V1” “USER” “SRC”下的“main.c”、“stm3210x_it.c”2個(gè)文件,通過窗口的“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個(gè)文件(見圖7),其中“stm3210x_misc.c”、“stm3210x_rcc.c” 這2個(gè)文件是必須的(我自己的理解)。 因?yàn)槲业某绦蛞玫健癎PIO”和“串口”,所以又添加了“stm3210x_gpio.c”、 “stm3210x_usart.c”這2個(gè)文件,大家在開發(fā)中如果用到STM32 的其他功能,再添加相應(yīng)的接口庫(kù)文件就可以了。 圖75.5 在“MDK_STARTUP”條目的“Files” 欄中添加目錄“V1” “Libraries” “CMSIS” “CM3”“DeviceSupport”“ST”“STM32F10x”“startup”“arm”(我的神?。篠T的目錄夠深的)下的 “startup_stm3210x_hd.s”這個(gè)文件(見圖8),因?yàn)槲疫x用的CPU是“STM32103ZE” 是高容量FLASH的CPU所以選擇這個(gè)文件。 圖85.6 在 “CMSIS” 條目的 “Files” 欄中添加目錄 “V1” “Libraries” “CMSIS” “CM3”“CoreSupport”下的“core_cm3.c”和目錄“V1” “USER” “SRC”下的“system_stm32f10x.c”這2個(gè)文件(見圖9)。 圖95.7 退出“Keil uVision4”開發(fā)環(huán)境,將工程目錄“RS422”去掉文件夾的只讀屬性,并“應(yīng)用到子目錄和所有文件”,這是因?yàn)镾TM32固件庫(kù)下載下來(lái)是只讀的,無(wú)法修改庫(kù)中的文件。去掉只讀屬性后再進(jìn)入“Keil u Vision4”,然后打開工程 “RS422_MODULE.uvproj”。6 工程設(shè)置6.1在“Project”窗口中用鼠標(biāo)左鍵點(diǎn)擊最頂層的“RS422”,再點(diǎn)擊右鍵彈出菜單選擇菜單中的 “Options for Target RS422”子菜單(見圖10),出現(xiàn)“Options for Target RS422”窗口(見圖11),可以按圖11進(jìn)行設(shè)置。 圖 10 圖11IROM1、IRAM1根據(jù)芯片不同而不同,一般KEIL會(huì)自動(dòng)根據(jù)芯片填好的6.2 選擇頂層的“Output ”,進(jìn)入“Output”設(shè)置頁(yè),點(diǎn)擊下面的“Select Folder for Objects”按鈕,選擇目錄“V1” “Project” “OBJ”為目標(biāo)文件目錄,選中“Create HEX File” (見圖12)。見下面的重點(diǎn)1件生成目錄(見圖13),所有的目標(biāo)文件和燒寫到芯片中的文件都在這里。選擇“Create HEX File”前面的方框,用來(lái)生成目標(biāo)文件。這個(gè)見重點(diǎn)2 圖 12以下兩點(diǎn)很重要: 1. 將上圖”Name of Executable”后的文本框中的”RS422_MODULE” 更改為”RS422”,否則用JLINK或ULINK仿真時(shí)會(huì)報(bào)錯(cuò),這是經(jīng)過1個(gè)上午的奮斗才找見的KEIL BUG,我的截圖忘了更改了。2. 選中“Browse infomation”前的復(fù)選框,我的截圖忘了選了,要不會(huì)找不見函數(shù)或變量的定義的。6.3 選擇頂層的“Listing”頁(yè) ,進(jìn)入“Listing”設(shè)置頁(yè),點(diǎn)擊下面的“Select Folder for Listings”按鈕,選擇目錄“V1” “Project” “LIST”目錄為list文件生成目錄(見圖13)。 圖136.4 這是關(guān)鍵的一步,選擇頂層的“C/C+”頁(yè) ,進(jìn)入“C/C+”設(shè)置頁(yè),在“Preprocessor Symbols”的“Define:”文本框中填入“STM32F10X_HD,USE_STDPERIPH_DRIVER”。如果不填編譯會(huì)報(bào)錯(cuò),大家可以試一下,這是因?yàn)樵诠碳?kù)“stm32f10x.h”中有如下的片斷(見圖14),需要根據(jù)你的CPU來(lái)去掉相應(yīng)行的注釋,我選的是STM32系列高容量的CPU,所以需要去掉“stm32f10x.h”中第“0054”行“/*define STM32F10X_HD */”這一行的注釋符,但是不能換一個(gè)CPU就改一次注釋吧,老去改文件自己哪天不定就改的迷糊了,幸好編譯器提供了這個(gè)功能,只要按本步驟的方法加入“STM32F10X_HD”就可以了,省得自己換了CPU 還得把文件找出來(lái)更改。加入“USE_STDPERIPH_DRIVER”是同樣的道理,這個(gè)出現(xiàn)在“stm32f10x.h”的第“8280”行(見圖15),但是固件庫(kù)中并未定義“USE_STDPERIPH_DRIVER” ,所以也需要用這種辦法靈活的加入,否則編譯時(shí)就不會(huì)鏈接“stm32f10x_conf.h”,這個(gè)文件可是大有用處,打開看看吧,這里就不描述了。 圖 14 圖 156.5 引用固件庫(kù)文件所在的目錄也在頂層的“C/C+”頁(yè)中進(jìn)行設(shè)置,上面寫的啰里啰唆的,已經(jīng)太多了,所以寫在這里吧。如果現(xiàn)在編譯程序,會(huì)報(bào)錯(cuò)的,看看出錯(cuò)提示,有一些庫(kù)文件跑到開發(fā)工具Keil的安裝目錄下鏈接去了,這是因?yàn)闆]有設(shè)置STM32固件庫(kù)的目錄,編譯器就默認(rèn)到“Keil”根目錄下的某某目錄找去了。我們工程用到的STM32 3.4.0固件庫(kù)的相關(guān)文件在上面第3節(jié)中已經(jīng)直接拷貝到工程里了,這個(gè)是因?yàn)镾TM32庫(kù)升級(jí)到3.4已經(jīng)經(jīng)歷了好多個(gè)版本了,而安裝完KEIL 后并不是最新的3.4庫(kù),不能說哪天系統(tǒng)OVER了,裝一次KEIL 就升級(jí)一次庫(kù)吧,干脆就把庫(kù)文件直接放在工程中,即使將工程拷貝到其他機(jī)器上也可以編譯,不會(huì)因?yàn)闆]有庫(kù)文件而報(bào)錯(cuò),唉!又啰嗦了這么多。在窗口的“Include Paths”旁邊的文本框后有一個(gè)按鈕,點(diǎn)擊調(diào)出“Folder Setup”窗口。這里要添加4個(gè)目錄(見圖16),因?yàn)檫@4個(gè)目錄里都有“.h ”文件:“ RS422RVMDKV1LibrariesSTM32F10x_StdPeriph_Driverinc” ;“ RS422RVMDKV1LibrariesCMSISCM3CoreSupport ” ;“ RS422RVMDKV1LibrariesCMSISCM3DeviceSupportSTSTM32F10x ” ;“ RS422RVMDKV1USERinc ” ; 圖166.6 其他“C/C+”按圖17設(shè)置默認(rèn)就可以了。 圖177. main.c
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 全國(guó)機(jī)械工程控制基礎(chǔ)2025年10月高等教育自學(xué)考試試題與答案
- 動(dòng)漫少兒美術(shù)課件
- 山東省棗莊市2026屆高三下學(xué)期3月質(zhì)量調(diào)研測(cè)試語(yǔ)文試題答案1
- 生鮮面條培訓(xùn)課件內(nèi)容
- 2024年深圳市龍崗區(qū)第四人民醫(yī)院招聘筆試真題
- 浙江師范大學(xué)行知學(xué)院?jiǎn)握小堵殬I(yè)適應(yīng)性測(cè)試》模擬試題帶答案詳解(模擬題)
- ES體系培訓(xùn)材料
- 大數(shù)據(jù)與審計(jì)專業(yè)教學(xué)標(biāo)準(zhǔn)(高等職業(yè)教育專科)2025修訂
- 中學(xué)體育與健康標(biāo)準(zhǔn)實(shí)施現(xiàn)狀分析
- ICU呼吸機(jī)相關(guān)性肺炎防治與管理
- 鄰里糾紛及其合法合理處理課件
- 河南省鄭州市第八中學(xué)2025年七下英語(yǔ)期末經(jīng)典試題含答案
- 中醫(yī)八段錦課件
- 口腔科清洗間管理制度
- 拌合站會(huì)議管理制度
- 2025年八年級(jí)學(xué)業(yè)水平考試生物試卷 (附答案)
- 2025防洪防汛專項(xiàng)培訓(xùn)
- 執(zhí)業(yè)醫(yī)師考試重要法律法規(guī)試題及答案
- 統(tǒng)編版2024-2025第二學(xué)期小學(xué)六年級(jí)期末語(yǔ)文測(cè)試卷(有答案)
- 中華人民共和國(guó)民營(yíng)經(jīng)濟(jì)促進(jìn)法
- 煙花爆竹經(jīng)營(yíng)安全培訓(xùn)
評(píng)論
0/150
提交評(píng)論