第5章 STM32系列微控制器開發(fā)基礎(chǔ)_第1頁
第5章 STM32系列微控制器開發(fā)基礎(chǔ)_第2頁
第5章 STM32系列微控制器開發(fā)基礎(chǔ)_第3頁
第5章 STM32系列微控制器開發(fā)基礎(chǔ)_第4頁
第5章 STM32系列微控制器開發(fā)基礎(chǔ)_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第第5 5章章 STM32STM32系列微控制器開發(fā)基礎(chǔ)系列微控制器開發(fā)基礎(chǔ)教師:姓名嵌入式系統(tǒng)原理與接口技術(shù)5.1 STM325.1 STM32系列微控制器概述系列微控制器概述n STM32系列微控制器概述系列微控制器概述lSTM32系列微控制器使用來自于ARM公司具有突破性的Cortex-M3內(nèi)核,該內(nèi)核是專門設(shè)計(jì)于滿足集高性能、低功耗、實(shí)時(shí)應(yīng)用、高性價(jià)比于一體的嵌入式領(lǐng)域的要求。lSTM32系列給MCU用戶帶來了前所未有的自由空間,提供了全新的32位產(chǎn)品選項(xiàng),結(jié)合了高性能、實(shí)時(shí)、低功耗、低電壓等特性,同時(shí)保持了高集成度和易于開發(fā)的優(yōu)勢。嵌入式系統(tǒng)原理與接口技術(shù)25.1 STM325.1

2、STM32系列微控制器概述系列微控制器概述n STM32系列微控制器的優(yōu)勢系列微控制器的優(yōu)勢l由于STM32系列微控制器的定位是針對傳統(tǒng)的嵌入式入門市場,因此相對于傳統(tǒng)的8051、AVR等單片機(jī),其巨大的優(yōu)勢顯露無遺。主要體現(xiàn)在以下幾個(gè)方面: 1.25 DMIPS/MHz和0.19 mW/MHz;支持Thumb-2指令集;單周期乘法指令和硬件除法指令;內(nèi)置了快速的中斷控制器,提供了優(yōu)越的實(shí)時(shí)特性,中斷間的延遲時(shí)間降到只需6個(gè)CPU周期,從低功耗模式喚醒的時(shí)間也只需6個(gè)CPU周期;與ARM7 TDMI相比運(yùn)行速度最多可快35%且代碼最多可節(jié)省45%;提供更為豐富的外設(shè)和網(wǎng)絡(luò)接口,使用更為靈活方便

3、。嵌入式系統(tǒng)原理與接口技術(shù)35.1 STM325.1 STM32系列微控制器概述系列微控制器概述n STM32系列微控制器的應(yīng)用系列微控制器的應(yīng)用lSTM32系列微控制器主要應(yīng)用在以下場合: 工業(yè)領(lǐng)域:可編程邏輯控制器(PLC)、變頻器、打印機(jī)、掃描儀和工控網(wǎng)絡(luò)。 建筑和安防領(lǐng)域:警報(bào)系統(tǒng)、可視電話和HVAC。 低功耗領(lǐng)域:血糖測量儀、電表和電池供電應(yīng)用。 家電領(lǐng)域:電機(jī)控制和應(yīng)用控制。 消費(fèi)類產(chǎn)品領(lǐng)域:PC外設(shè)、游戲機(jī)、數(shù)碼相機(jī)和GPS平臺(tái)。嵌入式系統(tǒng)原理與接口技術(shù)45.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 主要特點(diǎn)主要特點(diǎn)lSTM32F103xx系列微

4、控制器基于高性能32位RISC的ARM Cortex-M3核,工作頻率為72MHz。片上集成了高速存儲(chǔ)器和通過APB總線連接的豐富和增強(qiáng)的外設(shè)和I/O。所有的設(shè)備都提供標(biāo)準(zhǔn)的通信接口(最多可達(dá)兩個(gè)I2C接口,三個(gè)SPI接口和五個(gè)USART接口) 。片上還帶有兩個(gè)12位的ADC、一個(gè)12位的雙通道DAC、11個(gè)16位計(jì)時(shí)器。根據(jù)應(yīng)用范圍的不同,STM32F103xx系列具有眾多的配置型號,非常適合不同應(yīng)用中的選型。嵌入式系統(tǒng)原理與接口技術(shù)55.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 總體結(jié)構(gòu)總體結(jié)構(gòu)lSTM32F103xx的主系統(tǒng)由以下部分構(gòu)成: 四個(gè)驅(qū)動(dòng)單元

5、:Cortex-M3內(nèi)核DCode總線(D-bus),和系統(tǒng)總線(S-bus);通用DMA1和通用DMA2。 四個(gè)被動(dòng)單元:內(nèi)部SRAM;內(nèi)部閃存存儲(chǔ)器;FSMC;AHB到APB的橋(AHB2APBx),它連接所有的APB設(shè)備。嵌入式系統(tǒng)原理與接口技術(shù)65.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)嵌入式系統(tǒng)原理與接口技術(shù)75.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 各單元功能各單元功能嵌入式系統(tǒng)原理與接口技術(shù)8單元單元/部件部件功能描述功能描述ICode總線總線將Cortex-M3內(nèi)核的指令總線與閃存指令接

