版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、Good is good, but better carries it.精益求精,善益求善。STM32筆記-Erasedv.抹去(erase的過去分詞);消除Programmedadj.程序化的,程控的Verifiedadj.已查清的,已證實的,已驗證的stm32f10 x.h類似于51單片機中的頭文件reg51.h一樣,定義了如P0、P1等特殊寄存器的名稱與實際物理地址相對應(yīng)stm32f10 x_conf.h是用戶需要配置的頭文件,當(dāng)我們需要用到某部分外設(shè)驅(qū)動時,我們只需要將該部分外設(shè)的頭文件包含進來即可。configuredadj.配置;配置的故,添加外設(shè)驅(qū)動文件stm32f10 x_xx
2、x.c的時候,可以把全部驅(qū)動文件全部添加進來,然后通過stm32f10 x_conf.h文件選擇性的添加;也即,只有在stm32f10 x_conf.h文件中配置的文件才會被編譯。Stm32f10 x_it.c和Stm32f10 x_it.h這兩個文件里面是中斷函數(shù),里面內(nèi)容為空,并沒有寫任何中斷服務(wù)程序,需用戶添加;itinterruptvi.打斷;打擾Core_cm3.c和Core_cm3.h是位于Libraries/CMSIS/CM3文件夾下的Coresupport的文件,它們是CMSIS標(biāo)準(zhǔn)的核內(nèi)設(shè)備函數(shù)層的M3核通用的源文件和頭文件,其作用是為那些采用Cortex-M3核設(shè)計SOC的
3、芯片的外設(shè)提供一個進入M3內(nèi)核的接口,這兩個文件在其他公司的M3系列芯片也是相同的。什么是JTAG接口JTAG(JointTestActionGroup聯(lián)合測試行動小組)是一種國際標(biāo)準(zhǔn)測試協(xié)議,主要用于芯片內(nèi)部測試及對系統(tǒng)進行仿真、調(diào)試。JTAG技術(shù)是一種嵌入式調(diào)試技術(shù),它在芯片內(nèi)部封裝了專門的測試電路TAP(TestAccessPort測試訪問口),通過專用的JTAG測試工具對內(nèi)部節(jié)點進行測試。TAP控制器的狀態(tài)機通過TCK和TMS進行狀態(tài)的改變,實現(xiàn)數(shù)據(jù)和指令的輸入。目前大多數(shù)比較復(fù)雜的器件都支持JTAG協(xié)議,如ARM、DSP、FPGA器件等。標(biāo)準(zhǔn)的JTAG接口是4線:TMS、TCK、TD
4、I、TDO,分別為測試模式選擇、測試時鐘、測試數(shù)據(jù)輸入和測試數(shù)據(jù)輸出。(Testmodeselecet、testclock、testdatainput、testdataoutput)JTAG測試允許多個器件通過JTAG接口串聯(lián)在一起,形成一個JTAG鏈,能實現(xiàn)對各個器件分別測試。JTAG接口還常用于實現(xiàn)ISP(In-SystemProgrammable在系統(tǒng)編程)功能,如對FLASH器件進行編程等。通過JTAG接口,可對芯片內(nèi)部的所有部件進行訪問,因而是開發(fā)調(diào)試嵌入式系統(tǒng)的一種簡潔高效的手段。目前JTAG接口的連接有兩種標(biāo)準(zhǔn),即14針接口和20針接口,其定義分別如下所示。STM32總線AHBA
5、dvancedHightSpeedBuses先進高速總線數(shù)據(jù)總線D-bus、系統(tǒng)總線、STM32內(nèi)部的SRAM和DMA單元都掛載在AHB上;AHB總線的工作頻率與Cortex-M3內(nèi)核一致,但AHB總線上掛著許多獨立的分頻器,可以輸出較低的時鐘頻率而達到較低功耗APBAdvancedPeripheralBuses先進外部設(shè)備總線每一條APB又都與AHB總線矩陣相連APB1總線只能以最大36MHz頻率運行,而APB2總線可以最大72MHz頻率運行DMA(DirectMemoryAccess)控制器是一種在系統(tǒng)內(nèi)部轉(zhuǎn)移數(shù)據(jù)的獨特外設(shè)??梢詫⑵湟暈橐环N能夠通過一組專用總線,將內(nèi)部和外部存儲器與每個具
6、有DMA能力的外設(shè)連接起來的控制器。它之所以屬于外設(shè),是因為它是在處理器的編程控制下來執(zhí)行傳輸?shù)摹V档米⒁獾氖?,通常只有?shù)據(jù)流量較大(kBps或者更高)的外設(shè)才需要支持DMA能力,這些應(yīng)用方面典型的例子包括視頻、音頻和網(wǎng)絡(luò)接口。小結(jié):在stm32f10 x_gpio.h中,只有GPIO_InitTypeDef一個數(shù)據(jù)結(jié)構(gòu),在stm32f10 x_uart.h中有兩個數(shù)據(jù)結(jié)構(gòu)USART_ClockInitTypeDef和USART_InitTypeDef.相信在其他的stm32f10 x_xxx.h中也是如此,即有針對性的數(shù)據(jù)結(jié)構(gòu),不會好多而混亂。也就是說,在不同外設(shè)的頭文件里,都有幾個針對該外
7、設(shè)的數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu),也就是該外設(shè)驅(qū)動函數(shù)的操作對象(作為一個輸入?yún)?shù))。我們要做的就是:定義數(shù)據(jù)結(jié)構(gòu),對數(shù)據(jù)結(jié)構(gòu)成員賦值,調(diào)用驅(qū)動函數(shù),當(dāng)然,如果可能有多重配置等,可以定義多個數(shù)據(jù)結(jié)構(gòu)。庫函數(shù)編程:其實很簡單:在stm32f10 x/h中都會有定義一個與外設(shè)有關(guān)的控制/狀態(tài)寄存器數(shù)據(jù)結(jié)構(gòu)(typedefinestruct)。在stm32f10 x_xxx.h相應(yīng)外設(shè)驅(qū)動頭文件中,都會有幾個已賦值的描述外設(shè)狀態(tài)的枚舉結(jié)構(gòu)(typedefineenum)和對外設(shè)狀態(tài)設(shè)置的數(shù)據(jù)結(jié)構(gòu)(typedefine).。在stm32f10 x_xxx.c中的驅(qū)動函數(shù),主要是對已配置好的控制/狀態(tài)寄存器等
8、進行操作,只管調(diào)用就行了。小結(jié):定義一個外設(shè)狀態(tài)設(shè)置的數(shù)據(jù)結(jié)構(gòu)(typedefine),利用枚舉成員(typedefineenum)對該數(shù)據(jù)結(jié)構(gòu)賦值,再調(diào)用驅(qū)動函數(shù),數(shù)據(jù)結(jié)構(gòu)為輸入?yún)?shù),把參數(shù)賦給驅(qū)動函數(shù)內(nèi)部的寄存器數(shù)據(jù)結(jié)構(gòu),從而控制外設(shè)。數(shù)據(jù)結(jié)構(gòu)XXX_IintTypeDef也即XXXInitstructuredefinitionUSART_ClockInitTypeDef在stm32f10 x_usart.h頭文件中定義USART_InitTypeDefUSART_TypeDef包含在stm32f10 x.h內(nèi),定義USART外設(shè)的寄存器結(jié)構(gòu)在stm32f10 x_XXX.h頭文件中定義的
9、數(shù)據(jù)結(jié)構(gòu):XXX_ClockInitTypeDef外設(shè)時鐘初始化XXX_InitTypeDef外設(shè)初始化XXX_TypeDef包含在stm32f10 x.h內(nèi),定義XXX外設(shè)的寄存器結(jié)構(gòu)例如:GPIO_TypeDef也即GPIO_TypeDefStructReferencetypedefstruct_IOuint32_tCRL;_IOuint32_tCRH;_IOuint32_tIDR;_IOuint32_tODR;_IOuint32_tBSRR;_IOuint32_tBRR;_IOuint32_tLCKR;GPIO_TypeDef;包含在stm32f10 x.h內(nèi)的XXX_TypeDef數(shù)據(jù)
10、結(jié)構(gòu)體,定義了XXX外設(shè)的寄存器結(jié)構(gòu),利用了結(jié)構(gòu)體內(nèi)成員在內(nèi)存中的連續(xù)性,而外設(shè)的控制寄存器也是連續(xù)分布的。而對應(yīng)stm32f10 x_xxx.c內(nèi)的驅(qū)動函數(shù),大都是操作外設(shè)寄存器的,所以XXX_TypeDef都是輸入?yún)?shù),其實驅(qū)動函數(shù)本來就是基于寄存器的操作,而XXX_TypeDef是寄存器的集合體。而包含在stm32f10 x_XXX.h內(nèi)的數(shù)據(jù)結(jié)構(gòu)體,定義了“可選擇的枚舉類型”的數(shù)據(jù),即把外設(shè)配置成什么工作方式。其內(nèi)的結(jié)構(gòu)成員是枚舉類型或宏定義,也即取值范圍固定,用具有特定含義的名字代替數(shù)據(jù):typedefstructuint16_tGPIO_Pin;GPIOSpeed_TypeDefG
11、PIO_Speed;GPIOMode_TypeDefGPIO_Mode;GPIO_InitTypeDef;voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct)GPIO_TypeDef*GPIOx定義GPIOx參數(shù)為GPIO_TypeDef類型的指針;GPIO_InitTypeDef*GPIO_InitStruct定義GPIO_InitStruct參數(shù)為GPIO_InitTypeDef類型的指針一、宏定義-庫函數(shù)版/帶參宏,可以像內(nèi)聯(lián)函數(shù)一樣使用#defineLED1(a)if(a)GPIO_SetBits(GPIOA,GPIO_Pin_2);elseGPIO_ResetBits(GPIOA,GPIO_Pin_2)二、直接操作寄存器GPIOB-ODR=0XFFFE;/低電平,GPIOB0(LED0)燈亮Delay(0 x0FFFFF);GPIOB-ODR=0XFFFF;/高電平,GPIOB0(LED0)燈滅三、宏定義-寄存器版/*直接操作寄存器的方法控制IOBSR輸出寄存器*/#definedigitalHi(p,i)p-BSRR=i;/設(shè)置為高電平#definedigitalLo(p,i)p-BRR=i;/輸出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北省武漢市2024年中考一模數(shù)學(xué)試題含答案
- 遼寧大學(xué)《公共政策理論與應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 黃河交通學(xué)院《藝術(shù)實踐(2)》2023-2024學(xué)年第一學(xué)期期末試卷
- 江蘇海事職業(yè)技術(shù)學(xué)院《建筑工程進度控制》2023-2024學(xué)年第一學(xué)期期末試卷
- 【物理】第七章 力 章末練習(xí) 2024-2025學(xué)年八年級下冊人教版物理
- 黑龍江財經(jīng)學(xué)院《醫(yī)藥學(xué)術(shù)推廣綜合實訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶三峽職業(yè)學(xué)院《大數(shù)據(jù)與數(shù)據(jù)分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶城市管理職業(yè)學(xué)院《消防工程綜合》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江育英職業(yè)技術(shù)學(xué)院《裝飾工程制圖及AutoCAD應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 體現(xiàn)漢字文化的有趣漢字故事
- 建筑工地節(jié)前停工安全檢查表
- 三年級下冊小猿口算題1000道
- QUALITY MANUAL質(zhì)量手冊(英文版)
- 決策的藝術(shù)課件
- 國際經(jīng)濟學(xué)國際貿(mào)易的標(biāo)準(zhǔn)理論
- 8D報告培訓(xùn)教材(PPT 47頁)
- -居民死亡醫(yī)學(xué)證明(推斷)書
- 糖尿病酮癥酸中毒病例討論-文檔資料
- 液相色譜質(zhì)譜質(zhì)譜儀LCMSMSSYSTEM
- 民辦非企業(yè)單位章程核準(zhǔn)表-空白表格
- 派克與永華互換表
評論
0/150
提交評論