6、口相連接。指令預(yù)取在此總線上完成。DCode總線總線將Cortex-M3內(nèi)核的DCode總線與閃存存儲(chǔ)器的數(shù)據(jù)接口相連接(常量加載和調(diào)試訪問)。系統(tǒng)總線系統(tǒng)總線連接Cortex-M3內(nèi)核的系統(tǒng)總線(外設(shè)總線)到總線矩陣,總線矩陣協(xié)調(diào)著內(nèi)核和DMA間的訪問。DMA總線總線將DMA的AHB主控接口與總線矩陣相聯(lián),總線矩陣協(xié)調(diào)著CPU的DCode和DMA到 SRAM、閃存和外設(shè)的訪問??偩€矩陣總線矩陣協(xié)調(diào)內(nèi)核系統(tǒng)總線和DMA主控總線之間的訪問仲裁,仲裁利用輪換算法。AHB外設(shè)通過總線矩陣與系統(tǒng)總線相連,允許DMA訪問。AHB/APB橋橋(APB)兩個(gè)AHB/APB橋在AHB和2個(gè)APB總線間提供同步

7、連接。APB1操作速度限于36MHz,APB2操作于全速(最高72MHz)。5.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 功能概述功能概述l集成嵌入式Flash和SRAM存儲(chǔ)器的ARM Cortex-M3內(nèi)核 ARM Cortex-M3處理器是用于嵌入式系統(tǒng)的最新一代ARM處理器。用于提供一個(gè)滿足MCU實(shí)現(xiàn)需要的低開銷平臺(tái),具有更少的引腳數(shù)和更低的功耗,并且提供了更好的計(jì)算表現(xiàn)和更快的中斷系統(tǒng)應(yīng)答。l嵌入式Flash存儲(chǔ)器和RAM存儲(chǔ)器 內(nèi)置了多達(dá)512K的嵌入式Flash,可用于存儲(chǔ)程序和數(shù)據(jù)。多達(dá)64K的嵌入式SRAM可以以CPU時(shí)鐘速度進(jìn)行讀寫(不帶等待

8、狀態(tài))。嵌入式系統(tǒng)原理與接口技術(shù)95.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 功能概述功能概述l可變靜態(tài)存儲(chǔ)控制器(FSMC) FSMC嵌入在STM32F103xC,STM32F103xD和STM32F103xE中,帶有四個(gè)片選,支持下面四種模式:Flash,RAM,PSRAM,NOR和NAND。l嵌套矢量中斷控制器(NVIC) STM32F103xx系列微控制器嵌入了一個(gè)嵌套矢量中斷控制器,可以處理43個(gè)可屏蔽中斷通道(不包括Cortex-M3的16根中斷線),提供16個(gè)中斷優(yōu)先級。嵌入式系統(tǒng)原理與接口技術(shù)105.2 STM32F1035.2 STM32F

9、103系列微控制器系列微控制器n 功能概述功能概述l外部中斷/事件控制器(EXTI) 外部中斷/事件控制器由用于19條產(chǎn)生中斷/事件請求的邊沿探測器線組成。每條線可以被單獨(dú)配置用于選擇觸發(fā)事件(上升沿,下降沿或者兩者都可以),也可以被單獨(dú)屏蔽。l時(shí)鐘和啟動(dòng) 在啟動(dòng)的時(shí)候還是要進(jìn)行系統(tǒng)時(shí)鐘選擇,但復(fù)位的時(shí)候內(nèi)部8MHz的晶振被選作CPU時(shí)鐘。可以選擇一個(gè)外部的4-16MHz的時(shí)鐘,并且會(huì)被監(jiān)視判定是否成功。嵌入式系統(tǒng)原理與接口技術(shù)115.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 功能概述功能概述lBoot模式 在啟動(dòng)的時(shí)候,boot引腳被用來在三種boot選項(xiàng)中

10、的選擇一種:從用戶Flash導(dǎo)入;從系統(tǒng)存儲(chǔ)器導(dǎo)入;從SRAM導(dǎo)入。boot導(dǎo)入程序位于系統(tǒng)存儲(chǔ)器,用于通過USART1重新對Flash存儲(chǔ)器進(jìn)行編程。l電源供電方案 VDD,電壓范圍為2.0到3.6V,用于I/O和內(nèi)部調(diào)壓器。 VSSA,VDDA,電壓范圍為2.0到3.6V,用于ADC、復(fù)位模塊、RC和PLL。 VBAT,電壓范圍為1.8到3.6V嵌入式系統(tǒng)原理與接口技術(shù)125.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 功能概述功能概述l電源管理 設(shè)備有一個(gè)完整的上電復(fù)位(POR)和掉電復(fù)位(PDR)電路。這條電路一直有效,用于確保從2V啟動(dòng)或者掉到2V的時(shí)

11、候進(jìn)行一些必要的操作。當(dāng)VDD低于一個(gè)特定下限VPOR/PDR的時(shí)候,不需要外部復(fù)位電路,設(shè)備也可以保持在復(fù)位模式。l電源供電方案 調(diào)壓器有三種運(yùn)行模式:主(MR),用在傳統(tǒng)意義上的調(diào)節(jié)模式(運(yùn)行模式);低功耗(LPR),用在停止模式;掉電,用在待機(jī)模式:調(diào)壓器輸出為高阻,核心電路掉電,包括零消耗。嵌入式系統(tǒng)原理與接口技術(shù)135.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 功能概述功能概述l低功耗模式,包含三種低功耗模式: 休眠模式。在休眠模式中,只有CPU停止工作,所有的外設(shè)繼續(xù)運(yùn)行,在中斷/事件發(fā)生時(shí)喚醒CPU。 停止模式。停止模式允許以最小的功耗來保持SR

12、AM和寄存器的內(nèi)容。設(shè)備可以通過外部中斷線從停止模式喚醒。外部中斷源可以使16個(gè)外部中斷線之一、PVD輸出或者TRC警告。 待機(jī)模式。待機(jī)模式追求最少的功耗。內(nèi)部調(diào)壓器被關(guān)閉,這樣1.8V區(qū)域被斷電。PLL、HSI和HSE RC振蕩器也被關(guān)閉。嵌入式系統(tǒng)原理與接口技術(shù)145.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外設(shè)概述片上外設(shè)概述lDMA 12通道的通用DMA可用于存儲(chǔ)器到存儲(chǔ)器、外設(shè)到存儲(chǔ)器和存儲(chǔ)器到外設(shè)的傳輸。DMA控制器支持循環(huán)緩沖器管理,從而避免了在到達(dá)緩沖區(qū)末端時(shí)產(chǎn)生中斷。lRTC(實(shí)時(shí)時(shí)鐘)和備份寄存器 RTC和備份寄存器通過一個(gè)開關(guān)來控

13、制供電,當(dāng)VDD有效的時(shí)候通過VDD供電,否則通過VBAT供電。備份寄存器(10個(gè)16位寄存器)可以用來在VDD無效的保存數(shù)據(jù)。嵌入式系統(tǒng)原理與接口技術(shù)155.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外設(shè)概述片上外設(shè)概述l獨(dú)立看門狗 獨(dú)立看門狗基于12位的倒計(jì)數(shù)器和8位的預(yù)比較器。由一個(gè)獨(dú)立的40kHz的內(nèi)部RC提供時(shí)鐘。由于和主時(shí)鐘獨(dú)立工作,所以它可以工作在停止和待機(jī)模式??梢杂米髟谙到y(tǒng)出問題時(shí)來復(fù)位設(shè)備,也可以作為一個(gè)空轉(zhuǎn)的定時(shí)器來用于應(yīng)用程序的定時(shí)器管理。l窗口看門狗 窗口看門狗基于一個(gè)在空轉(zhuǎn)時(shí)可設(shè)置的7位倒計(jì)數(shù)器??梢杂米髟谙到y(tǒng)出問題的時(shí)候來復(fù)位

14、設(shè)備。由主時(shí)鐘提供時(shí)鐘源。能夠?qū)崿F(xiàn)提早警告中斷并且計(jì)數(shù)器在調(diào)試模式的時(shí)候可以凍結(jié)。嵌入式系統(tǒng)原理與接口技術(shù)165.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外設(shè)概述片上外設(shè)概述lSysTick定時(shí)器 該定時(shí)器是OS專用,但也可以用作標(biāo)準(zhǔn)的倒計(jì)數(shù)器。它的特征是:一個(gè)24位的倒計(jì)數(shù)器;自動(dòng)重載能力;當(dāng)計(jì)數(shù)器為0時(shí)產(chǎn)生的系統(tǒng)中斷是可屏蔽的;可編程的時(shí)鐘源。l通用定時(shí)器(TIMx) STM32F103xx設(shè)備最多自帶4個(gè)同步標(biāo)準(zhǔn)定時(shí)器。這些定時(shí)器基于一個(gè)16位自動(dòng)重載順序/倒序計(jì)數(shù)器和一個(gè)16位的預(yù)比較器。每個(gè)定時(shí)器特有分別用于輸入捕獲、輸出比較、PWM或者單脈沖

15、模式輸出的4個(gè)獨(dú)立通道。嵌入式系統(tǒng)原理與接口技術(shù)175.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外設(shè)概述片上外設(shè)概述l基本定時(shí)器TIM6和TIM7 這些定時(shí)器用于產(chǎn)生DAC觸發(fā),也可以用作通用的16位定時(shí)器。l高級控制定時(shí)器(TIM1和TIM8) 高級控制定時(shí)器(TIM1)可以被看作是一個(gè)在6通道上復(fù)用的三相PWM,也可以被看作是通用定時(shí)器,4個(gè)獨(dú)立的通道可以用作:輸入捕獲;輸出捕獲;PWM產(chǎn)生;單脈沖模式輸出;可設(shè)置空轉(zhuǎn)時(shí)間的PWM輸出。TIM1和具有相同結(jié)構(gòu)的TIMx有相同的特性,所以TIM1通過同步連接特性或者事件鏈,可以和TIMx一起工作。嵌入式

16、系統(tǒng)原理與接口技術(shù)185.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外設(shè)概述片上外設(shè)概述lI2C總線 最多可有兩個(gè)工作在多主機(jī)模式和從模式下的I2C總線接口,支持標(biāo)準(zhǔn)和快速模式。都支持雙從機(jī)尋址(只能是7位)和7/10位主機(jī)模式下尋址。內(nèi)置硬件CRC產(chǎn)生和驗(yàn)證模塊。都支持DMA,支持SMBus2.0/PM Bus。l通用同步/異步收發(fā)器(USART) USART接口最多可以2.25Mbit/s的速度通信。對CTS和RTS信號使用硬件管理,支持IrDA SIR ENDEC,兼容ISO7816并且具有LIN主/從性能。USART接口支持DMA。嵌入式系統(tǒng)原理與

17、接口技術(shù)195.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外設(shè)概述片上外設(shè)概述l串行外設(shè)接口(SPI) 設(shè)備最多可有2個(gè)SPI接口,最多可以18Mbit/s的速度在全雙工和單工的主機(jī)和從機(jī)模式下通信。3位預(yù)比較器提供了8種主機(jī)模式頻率,楨長可以配置為8位或者16位。硬件CRC產(chǎn)生/驗(yàn)證模塊支持基本的SD Card/MMC模式。SPI接口都支持DMA。lI2S STM32F103xC、STM32F103xD和STM32F103xE有兩個(gè)和SPI2、SPI3復(fù)用的I2S接口,可用于主模式或者從模式??梢耘渲贸?6位或者32位精度的輸入或者輸出。音頻采樣頻率可以

18、在8KHz到48KHz。嵌入式系統(tǒng)原理與接口技術(shù)205.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外設(shè)概述片上外設(shè)概述lSDIO STM32F103xC、STM32F103xD和STM32F103xE有一個(gè)SD/SDIO/MMC主機(jī)接口,支持MMC 4.2。有三種數(shù)據(jù)總線模式:1位(默認(rèn)),4位和8位。在8位模式下最高可達(dá)48MHz。此外還兼容SD 2.0。1位和4位總線模式下支持SDIO 2.0。l控制器局域網(wǎng)(CAN) CAN兼容2.0A和2.0B標(biāo)準(zhǔn),比特率高達(dá)1Mbit/s??梢园l(fā)送和接收11位標(biāo)示符的標(biāo)準(zhǔn)楨,也可以發(fā)送和接收29位標(biāo)示符的擴(kuò)展楨。

19、有三個(gè)發(fā)送郵箱,兩個(gè)3階接收FIFO隊(duì)列和14個(gè)可升級過濾器陣列。嵌入式系統(tǒng)原理與接口技術(shù)215.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外設(shè)概述片上外設(shè)概述l通用串行總線(USB) STM32F103xx嵌入了一個(gè)支持USB全速12Mbit/s的USB外設(shè)。USB接口實(shí)現(xiàn)了全速(12Mbit/s)功能接口??赏ㄟ^軟件配置端點(diǎn),也可以通過軟件控制掛起/恢復(fù)。時(shí)鐘來自內(nèi)部PLL產(chǎn)生的48MHz專用時(shí)鐘源。lGPIO(通用輸入/輸出) 每一個(gè)GPIO引腳都可以由軟件配置出輸出,輸入或者外設(shè)備用功能。大部分的GPIO引腳和數(shù)字或者模擬備用功能共享。所有的GPI

20、O都支持高電流。嵌入式系統(tǒng)原理與接口技術(shù)225.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外設(shè)概述片上外設(shè)概述lADC(模數(shù)轉(zhuǎn)換器) STM32F103xx設(shè)備自帶兩個(gè)12位的模數(shù)轉(zhuǎn)換器。每個(gè)ADC有多達(dá)16個(gè)外部通道,能夠以單次或掃描模式進(jìn)行轉(zhuǎn)換。在掃描模式下,自動(dòng)轉(zhuǎn)換在一組選定的模擬輸入上進(jìn)行。lDAC(數(shù)模轉(zhuǎn)換器) DAC帶有兩個(gè)可緩沖通道,可以將兩路數(shù)字信號轉(zhuǎn)化為兩路模擬信號輸出。DAC通道通過定時(shí)器更新輸出來觸發(fā),DAC每個(gè)通道可以連接到不同的DMA通道。每個(gè)通道可以獨(dú)立被DMA控制器處理。嵌入式系統(tǒng)原理與接口技術(shù)235.2 STM32F1035

21、.2 STM32F103系列微控制器系列微控制器n 片上外設(shè)概述片上外設(shè)概述l溫度傳感器 溫度傳感器用于根據(jù)溫度的變化來產(chǎn)生一個(gè)線性的電壓。轉(zhuǎn)換的范圍在2V到3.6V。溫度傳感器內(nèi)部連接到ADC_IN16輸入通道,從而把傳感器輸出電壓轉(zhuǎn)換為數(shù)字值。l串行線JTAG調(diào)試端口(SWJ-DP) 芯片嵌入了ARM SWJ-DP接口,并且組合了JTAG和串行線調(diào)試端口。JTAG TMS和TCK引腳分別和SWDIO和SWCLK復(fù)用。如果要在JTAG-DP和SW-DP之間切換,只需要在TMS輸入一個(gè)特定的序列。嵌入式系統(tǒng)原理與接口技術(shù)245.3 5.3 基于標(biāo)準(zhǔn)外設(shè)庫的軟件開發(fā)基于標(biāo)準(zhǔn)外設(shè)庫的軟件開發(fā)n S

22、TM32標(biāo)準(zhǔn)外設(shè)庫概述標(biāo)準(zhǔn)外設(shè)庫概述lSTM32標(biāo)準(zhǔn)外設(shè)庫是一個(gè)固件函數(shù)包,它由程序、數(shù)據(jù)結(jié)構(gòu)和宏組成,包括了微控制器所有外設(shè)的性能特征。該函數(shù)庫還包括每一個(gè)外設(shè)的驅(qū)動(dòng)描述和應(yīng)用實(shí)例,為開發(fā)者訪問底層硬件提供了一個(gè)中間API,通過使用固件函數(shù)庫,無需深入掌握底層硬件細(xì)節(jié),開發(fā)者就可以輕松應(yīng)用每一個(gè)外設(shè)。每個(gè)外設(shè)驅(qū)動(dòng)都由一組函數(shù)組成,這組函數(shù)覆蓋了該外設(shè)所有功能。嵌入式系統(tǒng)原理與接口技術(shù)255.3 5.3 基于標(biāo)準(zhǔn)外設(shè)庫的軟件開發(fā)基于標(biāo)準(zhǔn)外設(shè)庫的軟件開發(fā)n 使用標(biāo)準(zhǔn)外設(shè)庫開發(fā)的優(yōu)勢使用標(biāo)準(zhǔn)外設(shè)庫開發(fā)的優(yōu)勢l簡單地說,使用標(biāo)準(zhǔn)外設(shè)庫進(jìn)行開發(fā)最大的優(yōu)勢就在于可以使開發(fā)者不用深入了解底層硬件細(xì)節(jié)就可以

23、靈活規(guī)范的使用每一個(gè)外設(shè)。標(biāo)準(zhǔn)外設(shè)庫覆蓋了從GPIO到定時(shí)器,再到CAN、I2C、SPI、UART和ADC等的所有標(biāo)準(zhǔn)外設(shè)。對應(yīng)的C源代碼只是用了最基本的C編程的知識,所有代碼經(jīng)過嚴(yán)格測試,易于理解和使用,并且配有完整的文檔,非常方便進(jìn)行二次開發(fā)和應(yīng)用。嵌入式系統(tǒng)原理與接口技術(shù)26n STM32F10 xxx標(biāo)準(zhǔn)外設(shè)庫結(jié)構(gòu)與文件描述標(biāo)準(zhǔn)外設(shè)庫結(jié)構(gòu)與文件描述嵌入式系統(tǒng)原理與接口技術(shù)27STM32F10 x_StdPeriph_Lib_V3.4.0_htmresc本文件夾包含了所有的本文件夾包含了所有的html頁面資源頁面資源LibrariesCMSIS見表 5 6STM32F10 x_StdPe

24、riph_Driverinc標(biāo)準(zhǔn)外設(shè)庫驅(qū)動(dòng)頭文件src標(biāo)準(zhǔn)外設(shè)庫驅(qū)動(dòng)源文件ProjectExamples標(biāo)準(zhǔn)外設(shè)庫驅(qū)動(dòng)的完整例程TemplateMDK-ARMKEIL RVMDK的項(xiàng)目模板示例RIDERaisonance RIDE的項(xiàng)目模板示例EWARMIAR EWARM的項(xiàng)目模板示例UtilitiesSTM3210-EVAL本文件夾包含了用于STM3210B-EVAL和STM3210E-EVAL評估板的專用驅(qū)動(dòng)5.3 5.3 基于標(biāo)準(zhǔn)外設(shè)庫的軟件開發(fā)基于標(biāo)準(zhǔn)外設(shè)庫的軟件開發(fā)n STM32F10 xxx標(biāo)準(zhǔn)外設(shè)庫結(jié)構(gòu)與文件描述標(biāo)準(zhǔn)外設(shè)庫結(jié)構(gòu)與文件描述l基于CMSIS標(biāo)準(zhǔn)的軟件架構(gòu) 基于CMSI

25、S標(biāo)準(zhǔn)的軟件架構(gòu)主要分為以下4層:用戶應(yīng)用層、操作系統(tǒng)及中間件接口層、CMSIS層、硬件寄存器層。 CMSIS層起著承上啟下的作用:一方面該層對硬件寄存器層進(jìn)行統(tǒng)一實(shí)現(xiàn),屏蔽了不同廠商對Cortex-M系列微處理器核內(nèi)外設(shè)寄存器的不同定義; 另一方面又向上層的操作系統(tǒng)及中間件接口層和應(yīng)用層提供接口,簡化了應(yīng)用程序開發(fā)難度,使開發(fā)人員能夠在完全透明的情況下進(jìn)行應(yīng)用程序開發(fā)。也正是如此,CMSIS層的實(shí)現(xiàn)相對復(fù)雜。嵌入式系統(tǒng)原理與接口技術(shù)285.3 5.3 基于標(biāo)準(zhǔn)外設(shè)庫的軟件開發(fā)基于標(biāo)準(zhǔn)外設(shè)庫的軟件開發(fā)n STM32F10 xxx標(biāo)準(zhǔn)外設(shè)庫結(jié)構(gòu)與文件描述標(biāo)準(zhǔn)外設(shè)庫結(jié)構(gòu)與文件描述l基于CMSIS標(biāo)

26、準(zhǔn)的軟件架構(gòu)的優(yōu)勢 為芯片廠商和中間件供應(yīng)商提供了簡單的處理器軟件接口,簡化了軟件復(fù)用工作,降低了Cortex-M 上操作系統(tǒng)的移植難度 減少了新入門的微控制器開發(fā)者的學(xué)習(xí)曲線和新產(chǎn)品的上市時(shí)間 獨(dú)立于供應(yīng)商的Cortex-M 處理器系列硬件抽象層,統(tǒng)一了接口嵌入式系統(tǒng)原理與接口技術(shù)295.3 5.3 基于標(biāo)準(zhǔn)外設(shè)庫的軟件開發(fā)基于標(biāo)準(zhǔn)外設(shè)庫的軟件開發(fā)n STM32F10 xxx標(biāo)準(zhǔn)外設(shè)庫結(jié)構(gòu)與文件描述標(biāo)準(zhǔn)外設(shè)庫結(jié)構(gòu)與文件描述嵌入式系統(tǒng)原理與接口技術(shù)30n STM32F10 xxx標(biāo)準(zhǔn)外設(shè)庫文件功能說明標(biāo)準(zhǔn)外設(shè)庫文件功能說明嵌入式系統(tǒng)原理與接口技術(shù)31文件名文件名功能描述功能描述具體功能說明具體

27、功能說明core_cm3.hcore_cm3.cCortex-M3內(nèi)核及其設(shè)備文件訪問Cortex-M3內(nèi)核及其設(shè)備:NVIC,SysTick等訪問Cortex-M3的CPU寄存器和內(nèi)核外設(shè)的函數(shù)stm32f10 x.h微控制器專用頭文件這個(gè)文件包含了STM32F10 x全系列所有外設(shè)寄存器的定義(寄存器的基地址和布局)、位定義、中斷向量表、存儲(chǔ)空間的地址映射等system_stm32f10 x.hsystem_stm32f10 x.c微控制器專用系統(tǒng)文件函數(shù)SystemInit,用來初始化微控制器函數(shù)Sysem_ExtMemCtl,用來配置外部存儲(chǔ)器控制器。它位于文件startup_stm3

28、2f10 x_xx.s /.c,在跳轉(zhuǎn)到main前調(diào)用SystemFrequncy,該值代表系統(tǒng)時(shí)鐘頻率startup_stm32f10 x_Xd.s編譯器啟動(dòng)代碼微控制器專用的中斷處理程序列表(與頭文件一致)弱定義(Weak)的中斷處理程序默認(rèn)函數(shù)(可以被用戶代碼覆蓋) 該文件是與編譯器相關(guān)的stm32f10 x_conf.h固件庫配置文件通過更改包含的外設(shè)頭文件來選擇固件庫所使用的外設(shè),在新建程序和進(jìn)行功能變更之前應(yīng)當(dāng)首先修改對應(yīng)的配置。stm32f10 x_it.hstm32f10 x_it.c外設(shè)中斷函數(shù)文件用戶可以相應(yīng)的加入自己的中斷程序的代碼,對于指向同一個(gè)中斷向量的多個(gè)不同中斷請

29、求,用戶可以通過判斷外設(shè)的中斷標(biāo)志位來確定準(zhǔn)確的中斷源,執(zhí)行相應(yīng)的中斷服務(wù)函數(shù)。stm32f10 x_ppp.hstm32f10 x_ppp.c外設(shè)驅(qū)動(dòng)函數(shù)文件包括了相關(guān)外設(shè)的初始化配置和部分功能應(yīng)用函數(shù),這部分是進(jìn)行編程功能實(shí)現(xiàn)的重要組成部分。Application.c用戶文件用戶程序文件,通過標(biāo)準(zhǔn)外設(shè)庫提供的接口進(jìn)行相應(yīng)的外設(shè)配置和功能設(shè)計(jì)。n STM32F10 xxx標(biāo)準(zhǔn)外設(shè)庫結(jié)構(gòu)與文件描述標(biāo)準(zhǔn)外設(shè)庫結(jié)構(gòu)與文件描述l基于CMSIS標(biāo)準(zhǔn)的軟件架構(gòu)嵌入式系統(tǒng)原理與接口技術(shù)32實(shí)時(shí)內(nèi)核中間件外設(shè)寄存器和中斷向量定義層core_cm3.hstm32f10 x.h內(nèi)核外設(shè)函數(shù)core_cm3.h中

30、間件函數(shù)器件級外設(shè)函數(shù)其他外設(shè)調(diào)試/跟蹤接口CMSISNVIC嵌套向量中斷控制器SysTick實(shí)時(shí)內(nèi)核定時(shí)器CortexCPU用戶應(yīng)用程序?qū)崟r(shí)操作系統(tǒng)MCUn STM32F10 xxx標(biāo)準(zhǔn)外設(shè)庫結(jié)構(gòu)與文件描述標(biāo)準(zhǔn)外設(shè)庫結(jié)構(gòu)與文件描述l基于CMSIS文件夾結(jié)構(gòu)嵌入式系統(tǒng)原理與接口技術(shù)33CMSISCoreDocumentationCMSIS文檔文檔CM3StartuparmMDK ARM編譯器啟動(dòng)文件startup_stm32f10 x_hd.s: 大容量產(chǎn)品啟動(dòng)文件startup_stm32f10 x_md.s: 中容量產(chǎn)品啟動(dòng)文件startup_stm32f10 x_ld.s: 小容量產(chǎn)品啟

31、動(dòng)文件gcc_ride7GCC編譯器啟動(dòng)文件iarIAR編譯器啟動(dòng)文件TrueSTUDIOTrueSTUDIO編譯器啟動(dòng)文件本文件夾包含STMF10 xxx CMSIS文件:微控制器外設(shè)訪問層和內(nèi)核設(shè)備訪問層:core_cm3.h:CMSIS的Cortex-M3內(nèi)核設(shè)備訪問層頭文件core_cm3.c:CMSIS的Cortex-M3內(nèi)核設(shè)備訪問層源文件stm32f10 x.h:CMSIS的Cortex-M3 STM32f10 xxx微控制器外設(shè)訪問層頭文件system_stm32f10 x.h:CMSIS的Cortex-M3 STM32f10 xxx微控制器外設(shè)訪問層頭文件system_stm

32、32f10 x.c:CMSIS的Cortex-M3 STM32f10 xxx微控制器外設(shè)訪問層源文件5.3 5.3 基于標(biāo)準(zhǔn)外設(shè)庫的軟件開發(fā)基于標(biāo)準(zhǔn)外設(shè)庫的軟件開發(fā)n STM32F10 xxx標(biāo)準(zhǔn)外設(shè)庫的使用標(biāo)準(zhǔn)外設(shè)庫的使用l標(biāo)準(zhǔn)外設(shè)庫中包含了眾多變量定義和功能函數(shù),有必要了解它們的命名規(guī)范和使用規(guī)律。 縮寫定義。庫中的主要外設(shè)都使用了縮寫,可以查閱相關(guān)對應(yīng)資料進(jìn)行了解。 命名規(guī)則。標(biāo)準(zhǔn)外設(shè)庫命名時(shí)用PPP表示任一外設(shè)縮寫,如:ADC。源程序文件和頭文件命名以“stm32f10 x_”作為開頭,如:stm32f10 x_conf.h。 變量定義。在早期的版本中有24個(gè)變量定義,在Keil的安裝

33、根目錄下,可以找到對應(yīng)的定義,路徑為:KeilARMINCSTSTM32F10 xstm32f10 x_type.h。嵌入式系統(tǒng)原理與接口技術(shù)345.3 5.3 基于標(biāo)準(zhǔn)外設(shè)庫的軟件開發(fā)基于標(biāo)準(zhǔn)外設(shè)庫的軟件開發(fā)n STM32F10 xxx標(biāo)準(zhǔn)外設(shè)庫的使用標(biāo)準(zhǔn)外設(shè)庫的使用l新建一個(gè)項(xiàng)目并設(shè)置工具鏈對應(yīng)的啟動(dòng)文件,可以使用標(biāo)準(zhǔn)外設(shè)庫中提供的模板,也可以根據(jù)自己的需求新建l按照使用產(chǎn)品的具體型號選擇具體的啟動(dòng)文件,加入工程l調(diào)用對應(yīng)的函數(shù)進(jìn)行相應(yīng)的功能設(shè)計(jì)嵌入式系統(tǒng)原理與接口技術(shù)35n STM32F10 xxx標(biāo)準(zhǔn)外設(shè)庫的命名規(guī)則標(biāo)準(zhǔn)外設(shè)庫的命名規(guī)則lPPP_Init:根據(jù)PPP_InitTypeD

34、ef中指定的參數(shù),初始化外設(shè)PPPlPPP_DeInit:復(fù)位外設(shè)PPP的所有寄存器至缺省值lPPP_Init:通過設(shè)置PPP_InitTypeDef 結(jié)構(gòu)中的各種參數(shù)來定義外設(shè)的功能lPPP_Cmd:使能或者失能外設(shè)PPPlPPP_ITConfig:使能或者失能來自外設(shè)PPP某中斷源lPPP_GetFlagStatus:檢查外設(shè)PPP某標(biāo)志位被設(shè)置與否嵌入式系統(tǒng)原理與接口技術(shù)36n STM32F10 xxx標(biāo)準(zhǔn)外設(shè)庫的命名規(guī)則標(biāo)準(zhǔn)外設(shè)庫的命名規(guī)則lPPP_GetITStatus:判斷來自外設(shè)PPP的中斷發(fā)生與否lPPP_ClearFlag:清除外設(shè)PPP標(biāo)志lPPP_ClearITPendi

35、ngBit:清除外設(shè)PPP中斷待處理標(biāo)志位n 便于程序編寫和閱讀便于程序編寫和閱讀n 程序嚴(yán)謹(jǐn),不易出錯(cuò)程序嚴(yán)謹(jǐn),不易出錯(cuò)嵌入式系統(tǒng)原理與接口技術(shù)375.4 5.4 使用使用Keil MDKKeil MDK以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建STM32STM32工程工程n 開發(fā)工具與開發(fā)環(huán)境開發(fā)工具與開發(fā)環(huán)境l軟件版本 本節(jié)所使用Keil MDK為目前的最新版V4.21,使用的標(biāo)準(zhǔn)外設(shè)庫為目前最新的V3.5版本。使用的開發(fā)調(diào)試工具為JLINK-V8,使用的驅(qū)動(dòng)版本為V4.08l。l建立工程目錄 首先建立一個(gè)用于存放工程的文件夾,在文件夾下分別建立LIB、USER、MDK三個(gè)文件夾,分別用于存放

36、標(biāo)準(zhǔn)外設(shè)庫文件、用戶程序文件、工程目錄。在MDK文件夾下建立List、Obj兩個(gè)文件夾,分別用于存放在編譯過程中產(chǎn)生的臨時(shí)文件和輸出文件。然后拷貝標(biāo)準(zhǔn)外設(shè)庫和相應(yīng)的文件到工程目錄中。嵌入式系統(tǒng)原理與接口技術(shù)38n MDK的操作與設(shè)置的操作與設(shè)置l新建工程 首先啟動(dòng)Keil uVision4,點(diǎn)擊菜單欄Project-New uVision Project,選擇工程的保存位置。嵌入式系統(tǒng)原理與接口技術(shù)395.4 5.4 使用使用Keil MDKKeil MDK以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建STM32STM32工程工程n MDK的操作與設(shè)置的操作與設(shè)置l新建工程 在彈出的界面中選擇所使用的芯

37、片信號,在本節(jié)中選擇STM32F103ZE。嵌入式系統(tǒng)原理與接口技術(shù)405.4 5.4 使用使用Keil MDKKeil MDK以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建STM32STM32工程工程n MDK的操作與設(shè)置的操作與設(shè)置l新建工程 芯片選擇完成后軟件會(huì)彈出一條提示,提示是否要拷貝STM32大容量啟動(dòng)代碼并添加到工程,由于我們使用新版本標(biāo)準(zhǔn)外設(shè)庫中提供的啟動(dòng)代碼,因此此處選擇否。至此,建立了一個(gè)新的工程。嵌入式系統(tǒng)原理與接口技術(shù)415.4 5.4 使用使用Keil MDKKeil MDK以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建STM32STM32工程工程n MDK的操作與設(shè)置的操作與設(shè)置l添加

38、程序文件 在左側(cè)Project一欄中對Target 1雙擊之 后可以重命名,這里命名為STM32, 然后右擊,單擊Manage Components, 如右圖所示。嵌入式系統(tǒng)原理與接口技術(shù)425.4 5.4 使用使用Keil MDKKeil MDK以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建STM32STM32工程工程n MDK的操作與設(shè)置的操作與設(shè)置l添加程序文件 在下圖對應(yīng)的Group上右鍵Add Group和Add Files to Group,即可添加我們所需的文件。嵌入式系統(tǒng)原理與接口技術(shù)43n MDK的操作與設(shè)置的操作與設(shè)置嵌入式系統(tǒng)原理與接口技術(shù)445.4 5.4 使用使用Keil MD

39、KKeil MDK以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建STM32STM32工程工程n MDK的操作與設(shè)置的操作與設(shè)置l程序調(diào)試與下載設(shè)置 接下來進(jìn)行的是程序調(diào)試和下載的相關(guān)設(shè)置,有關(guān)調(diào)試的設(shè)置在Debug選項(xiàng)卡中,此選項(xiàng)卡主要完成程序調(diào)試的相關(guān)設(shè)置,選項(xiàng)卡分為兩個(gè)部分,左側(cè)是使用模擬器進(jìn)行仿真與調(diào)試的方式,點(diǎn)選后軟件會(huì)進(jìn)入模擬器調(diào)試。右側(cè)是使用仿真器連接硬件開發(fā)平臺(tái)進(jìn)行調(diào)試,首先從右側(cè)選擇所使用的仿真器,這里使用的是J-Link仿真器,故在下拉框中選擇Cortex-M/R J-LINK/J-Trace,在兩側(cè)的下方可以通過勾選對應(yīng)的復(fù)選框來選擇是否需要在調(diào)試開始時(shí)下載程序和運(yùn)行到主程序,其他部

40、分的設(shè)置保持默認(rèn)即可。嵌入式系統(tǒng)原理與接口技術(shù)455.4 5.4 使用使用Keil MDKKeil MDK以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建STM32STM32工程工程n MDK的操作與設(shè)置的操作與設(shè)置l程序調(diào)試與下載設(shè)置嵌入式系統(tǒng)原理與接口技術(shù)465.4 5.4 使用使用Keil MDKKeil MDK以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建STM32STM32工程工程n MDK的操作與設(shè)置的操作與設(shè)置l程序調(diào)試與下載設(shè)置嵌入式系統(tǒng)原理與接口技術(shù)475.4 5.4 使用使用Keil MDKKeil MDK以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建STM32STM32工程工程n 使用使用Keil MD

41、K運(yùn)行第一個(gè)運(yùn)行第一個(gè)STM32F10X程序程序l程序的編寫 為了方便使用者的入門和理解,這個(gè)小程序的功能非常簡單,作為本書功能實(shí)踐的第一個(gè)程序,其功能是最為經(jīng)典的“Hello World!”,只不過不是簡單的屏幕輸出,而是利用硬件的串口進(jìn)行輸出,同時(shí)作為單片機(jī)類的第一個(gè)程序自然少不了LED閃爍的功能,這就是這個(gè)小程序的兩個(gè)主要的功能。利用串口1輸出“Hello World!”字符;控制兩個(gè)LED閃爍。嵌入式系統(tǒng)原理與接口技術(shù)485.4 5.4 使用使用Keil MDKKeil MDK以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建STM32STM32工程工程n 使用使用Keil MDK運(yùn)行第一個(gè)運(yùn)行第一

42、個(gè)STM32F10X程序程序l程序的編寫 在進(jìn)行程序開發(fā)時(shí)可先查看如下圖的幫助文件以及庫中自帶的工程實(shí)例,同時(shí)結(jié)合STM32F10 x系列的芯片手冊來完成程序的開發(fā)。嵌入式系統(tǒng)原理與接口技術(shù)495.4 5.4 使用使用Keil MDKKeil MDK以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建STM32STM32工程工程n 使用使用Keil MDK運(yùn)行第一個(gè)運(yùn)行第一個(gè)STM32F10X程序程序l程序的編譯 在Keil MDK的工具欄上自左至右依次有 三個(gè)圖標(biāo),分別為編譯指定文件、生成工程、重新生成所有工程。首先在main.c下點(diǎn)擊編譯圖標(biāo),如果編譯沒有錯(cuò)誤,單擊 圖標(biāo)生成工程,生成沒有錯(cuò)誤則整個(gè)編譯過程結(jié)束。如果存在錯(cuò)誤則可以直接點(diǎn)擊對應(yīng)的錯(cuò)誤跳轉(zhuǎn)到對應(yīng)文件對應(yīng)的行,根據(jù)錯(cuò)誤提示進(jìn)行再次修改。嵌入式系統(tǒng)原理與接口技術(shù)505.4 5.4 使用使用Keil MDKKeil MDK以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建STM32STM32工程工程n 使用使用Keil MDK運(yùn)行第一個(gè)運(yùn)行第一個(gè)STM32F10X程序程序l程序的調(diào)試 在實(shí)際開發(fā)時(shí),可以首先利用軟件進(jìn)行仿真,利用軟件進(jìn)行仿真查看具體的寄存器配置,外設(shè)的工作情況等,同時(shí)通過斷點(diǎn)的配合可以查找

溫馨提示

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

最新文檔

評論

0/150

提交評論