《STM32微控制器原理及應(yīng)用》全套教學(xué)課件_第1頁
《STM32微控制器原理及應(yīng)用》全套教學(xué)課件_第2頁
《STM32微控制器原理及應(yīng)用》全套教學(xué)課件_第3頁
《STM32微控制器原理及應(yīng)用》全套教學(xué)課件_第4頁
《STM32微控制器原理及應(yīng)用》全套教學(xué)課件_第5頁
已閱讀5頁,還剩504頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

STM32

微控制器原理及應(yīng)用第1章

嵌入式系統(tǒng)概述第2章STM32結(jié)構(gòu)第3章

基于STM32固件函數(shù)庫的程序設(shè)計(jì)基礎(chǔ)第4章GPIO第5章

中斷系統(tǒng)第6章

定時(shí)器計(jì)數(shù)器第7章USART第8章DMA控制器第9章AD轉(zhuǎn)換器全套可編輯PPT課件

本課件是可編輯的正常PPT課件課程簡介與考核形式以STM32F103為核心,介紹嵌入式系統(tǒng)結(jié)構(gòu)與工作原理,學(xué)習(xí)基于固件庫的程序設(shè)計(jì)方法,能夠在MDK環(huán)境中,編寫多種I/O接口的控制程序,在開發(fā)板上調(diào)試運(yùn)行成功。這是一門實(shí)踐性很強(qiáng)的課程,理論課27學(xué)時(shí),實(shí)踐課27學(xué)時(shí)。單周理論課,雙周實(shí)踐課??偝煽?實(shí)驗(yàn)40%+平時(shí)10%+期末50%本課件是可編輯的正常PPT課件第一章嵌入式系統(tǒng)概述【本章教學(xué)目標(biāo)】嵌入式系統(tǒng)的定義與特點(diǎn)嵌入式微處理器分類嵌入式系統(tǒng)的發(fā)展和應(yīng)用STM32微控制器系列產(chǎn)品特點(diǎn)STM32F103主要性能本課件是可編輯的正常PPT課件主要內(nèi)容1.嵌入式系統(tǒng)簡介2.STM32微控制器簡介本課件是可編輯的正常PPT課件1嵌入式系統(tǒng)簡介1.1嵌入式系統(tǒng)定義1.2嵌入式系統(tǒng)的特點(diǎn)1.3嵌入式系統(tǒng)的分類1.4嵌入式系統(tǒng)的應(yīng)用1.5嵌入式系統(tǒng)的發(fā)展1.6通用計(jì)算機(jī)與嵌入式系統(tǒng)對比本課件是可編輯的正常PPT課件1.1嵌入式系統(tǒng)定義嵌入式系統(tǒng)(Embeddedsystem),是一種“完全嵌入受控器件內(nèi)部,為特定應(yīng)用而設(shè)計(jì)的專用計(jì)算機(jī)系統(tǒng)”,根據(jù)英國電器工程師協(xié)會(U.K.InstitutionofElectricalEngineer)的定義,嵌入式系統(tǒng)為“用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置”。與個(gè)人計(jì)算機(jī)這樣的通用計(jì)算機(jī)系統(tǒng)不同,嵌入式系統(tǒng)通常執(zhí)行的是帶有特定要求的預(yù)先定義的任務(wù)。由于嵌入式系統(tǒng)只針對一項(xiàng)特殊的任務(wù),設(shè)計(jì)人員能夠?qū)λM(jìn)行優(yōu)化,減小尺寸降低成本。嵌入式系統(tǒng)通常進(jìn)行大量生產(chǎn),所以單個(gè)的成本節(jié)約,能夠隨著產(chǎn)量進(jìn)行成百上千的放大。本課件是可編輯的正常PPT課件1.1嵌入式系統(tǒng)定義嵌入式系統(tǒng)的核心是由一個(gè)或幾個(gè)預(yù)先編程好以用來執(zhí)行少數(shù)幾項(xiàng)任務(wù)的微處理器或者單片機(jī)組成。與通用計(jì)算機(jī)能夠運(yùn)行用戶選擇的軟件不同,嵌入式系統(tǒng)上的軟件通常是暫時(shí)不變的,所以經(jīng)常稱為“固件”。國內(nèi)普遍認(rèn)同的嵌入式系統(tǒng)定義為:以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。一般而言,嵌入式系統(tǒng)的構(gòu)架可以分成四個(gè)部分:處理器、存儲器、輸入輸出(I/O)和軟件。本課件是可編輯的正常PPT課件1.2嵌入式系統(tǒng)的特點(diǎn)嵌入式系統(tǒng)的硬件和軟件必須根據(jù)具體的應(yīng)用任務(wù),以功耗、成本、體積、可靠性、處理能力等為指標(biāo)來進(jìn)行選擇。從用戶和開發(fā)人員的不同角度來看,與普通計(jì)算機(jī)相比較,嵌入式系統(tǒng)具有如下特點(diǎn):(1)專用性強(qiáng)。由于嵌入式系統(tǒng)通常是面向某個(gè)特定應(yīng)用的,所以嵌入式系統(tǒng)的硬件和軟件,尤其是軟件,都是為特定用戶群設(shè)計(jì)的。(2)體積小型化。方便將嵌入式系統(tǒng)嵌入目標(biāo)系統(tǒng)中。(3)實(shí)時(shí)性好。嵌入式系統(tǒng)廣泛應(yīng)用于生產(chǎn)過程控制、數(shù)據(jù)采集、傳輸通信等場合,主要用來對宿主對象進(jìn)行控制,所以對嵌入式系統(tǒng)有或多或少的實(shí)時(shí)性要求。(4)可裁剪性好。從嵌入式系統(tǒng)專用性的特點(diǎn)來看,嵌入式系統(tǒng)的供應(yīng)者提供各式各樣的硬件和軟件以備選用。(5)可靠性高。由于有些嵌入式系統(tǒng)所承擔(dān)的計(jì)算任務(wù)涉及被控產(chǎn)品的關(guān)鍵質(zhì)量、人身設(shè)備安全等,對可靠性的要求極高。本課件是可編輯的正常PPT課件(6)功耗低。有許多嵌入式系統(tǒng)的宿主對象是一些小型應(yīng)用系統(tǒng),如移動電話、數(shù)碼相機(jī)等,這些設(shè)備不可能配置交流電源或容量較大的電源,因此低功耗一直是嵌入式系統(tǒng)追求的目標(biāo)。(7)專門的開發(fā)工具和環(huán)境。嵌入式系統(tǒng)本身不具備自我開發(fā)能力,必須借助通用計(jì)算機(jī)平臺來開發(fā)。嵌入式系統(tǒng)設(shè)計(jì)完成以后,普通用戶通常沒有辦法對其中的程序或硬件結(jié)構(gòu)進(jìn)行修改,必須有一套開發(fā)工具和環(huán)境才能進(jìn)行。(8)嵌入式系統(tǒng)通常采用“軟硬件協(xié)同設(shè)計(jì)”的方法實(shí)現(xiàn)。避免由于獨(dú)立設(shè)計(jì)軟硬件體系結(jié)構(gòu)而帶來的種種弊病,得到高性能、低代價(jià)的優(yōu)化設(shè)計(jì)方案。本課件是可編輯的正常PPT課件1.3嵌入式系統(tǒng)的分類

(1)體系結(jié)構(gòu)。普林斯頓結(jié)構(gòu)(馮·諾依曼結(jié)構(gòu))和哈佛結(jié)構(gòu)(2)指令集。CISC(復(fù)雜指令系統(tǒng))和RISC(精簡指令系統(tǒng))(3)嵌入式處理器種類。一般可以將嵌入式處理器分成4類,即嵌入式微處理器(MicroProcessor

Unit,MPU)嵌入式微控制器(MicroControllerUnit,MCU單片機(jī))嵌入式DSP處理器(Digital

SignalProcessor,DSP)嵌入式片上系統(tǒng)(SystemOnChip,SoC)

本課件是可編輯的正常PPT課件馮·諾依曼結(jié)構(gòu):單一存儲、統(tǒng)一編址、分時(shí)復(fù)用本課件是可編輯的正常PPT課件哈佛結(jié)構(gòu):分開存儲、獨(dú)立編址、兩倍帶寬、效率更高本課件是可編輯的正常PPT課件CISC(復(fù)雜指令系統(tǒng))和RISC(精簡指令系統(tǒng))本課件是可編輯的正常PPT課件嵌入式微處理器(MicroProcessor

Unit,MPU)嵌入式微處理器字長一般為16位或32位,Intel、AMD、Motorola、ARM等公司提供很多這樣的處理器產(chǎn)品。嵌入式微處理器通用性比較好、處理能力較強(qiáng)、可擴(kuò)展性好、尋址范圍大、支持各種靈活的設(shè)計(jì),且不限于某個(gè)具體的應(yīng)用領(lǐng)域。在實(shí)踐應(yīng)用中,嵌入式微處理器需要在芯片外配置RAM和ROM,根據(jù)應(yīng)用要求往往要擴(kuò)展一些外部接口設(shè)備,如網(wǎng)絡(luò)接口、GPS、A/D接口等。嵌入式微處理器及其存儲器、總線、外設(shè)等安裝在一塊電路板上,稱之為單板計(jì)算機(jī)。嵌入式微處理器在通用性上有點(diǎn)類似通用處理器,但前者在功能、價(jià)格、功耗、芯片封裝、溫度適應(yīng)性、電磁兼容方面更適合嵌入式系統(tǒng)應(yīng)用要求。嵌入式處理器有很多種類型,如xScale、Geode、PowerPC、MIPS、ARM等處理器系列。本課件是可編輯的正常PPT課件嵌入式微控制器(MicroControllerUnit,MCU單片機(jī))嵌入式微控制器又稱單片機(jī),已經(jīng)經(jīng)歷了近30年的發(fā)展歷史,目前在嵌入式系統(tǒng)中仍然有著極其廣泛的應(yīng)用。這種處理器內(nèi)部集成RAM、各種非易失性存儲器、總線控制器、定時(shí)/計(jì)數(shù)器、看門狗、I/O、串行口、脈寬調(diào)制輸出、A/D、D/A等各種必要功能和外設(shè)。其跟嵌入式微處理器相比,微控制器的最大特點(diǎn)是將計(jì)算機(jī)最小系統(tǒng)所需要的部件及一些應(yīng)用需要的控制器/外部設(shè)備集成在一個(gè)芯片上,實(shí)現(xiàn)單片化,使得芯片尺寸大大減小,從而使系統(tǒng)總功耗和成本下降、可靠性提高。微控制器的片上外設(shè)資源一般比較豐富,適合于控制,因此稱微控制器。MCU品種豐富、價(jià)格低廉,目前占嵌入式系統(tǒng)約70%以上的市場份額。本課件是可編輯的正常PPT課件嵌入式DSP處理器(Digital

SignalProcessor,DSP)在數(shù)字化時(shí)代數(shù)字信號處理是一門應(yīng)用廣泛的技術(shù),如數(shù)字濾波、FFT、譜分析、語音編碼、視頻編碼等、數(shù)據(jù)編碼、雷達(dá)目標(biāo)提取等等,傳統(tǒng)微處理器在進(jìn)行這類計(jì)算操作時(shí)的性能較低,專門的數(shù)字信號處理芯片——DSP也就應(yīng)運(yùn)而生,DSP的系統(tǒng)結(jié)構(gòu)和指令系統(tǒng)針對數(shù)字信號處理進(jìn)行了特殊設(shè)計(jì),因而在執(zhí)行相關(guān)操作時(shí)具有很高的效率。在應(yīng)用中,DSP總是完成某些特定的任務(wù),硬件和軟件需要為應(yīng)用進(jìn)行專門定制,因此DSP是一種嵌入式處理器。本課件是可編輯的正常PPT課件嵌入式片上系統(tǒng)(SystemOnChip,SoC)

在某一類特定的應(yīng)用對嵌入式系統(tǒng)的性能、功能、接口有相似的要求,針對嵌入式系統(tǒng)的這個(gè)特點(diǎn),利用大規(guī)模集成電路技術(shù)將某一類應(yīng)用需要的大多數(shù)模塊集成在一個(gè)芯片上,從而在芯片上實(shí)現(xiàn)一個(gè)嵌入式系統(tǒng)大部分核心功能,這種處理器就是SOC。SOC把微處理器和特定應(yīng)用中常用的模塊集成在一個(gè)芯片上,應(yīng)用時(shí)往往只需要在SOC外部擴(kuò)充內(nèi)存、接口驅(qū)動、一些分立元件及供電電路就可以構(gòu)成一套實(shí)用的系統(tǒng),極大地簡化了系統(tǒng)設(shè)計(jì)的難度,同時(shí)還有利于減小電路板面積、降低系統(tǒng)成本、提高系統(tǒng)可靠性。SOC是嵌入式處理器的一個(gè)重要發(fā)展趨勢。本課件是可編輯的正常PPT課件1.4嵌入式系統(tǒng)的應(yīng)用(1)工業(yè)控制基于嵌入式芯片的工業(yè)自動化設(shè)備將獲得長足的發(fā)展,目前已經(jīng)有大量的8、16、32位嵌入式微控制器在應(yīng)用中,網(wǎng)絡(luò)化是提高生產(chǎn)效率和產(chǎn)品質(zhì)量、減少人力資源主要途徑,如工業(yè)過程控制、數(shù)字機(jī)床、電力系統(tǒng)、電網(wǎng)安全、電網(wǎng)設(shè)備監(jiān)測、石油化工系統(tǒng)。就傳統(tǒng)的工業(yè)控制產(chǎn)品而言,低端型采用的往往是8位單片機(jī)。但是隨著技術(shù)的發(fā)展,32位、64位的處理器逐漸成為工業(yè)控制設(shè)備的核心,在未來幾年內(nèi)必將獲得長足的發(fā)展。(2)交通管理在車輛導(dǎo)航、流量控制、信息監(jiān)測與汽車服務(wù)方面,嵌入式系統(tǒng)技術(shù)已經(jīng)獲得了廣泛的應(yīng)用,內(nèi)嵌GPS模塊、GSM模塊的移動定位終端已經(jīng)在各種運(yùn)輸行業(yè)獲得了成功的使用。目前GPS設(shè)備已經(jīng)從尖端產(chǎn)品進(jìn)入了普通百姓的家庭,只需要幾千元,就可以隨時(shí)隨地找到你的位置。本課件是可編輯的正常PPT課件1.4嵌入式系統(tǒng)的應(yīng)用(3)信息家電這將稱為嵌入式系統(tǒng)最大的應(yīng)用領(lǐng)域,冰箱、空調(diào)等的網(wǎng)絡(luò)化、智能化將引領(lǐng)人們的生活步入一個(gè)嶄新的空間。即使你不在家里,也可以通過電話線、網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程控制。在這些設(shè)備中,嵌入式系統(tǒng)將大有用武之地。(4)家庭智能管理系統(tǒng)水、電、煤氣表的遠(yuǎn)程自動抄表,安全防火、防盜系統(tǒng),其中嵌有的專用控制芯片將代替?zhèn)鹘y(tǒng)的人工檢查,并實(shí)現(xiàn)更高,更準(zhǔn)確和更安全的性能。目前在服務(wù)領(lǐng)域,如遠(yuǎn)程點(diǎn)菜器等已經(jīng)體現(xiàn)了嵌入式系統(tǒng)的優(yōu)勢。(5)POS網(wǎng)絡(luò)及電子商務(wù)公共交通無接觸智能卡(ContactlessSmartcard,CSC)發(fā)行系統(tǒng),公共電話卡發(fā)行系統(tǒng),自動售貨機(jī),各種智能ATM終端將全面走入人們的生活,到時(shí)手持一卡就可以行遍天下。本課件是可編輯的正常PPT課件1.4嵌入式系統(tǒng)的應(yīng)用(6)環(huán)境工程與自然水文資料實(shí)時(shí)監(jiān)測,防洪體系及水土質(zhì)量監(jiān)測、堤壩安全,地震監(jiān)測網(wǎng),實(shí)時(shí)氣象信息網(wǎng),水源和空氣污染監(jiān)測。在很多環(huán)境惡劣,地況復(fù)雜的地區(qū),嵌入式系統(tǒng)將實(shí)現(xiàn)無人監(jiān)測。(7)國防與航天嵌入式芯片的發(fā)展將使機(jī)器人在微型化,高智能方面優(yōu)勢更加明顯,同時(shí)會大幅度降低機(jī)器人的價(jià)格,使其在工業(yè)領(lǐng)域和服務(wù)領(lǐng)域獲得更廣泛的應(yīng)用。本課件是可編輯的正常PPT課件1.5嵌入式系統(tǒng)的發(fā)展縱觀嵌入式系統(tǒng)的發(fā)展歷程,大致經(jīng)歷了以下3個(gè)階段:以嵌入式微處理器為基礎(chǔ)的初級嵌入式系統(tǒng)以嵌入式操作系統(tǒng)為標(biāo)志的中級嵌入式系統(tǒng)以Internet和實(shí)時(shí)多任務(wù)操作系統(tǒng)為標(biāo)志的高級嵌入式系統(tǒng)

本課件是可編輯的正常PPT課件發(fā)展趨勢嵌入式技術(shù)與Internet技術(shù)的結(jié)合正在推動著嵌入式技術(shù)的飛速發(fā)展,為嵌入式市場展現(xiàn)了美好的前景,同時(shí)也對嵌入式生產(chǎn)廠商提出了新的挑戰(zhàn),未來嵌入式系統(tǒng)的幾大發(fā)展趨勢:(1)嵌入式系統(tǒng)的開發(fā)成了一項(xiàng)系統(tǒng)工程,開發(fā)廠商不僅要提供嵌入式軟硬件系統(tǒng)本身,同時(shí)還要提供強(qiáng)大的硬件開發(fā)工具和軟件支持包。(2)網(wǎng)絡(luò)化、信息化的要求隨著Internet技術(shù)的成熟和帶寬的提高而日益突出,以往功能單一的設(shè)備如電話、手機(jī)、冰箱、微波爐等功能不再單一,結(jié)構(gòu)變得更加復(fù)雜,網(wǎng)絡(luò)互聯(lián)成為必然趨勢。本課件是可編輯的正常PPT課件發(fā)展趨勢(3)未來的嵌入式設(shè)備為了適應(yīng)網(wǎng)絡(luò)發(fā)展的要求,必然要求硬件上提供各種網(wǎng)絡(luò)通信接口。傳統(tǒng)的單片機(jī)對于網(wǎng)絡(luò)支持不足,而新一代的嵌入式處理器已經(jīng)開始內(nèi)嵌網(wǎng)絡(luò)接口,除了支持TCP/IP協(xié)議,還有的支持IEEE1394、USB、CAN、Bluetooth或IrDA通信接口中的一種或者幾種,同時(shí)也需要提供相應(yīng)的通信組網(wǎng)協(xié)議軟件和物理層驅(qū)動軟件。軟件方面系統(tǒng)系統(tǒng)內(nèi)核支持網(wǎng)絡(luò)模塊,甚至可以在設(shè)備上嵌入Web瀏覽器,真正實(shí)現(xiàn)隨時(shí)隨地用各種設(shè)備上網(wǎng)。

(4)精簡系統(tǒng)內(nèi)核,優(yōu)化關(guān)鍵算法,降低功耗和軟硬成本。(5)提供更加友好的多媒體人機(jī)交互界面。本課件是可編輯的正常PPT課件1.6通用計(jì)算機(jī)與嵌入式系統(tǒng)對比本課件是可編輯的正常PPT課件硬件平臺比較本課件是可編輯的正常PPT課件軟件平臺比較本課件是可編輯的正常PPT課件2.STM32簡介STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的ARM

Cortex-M3內(nèi)核。按性能分成兩個(gè)不同的系列:STM32F103“增強(qiáng)型”系列和STM32F101“基本型”系列。增強(qiáng)型系列時(shí)鐘頻率達(dá)到72MHz,是同類產(chǎn)品中性能最高的產(chǎn)品;基本型時(shí)鐘頻率為36MHz,以16位產(chǎn)品的價(jià)格得到比16位產(chǎn)品大幅提升的性能,是16位產(chǎn)品用戶的最佳選擇。兩個(gè)系列都內(nèi)置32K~128K的閃存,不同的是SRAM的最大容量和外設(shè)接口的組合。時(shí)鐘頻率72MHz時(shí),從閃存執(zhí)行代碼,STM32功耗36mA,是32位市場上功耗最低的產(chǎn)品,相當(dāng)于0.5mA/MHz。本課件是可編輯的正常PPT課件2.STM32簡介2.1歷史2.2產(chǎn)品介紹2.3Cortex-M3內(nèi)核2.4應(yīng)用本課件是可編輯的正常PPT課件2.1STM32歷史意法半導(dǎo)體(STMicroelectronics)集團(tuán)于1987年6月成立,是由意大利的SGS微電子公司和法國Thomson半導(dǎo)體公司合并而成。1998年5月,SGS-THOMSONMicroelectronics將公司名稱改為意法半導(dǎo)體有限公司,意法半導(dǎo)體是世界最大的半導(dǎo)體公司之一。從成立之初至今,ST的增長速度超過了半導(dǎo)體工業(yè)的整體增長速度。自1999年起,ST始終是世界十大半導(dǎo)體公司之一。2007年6月ST宣布了她的第一款基于Cortex-M3并內(nèi)嵌32K~128K閃存的STM32微控制器系列產(chǎn)品。ARM公司在2004年推出了CM3內(nèi)核,經(jīng)過5年市場的積累,包括ST公司、TI公司等一些半導(dǎo)體公司推出了基于CM3內(nèi)核的微控制器產(chǎn)品。本課件是可編輯的正常PPT課件ARMARM(AdvancedRISCMachines)是英國的一家微處理器企業(yè),也可以認(rèn)為是對一類微處理器的通稱,還可以認(rèn)為是一種技術(shù)的名字。見表1-5(P10)ARM體系結(jié)構(gòu)定義了指令集和基于這一體系結(jié)構(gòu)下處理器的編程模型?;谕瑯芋w系結(jié)構(gòu)可以有多種處理器,每個(gè)處理器性能不同,所面向的應(yīng)用也就不同。ARMv7有三個(gè)分支,即:

A-應(yīng)用分支,面向應(yīng)用,如手持設(shè)備。

R-實(shí)時(shí)分支,面向一般的實(shí)時(shí)控制。

M-微處理機(jī)分支,面向深度嵌入系統(tǒng)。本課件是可編輯的正常PPT課件ARM處理器系列本課件是可編輯的正常PPT課件2.2Cortex-M3內(nèi)核Cortex-M3系列微處理器的主要特點(diǎn)如下:(1)Thumb-2指令集架構(gòu)(ISA,InstructionSetArchitecture)。(2)哈佛處理器架構(gòu),在加載/存儲數(shù)據(jù)的同時(shí)能夠執(zhí)行指令取指。(3)三級流水線。(4)32位單周期乘法。(5)具備硬件除法。(6)Thumb狀態(tài)和調(diào)試狀態(tài)。(7)處理模式和線程模式。(8)ISR(InterruptServiceRoutine)的低延遲進(jìn)入和退出。(9)可中斷-可繼續(xù)的LDM/STM(批量傳輸數(shù)據(jù)的指令),PUSH/POP。(10)ARMv6類型BE8/LE支持。

(字節(jié)不變式大端模式big-endian/小端模式little-endian)(11)ARMv6非對齊訪問。(12)分支預(yù)測功能本課件是可編輯的正常PPT課件關(guān)于指令集Cortex-M3處理器采用ARMv7-M(哈佛)架構(gòu)。它采用Thumb-2指令集。包括所有的16位Thumb指令集和基本的32位Thumb-2指令集架構(gòu),Cortex-M3處理器不能執(zhí)行ARM指令集。Thumb-2在Thumb指令集架構(gòu)(ISA)上進(jìn)行了大量的改進(jìn),它與Thumb相比,具有更高的代碼密度并提供16/32位指令的更高性能。為兼容數(shù)據(jù)總線寬度為16位的應(yīng)用系統(tǒng),ARM體系結(jié)構(gòu)除了支持執(zhí)行效率很高的32位ARM指令集以外,同時(shí)支持16位的Thumb指令集。Thumb指令集是ARM指令集的一個(gè)子集,是針對代碼密度問題而提出的,它具有16位的代碼寬度。與等價(jià)的32位代碼相比較,Thumb指令集在保留32位代碼優(yōu)勢的同時(shí),大大的節(jié)省了系統(tǒng)的存儲空間。本課件是可編輯的正常PPT課件Cortex-M3只支持最新的Thumb-2指令集,這樣設(shè)計(jì)的優(yōu)勢在于:免去Thumb和ARM代碼的互相切換,對于早期的處理器來說,這種切換會降低性能。Thumb-2指令集的設(shè)計(jì)是專門面向C語言的,切包括If/Then結(jié)構(gòu)、硬件除法以及本地位域操作。Thumb-2指令集允許用戶在C代碼層面維護(hù)修改程序。Thumb-2指令集也包含了調(diào)用匯編代碼的功能。綜合以上優(yōu)勢,新產(chǎn)品的開發(fā)將更易于實(shí)現(xiàn),上市時(shí)間也大為縮短。本課件是可編輯的正常PPT課件三級流水線----取指、譯碼、執(zhí)行本課件是可編輯的正常PPT課件關(guān)于工作狀態(tài)Coretx-M3處理器有2種工作狀態(tài)。Thumb狀態(tài):這是16位和32位“半字對齊”的Thumb和Thumb-2指令的執(zhí)行狀態(tài)。調(diào)試狀態(tài):處理器停止并進(jìn)行調(diào)試,進(jìn)入該狀態(tài)。本課件是可編輯的正常PPT課件關(guān)于工作模式Cortex-M3處理器支持2種工作模式:線程模式和處理模式。在復(fù)位時(shí)處理器進(jìn)入“線程模式”,異常返回時(shí)也會進(jìn)入該模式,特權(quán)和用戶(非特權(quán))模式代碼能夠在“線程模式”下運(yùn)行。出現(xiàn)異常模式時(shí)處理器進(jìn)入“處理模式”,在處理模式下,所有代碼都是特權(quán)訪問的。本課件是可編輯的正常PPT課件關(guān)于中斷Cortex-M3的一個(gè)創(chuàng)新在于嵌套中斷向量控制器(NVIC,NestedVectoredInterruptController),是Cortex-M3內(nèi)部的獨(dú)有集成單元。NVIC提供如下的功能:可嵌套中斷支持向量中斷支持動態(tài)優(yōu)先級調(diào)整支持中斷延遲大大縮短中斷可屏蔽本課件是可編輯的正常PPT課件ARM數(shù)據(jù)存儲格式本課件是可編輯的正常PPT課件Cortex-M3處理器能夠以小端格式或大端格式訪問存儲器中的數(shù)據(jù)字,而訪問代碼時(shí)始終使用小端格式。小端格式是ARM處理器默認(rèn)的存儲器格式。本課件是可編輯的正常PPT課件2.3產(chǎn)品介紹在STM32F105和STM32F107互連型系列微控制器之前,意法半導(dǎo)體已經(jīng)推出STM32基本型系列、增強(qiáng)型系列、USB基本型系列、增強(qiáng)型系列;新系列產(chǎn)品沿用增強(qiáng)型系列的72MHz處理頻率。內(nèi)存包括64KB到256KB閃存和20KB到64KB嵌入式SRAM。新系列采用LQFP64、LQFP100和LFBGA100三種封裝,不同的封裝保持引腳排列一致性,結(jié)合STM32平臺的設(shè)計(jì)理念,開發(fā)人員通過選擇產(chǎn)品可重新優(yōu)化功能、存儲器、性能和引腳數(shù)量,以最小的硬件變化來滿足個(gè)性化的應(yīng)用需求。本課件是可編輯的正常PPT課件LQFP也就是薄型QFP(Low-profileQuadFlatPackage)指封裝本體厚度為1.4mm的QFP,是日本電子機(jī)械工業(yè)會制定的新QFP外形規(guī)格所用的名稱。QFP封裝:這種技術(shù)的中文含義叫四方扁平式封裝技術(shù)(QuadFlatPackage),該技術(shù)實(shí)現(xiàn)的CPU芯片引腳之間距離很小,管腳很細(xì)。一般大規(guī)?;虺笠?guī)模集成電路采用這種封裝形式,其引腳數(shù)一般都在100以上。該技術(shù)封裝CPU時(shí)操作方便,可靠性高;而且其封裝外形尺寸較小,寄生參數(shù)減小,適合高頻應(yīng)用;該技術(shù)主要適合用SMT表面貼裝技術(shù)在PCB上安裝布線。本課件是可編輯的正常PPT課件LFBGA封裝:也就是薄型FBGAFBGA(Fine-PitchBallGridArray:細(xì)間距球柵陣列)是一種在底部有焊球的面陣引腳結(jié)構(gòu),使封裝所需的安裝面積接近于芯片尺寸。BGA是英文BallGridArrayPackage的縮寫,即球柵陣列封裝。本課件是可編輯的正常PPT課件2.3產(chǎn)品介紹基本型:STM32F101R6,STM32F101C8,STM32F101R8,STM32F101V8,STM32F101RB,STM32F101VB增強(qiáng)型:STM32F103C8,STM32F103R8,STM32F103V8,STM32F103RB,STM32F103VB,STM32F103VE,STM32F103ZE本課件是可編輯的正常PPT課件STM32型號的說明以STM32F103RBT6這個(gè)型號的芯片為例,該型號的組成為7個(gè)部分,其命名規(guī)則如下:STM32:STM32代表ARMCortex-M3內(nèi)核的32位微控制器。F:F代表芯片子系列。103:103代表增強(qiáng)型系列。R:R這一項(xiàng)代表引腳數(shù),其中T代表36腳,C代表48腳,R代表64腳,V代表100腳,Z代表144腳。B:B這一項(xiàng)代表內(nèi)嵌Flash容量,其中6代表32K字節(jié)Flash,8代表64K字節(jié)Flash,B代表128K字節(jié)Flash,C代表256K字節(jié)Flash,D代表384K字節(jié)Flash,E代表512K字節(jié)Flash。T:T這一項(xiàng)代表封裝,其中H代表BGA封裝,T代表LQFP封裝,U代表VFQFPN封裝。6:6這一項(xiàng)代表工作溫度范圍,其中6代表-40---85℃,

7代表-40---105℃。本課件是可編輯的正常PPT課件STM32F103RBT6封裝引腳圖本課件是可編輯的正常PPT課件2.4STM32F103性能STM32F系列屬于中低端的32位ARM微控制器,該系列芯片是意法半導(dǎo)體(ST)公司出品,其內(nèi)核是Cortex-M3。該系列芯片按片內(nèi)Flash的大小可分為三大類:小容量(16K和32K)、中容量(64K和128K)、大容量(256K、384K和512K)。芯片集成有USB,CAN,最多8個(gè)定時(shí)器,2個(gè)ADC,SPI,IIC,USB,UART等多種功能。本課件是可編輯的正常PPT課件2.4STM32F103性能內(nèi)核:ARM32位Cortex-M3CPU,最高工作頻率72MHz,1.25DMIPS/MHz。單周期乘法和硬件除法。存儲器:片上集成32~512KB的Flash存儲器。6~

64KB的SRAM存儲器。時(shí)鐘、復(fù)位和電源管理:2.0~

3.6V的電源供電和I/O接口的驅(qū)動電壓;上電/斷電復(fù)位;4~16MHz的晶振;內(nèi)嵌出廠前調(diào)校的8MHzRC振蕩電路;內(nèi)部40kHz的RC振蕩電路;用于CPU時(shí)鐘的PLL(PhaseLockedLoop,鎖相環(huán));帶校準(zhǔn)用于RTC(real-timeclock)的32kHz的晶振??删幊屉妷簷z測(PVD)。低功耗:3種低功耗模式:休眠,停止,待機(jī)模式。為RTC和備份寄存器供電的VBAT(電池引腳)。調(diào)試模式:串行調(diào)試(SWD)和JTAG接口。DMA(DirectMemoryAccess):12通道DMA控制器。支持的外設(shè):定時(shí)器,ADC,DAC,SPI,IIC和UART。2個(gè)12位的us級的A/D轉(zhuǎn)換器(16通道):A/D測量范圍:0-3.6V。雙采樣和保持能力。片上集成一個(gè)溫度傳感器。本課件是可編輯的正常PPT課件2.4STM32F103性能2通道12位D/A轉(zhuǎn)換器:STM32F103xC,STM32F103xD,STM32F103xE獨(dú)有。最多高達(dá)112個(gè)的快速I/O端口:根據(jù)型號的不同,有26,37,51,80,和112的I/O端口,所有的端口都可以映射到16個(gè)外部中斷向量。除了模擬輸入,所有的都可以接受5V以內(nèi)的輸入。最多多達(dá)11個(gè)定時(shí)器:4個(gè)16位定時(shí)器,每個(gè)定時(shí)器有4個(gè)IC/OC/PWM或者脈沖計(jì)數(shù)器。2個(gè)16位的6通道高級控制定時(shí)器:最多6個(gè)通道可用于PWM輸出。2個(gè)看門狗定時(shí)器(獨(dú)立看門狗和窗口看門狗)。Systick定時(shí)器:24位倒計(jì)數(shù)器。2個(gè)16位基本定時(shí)器用于驅(qū)動DAC。最多多達(dá)13個(gè)通信接口:2個(gè)IIC接口。5個(gè)USART接口。3個(gè)SPI接口,兩個(gè)和IIS復(fù)用。CAN接口(2.0B)。USB2.0全速接口。SDIO接口。ECOPACK封裝:STM32F103xx系列微控制器采用ECOPACK封裝形式(一種無鉛的BGA封裝)。本課件是可編輯的正常PPT課件2.5應(yīng)用返回本課件是可編輯的正常PPT課件練習(xí)題1-1國內(nèi)普遍認(rèn)同的嵌入式系統(tǒng)定義是什么?1-2嵌入式系統(tǒng)有哪些重要特征?1-3普林斯頓結(jié)構(gòu)和哈佛結(jié)構(gòu)分別有什么特點(diǎn)?1-4計(jì)算機(jī)指令系統(tǒng)分為哪兩種?1-5根據(jù)應(yīng)用不同,嵌入式處理器分成哪幾類?1-6嵌入式系統(tǒng)的發(fā)展歷程,大致經(jīng)歷了哪幾個(gè)個(gè)階段?1-7嵌入式系統(tǒng)未來的發(fā)展趨勢是什么?1-82007年6月()公司宣布了她的第一款基于()內(nèi)核的STM32微控制器系列產(chǎn)品。1-9Cortex-M3CPU的最高工作頻率是多少?1-10什么是三級流水線?1-11大端模式和小端模式存放數(shù)據(jù)有什么不同?1-12STM32F103RBT6這個(gè)型號的芯片有多少引腳?片內(nèi)存儲器容量是多少?1-13STM32F103內(nèi)部集成了哪些資源?本課件是可編輯的正常PPT課件STM32

微控制器原理及應(yīng)用本課件是可編輯的正常PPT課件第二章STM32結(jié)構(gòu)【本章教學(xué)目標(biāo)】嵌入式系統(tǒng)的定義與特點(diǎn)嵌入式微處理器分類嵌入式系統(tǒng)的發(fā)展和應(yīng)用STM32微控制器系列產(chǎn)品特點(diǎn)STM32F103主要性能本課件是可編輯的正常PPT課件主要內(nèi)容2.1STM32系統(tǒng)結(jié)構(gòu)2.1.1Cortex-M3的內(nèi)部結(jié)構(gòu)2.1.2STM32的總線結(jié)構(gòu)2.2STM32存儲器組織2.2.1STM32存儲器映射2.2.2位段操作2.3STM32內(nèi)部資源2.3.1STM32功能結(jié)構(gòu)2.3.2STM32的引腳分布2.4STM32最小系統(tǒng)2.4.1電源電路2.4.2時(shí)鐘電路2.4.3復(fù)位電路2.4.4啟動電路本課件是可編輯的正常PPT課件2.1STM32系統(tǒng)結(jié)構(gòu)2.1.1Cortex-M3的內(nèi)部結(jié)構(gòu)由ARM公司推出的AMBA片上總線已經(jīng)成為一種主流的工業(yè)片上結(jié)構(gòu),AMBA規(guī)范主要包括AHB系統(tǒng)總線(AdvancedHighperformanceBus)和APB外設(shè)總線(AdvancedPeripheralBus),二者分別適用于高速與相對低速設(shè)備的連接。CM3包含5個(gè)總線,即I-Code總線、D-Code總線、系統(tǒng)總線、外部專用外設(shè)總線和內(nèi)部專用外設(shè)總線,CM3內(nèi)部結(jié)構(gòu)及總線連接如圖2-1所示。本課件是可編輯的正常PPT課件圖2-1CM3內(nèi)部結(jié)構(gòu)及總線連接圖本課件是可編輯的正常PPT課件2.1.2STM32的總線結(jié)構(gòu)STM32的總線結(jié)構(gòu)如圖2-2所示,STM32總線由以下部分構(gòu)成4個(gè)驅(qū)動單元:Cortex-M3內(nèi)核ICode總線(I-bus)、DCode總線(D-bus)、系統(tǒng)總線(S-bus)、通用DMA1和通用DMA2。4個(gè)被動單元:內(nèi)部SRAM、內(nèi)部閃存Flash、FSMC、AHB到APB的橋(AHB2APBx,連接所有的APB設(shè)備)ICode總線:將CM3內(nèi)核的指令總線與Flash存儲器指令接口相連接,用于指令預(yù)取。DCode總線:將CM3內(nèi)核DCode總線與Flash存儲器數(shù)據(jù)接口相連接,用于常量加載和調(diào)試訪問。System總線:將CM3內(nèi)核的System總線(外設(shè)總線)連接到總線矩陣,用于訪問內(nèi)存和外設(shè),包括SRAM、片上外設(shè)、片外RAM、片外擴(kuò)展設(shè)備以及系統(tǒng)級存儲區(qū)的部分空間。DMA總線:將DMA的AHB主控接口與總線矩陣相聯(lián),總線矩陣協(xié)調(diào)CPU的DCode和DMA到SRAM、閃存和外設(shè)的訪問。本課件是可編輯的正常PPT課件圖2-2STM32的總線結(jié)構(gòu)圖本課件是可編輯的正常PPT課件2.2 STM32存儲器組織2.2.1STM32存儲器映射STM32將可訪問的存儲器空間分成8個(gè)主塊,每個(gè)塊為0.5GB即512MB,其他未分配給片上存儲器和外設(shè)存儲器空間都是保留的地址空間。STM32存儲器映射圖如圖2-3所示,4GB的線性地址空間內(nèi),尋址空間被分成8個(gè)主塊:block0~block7,每塊512MB。 片內(nèi)Flash:0x00000000~0x1FFFFFFF,用于存放程序、表格和常數(shù); 片內(nèi)SRAM:0x20000000~0x3FFFFFFF,用于存放程序中間變量與數(shù)據(jù); 片上外設(shè)區(qū):0x40000000~0x5FFFFFFF,用于片上外設(shè)。本課件是可編輯的正常PPT課件2.2.2位段操作MCS-51有位操作,STM32沒有位操作,而是通過位段區(qū)、位段別名區(qū)實(shí)現(xiàn)位操作即位段操作。CM3中支持位段操作的地址區(qū)稱為位段區(qū)。在尋址空間的另一地方,有一個(gè)“位段別名區(qū)”空間,從這個(gè)地址開始處,每一個(gè)字(32位)對應(yīng)位段區(qū)的一位;在位段區(qū)中,每一位都映射到位段別名區(qū)的一個(gè)字,對位段別名區(qū)的訪問最終會變換成對位段區(qū)的訪問。CM3存儲器空間包括2個(gè)位段(bitband)區(qū),該位段區(qū)分別與2個(gè)32M的位段別名(bitbandAlias)區(qū)對應(yīng),位段區(qū)中的每一位映射到位段別名區(qū)中的一個(gè)字,通過對位段別名區(qū)中某個(gè)字的讀/寫操作可實(shí)現(xiàn)對位段區(qū)中某一個(gè)位的讀/寫操作。位段區(qū)與位段別名區(qū)的映射關(guān)系如圖2-4所示。本課件是可編輯的正常PPT課件圖2-4位段區(qū)與位段別名區(qū)的映射關(guān)系圖本課件是可編輯的正常PPT課件2.3STM32內(nèi)部資源2.3.1STM32功能結(jié)構(gòu)STM32內(nèi)部總線和兩條APB總線將片上系統(tǒng)和外設(shè)資源緊密地連接起來,其中內(nèi)部總線是主系統(tǒng)總線,連接CPU、存儲器和系統(tǒng)時(shí)鐘等。APB1總線連接速率較低的外設(shè),APB2總線連接速率較高的外設(shè),如系統(tǒng)通用外設(shè)和中斷控制等。GPIO端口包括PA、PB、PC、PD、PE、PF和PG7個(gè)16位的GPIO端口,其它外設(shè)接口引腳都和GPIO端口的引腳功能復(fù)用,AF表示功能復(fù)用引腳。STM32F1xx系列內(nèi)部結(jié)構(gòu)框圖如圖2-5所示,不同型號的具體配置有所不同。本課件是可編輯的正常PPT課件STM32F1xx系列微控制器外設(shè)資源配置表本課件是可編輯的正常PPT課件本課件是可編輯的正常PPT課件2.3.2STM32的引腳分布STM32F103系列有最多7個(gè)16位的并行I/O端口:PA、PB、PC、PD、PE、PF和PG,既可作為輸入,也可作為輸出;既可按16位(半字)處理,也可按位處理。STM32F1xx系列微控制器引腳分布圖如圖2-6所示,這是一個(gè)標(biāo)準(zhǔn)的144引腳LQFP(Low-profileQuadFlatPackage)封裝的芯片。圖2-7是STM32芯片實(shí)物圖,它是512KB閃存100引腳的STM32F103VET6芯片。本課件是可編輯的正常PPT課件圖2-6STM32系列微控制器引腳分布圖圖2-7STM32F103VET6芯片實(shí)物圖本課件是可編輯的正常PPT課件2.4STM32最小系統(tǒng)嵌入式系統(tǒng)的最小系統(tǒng)是指以某一微處理器為核心,可滿足其正常工作的組成部分,主要包括五個(gè)部分:電源電路、時(shí)鐘電路、復(fù)位電路、啟動電路、下載調(diào)試電路。本課件是可編輯的正常PPT課件2.4.1電源電路STM32微處理器的工作電壓(VDD)為2.0~3.6V,通過內(nèi)置電壓調(diào)節(jié)器為內(nèi)核、內(nèi)存和片上外設(shè)提供所需的1.8V電源,因此,STM32的內(nèi)核電壓是1.8V,I/O端口電壓是3.3V。當(dāng)主電源VDD掉電后,通過VBAT引腳為實(shí)時(shí)時(shí)鐘(RTC)和備份寄存器提供電源。本課件是可編輯的正常PPT課件開發(fā)板上可以DC5V,或者USB5V,一般用電腦USB口供電。

R1:保險(xiǎn)電阻,

C1、C2:濾波電容,

AMS1117-3.3:把5V轉(zhuǎn)換成3.3V.本課件是可編輯的正常PPT課件2.4.2時(shí)鐘電路STM32系列微控制器有一個(gè)非常復(fù)雜的時(shí)鐘系統(tǒng),由以下4個(gè)獨(dú)立時(shí)鐘源組成:高速內(nèi)部時(shí)鐘HSI(HighSpeedInternal):內(nèi)部RC振蕩器產(chǎn)生8MHz的頻率,可直接作為系統(tǒng)時(shí)鐘SYSCLK或在2分頻后作為PLL輸入,但精度不高,不夠穩(wěn)定;高速外部時(shí)鐘HSE(HighSpeedExternal):可接晶振/陶瓷諧振器,或外部時(shí)鐘源,頻率范圍為4MHz~16MHz,常用值為8MHz;精度高;低速內(nèi)部時(shí)鐘LSI(LowSpeedInternal):內(nèi)部RC振蕩器可產(chǎn)生30~60KHz的頻率;低速外部時(shí)鐘LSE(LowSpeedExternal):外接32.768KHz的晶振,主要供給實(shí)時(shí)時(shí)鐘RTC。鎖相環(huán)倍頻輸出PLL(PhaseLockedLoop)時(shí)鐘輸入源可選擇為HSI/2、HSE或HSE/2,倍頻可選擇為2~16倍,但其輸出頻率最大不超過72MHz。本課件是可編輯的正常PPT課件本課件是可編輯的正常PPT課件一般開發(fā)板上的外接時(shí)鐘電路本課件是可編輯的正常PPT課件本課件是可編輯的正常PPT課件2.4.3復(fù)位電路STM32F1xx支持三種復(fù)位形式,分別為系統(tǒng)復(fù)位、電源復(fù)位和備份區(qū)域復(fù)位。

本課件是可編輯的正常PPT課件2.4.4啟動電路STM32F1xx通過設(shè)置BOOT[1:0]引腳選擇3種不同的啟動模式。通過設(shè)置BOOT[1:0]引腳,各種不同啟動模式對應(yīng)的存儲器物理地址將被映射到啟動空間。本課件是可編輯的正常PPT課件2.4.5下載電路開發(fā)板支持JTAG下載和串口下載JTAG下載。JTAG一端接電腦,另一端接開發(fā)板本課件是可編輯的正常PPT課件串口下載

PL2303:USB轉(zhuǎn)串口本課件是可編輯的正常PPT課件練習(xí)題2-1Cortex-M3包含哪些總線?2-2STM32微處理器有哪些低功耗模式?2-3什么是嵌入式系統(tǒng)的最小系統(tǒng)?2-4STM32最小系統(tǒng)主要包括哪些電路?2-5STM32存儲器映射空間有哪些?2-6STM32系列有哪些時(shí)鐘源?為什么需要多個(gè)時(shí)鐘源?2-7STM32系列微控制器有哪些啟動模式?2-8外設(shè)時(shí)鐘如何產(chǎn)生?2-9APB1時(shí)鐘樹上接了哪些外設(shè)?2-10APB2時(shí)鐘樹上接了哪些外設(shè)?本課件是可編輯的正常PPT課件第三章

基于STM32固件函數(shù)庫的程序設(shè)計(jì)基礎(chǔ)STM32微控制器原理及應(yīng)用本課件是可編輯的正常PPT課件【本章教學(xué)目標(biāo)】通過本章的學(xué)習(xí)能夠:了解C語言關(guān)鍵字、運(yùn)算符、預(yù)處理等符號的含義了解標(biāo)準(zhǔn)固件函數(shù)庫中的數(shù)據(jù)類型和函數(shù)命名規(guī)則了解RCC寄存器結(jié)構(gòu)與RCC庫函數(shù)掌握配置時(shí)鐘的程序設(shè)計(jì)方法了解STM32工程文件結(jié)構(gòu)本課件是可編輯的正常PPT課件主要內(nèi)容3.1C語言知識簡介3.1.1C語言關(guān)鍵字3.1.2運(yùn)算符3.1.3預(yù)處理3.2STM32標(biāo)準(zhǔn)固件庫3.2.1標(biāo)準(zhǔn)固件庫中的數(shù)據(jù)類型3.2.2固件庫命名規(guī)則3.2.3固件函數(shù)庫文件描述3.3時(shí)鐘控制3.3.1RCC寄存器結(jié)構(gòu)3.3.2RCC庫函數(shù)3.3.3時(shí)鐘配置程序設(shè)計(jì)3.4STM32工程文件結(jié)構(gòu)本課件是可編輯的正常PPT課件3.1C語言知識簡介3.1.1C語言關(guān)鍵字3.1.2運(yùn)算符3.1.3預(yù)處理本課件是可編輯的正常PPT課件3.1.1C語言關(guān)鍵字ANSIC標(biāo)準(zhǔn)C語言共有32個(gè)關(guān)鍵字,9種控制語句,區(qū)分大小寫。C語言可以像匯編語言一樣對位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元。auto:聲明自動變量char:聲明字符型變量或函數(shù)返回值類型const:聲明只讀變量double:聲明雙精度浮點(diǎn)型變量或函數(shù)返回值類型enum:聲明枚舉類型extern:聲明變量或函數(shù)是在其它文件或本文件的其他位置定義float:聲明浮點(diǎn)型變量或函數(shù)返回值類型int:聲明整型變量或函數(shù)long:聲明長整型變量或函數(shù)返回值類型本課件是可編輯的正常PPT課件關(guān)鍵字register:聲明寄存器變量short:聲明短整型變量或函數(shù)signed:聲明有符號類型變量或函數(shù)sizeof:計(jì)算數(shù)據(jù)類型或變量長度(即所占字節(jié)數(shù))static:聲明靜態(tài)變量struct:聲明結(jié)構(gòu)體類型typedef:用以給數(shù)據(jù)類型取別名unsigned:聲明無符號類型變量或函數(shù)union:聲明共用體類型volatile:說明變量在程序執(zhí)行中可被隱含地改變本課件是可編輯的正常PPT課件關(guān)鍵字break:跳出當(dāng)前循環(huán)case:開關(guān)語句分支continue:結(jié)束當(dāng)前循環(huán),開始下一輪循環(huán)default:開關(guān)語句中的“默認(rèn)”分支do:循環(huán)語句的循環(huán)體else:條件語句否定分支(與if連用)for:一種循環(huán)語句goto:無條件跳轉(zhuǎn)語句if:條件語句return:子程序返回語句(可以帶參數(shù),也可不帶參數(shù))switch:用于開關(guān)語句void:聲明函數(shù)無返回值或無參數(shù),聲明無類型指針while:循環(huán)語句的循環(huán)條件

本課件是可編輯的正常PPT課件struct:聲明結(jié)構(gòu)體類型本課件是可編輯的正常PPT課件1.什么是結(jié)構(gòu)體?結(jié)構(gòu)體是一種工具,用這個(gè)工具可以定義自己的數(shù)據(jù)類型。結(jié)構(gòu)體屬于構(gòu)造數(shù)據(jù)類型。2.結(jié)構(gòu)體與數(shù)組的比較(1)都由多個(gè)元素組成(2)各個(gè)元素在內(nèi)存中的存儲空間是連續(xù)的(3)數(shù)組中各個(gè)元素的數(shù)據(jù)類型相同,而結(jié)構(gòu)體中的各個(gè)元素的數(shù)據(jù)類型可以不相同本課件是可編輯的正常PPT課件例如//也可以用typedef創(chuàng)建新類型typedef

struct{

int

a;

char

b;

double

c;

}

Simple2;//可以用Simple2作為類型聲明新的結(jié)構(gòu)體變量Simple2

u1,

*u3;//給結(jié)構(gòu)體成員賦值u1.a=1;u1.b=2;u3->a=3;u3->b=4;本課件是可編輯的正常PPT課件3.1.2運(yùn)算符算術(shù)運(yùn)算符用于各類數(shù)值運(yùn)算。包括加(+)、減(-)、乘(*)、除(/)、求余(或稱模運(yùn)算,%)、自增(++)、自減(--)共七種。關(guān)系運(yùn)算符用于比較運(yùn)算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六種。邏輯運(yùn)算符用于邏輯運(yùn)算。包括與(&&)、或(||)、非(!)三種。位操作運(yùn)算符參與運(yùn)算的量,按二進(jìn)制位進(jìn)行運(yùn)算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。本課件是可編輯的正常PPT課件賦值運(yùn)算符用于賦值運(yùn)算,分為簡單賦值(=)、復(fù)合算術(shù)賦值(+=,-=,*=,/=,%=)和復(fù)合位運(yùn)算賦值(&=,|=,^=,>>=,<<=)三類共十一種。條件運(yùn)算符這是一個(gè)三目運(yùn)算符,用于條件求值(?:)。逗號運(yùn)算符用于把若干表達(dá)式組合成一個(gè)表達(dá)式(,)。指針運(yùn)算符用于取內(nèi)容(*)和取地址(&)二種運(yùn)算。求字節(jié)數(shù)運(yùn)算符用于計(jì)算數(shù)據(jù)類型所占的字節(jié)數(shù)(sizeof)。特殊運(yùn)算符有括號(),下標(biāo)[],成員(→,.)等幾種。本課件是可編輯的正常PPT課件3.1.3預(yù)處理程序設(shè)計(jì)語言的預(yù)處理的概念:在編譯之前進(jìn)行的處理。C語言的預(yù)處理主要有三個(gè)方面的內(nèi)容:1.宏定義;2.文件包含;3.條件編譯。預(yù)處理命令以符號“#”開頭。本課件是可編輯的正常PPT課件預(yù)處理

宏定義1.不帶參數(shù)的宏定義:宏定義又稱為宏代換、宏替換,簡稱“宏”。格式:#define標(biāo)識符文本例如:

#definePI3.1415926把程序中全部的標(biāo)識符PI換成3.14159262.帶參數(shù)的宏:除了一般的字符串替換,還要做參數(shù)代換格式:#define

宏名(參數(shù)表)文本例如:#defineS(a,b)a*barea=S(3,2);第一步被換為area=a*b;,第二步被換為area=3*2;本課件是可編輯的正常PPT課件預(yù)處理

文件包含一個(gè)文件包含另一個(gè)文件的內(nèi)容格式:#include"文件名"或#include<文件名>被包含的文件又被稱為“標(biāo)題文件”或“頭部文件”、“頭文件”,并且常用.h作擴(kuò)展名。編譯時(shí)以包含處理以后的文件為編譯單位,被包含的文件是源文件的一部分。編譯以后只得到一個(gè)目標(biāo)文件.obj(.hex)本課件是可編輯的正常PPT課件預(yù)處理

條件編譯有些語句希望在條件滿足時(shí)才編譯。格式:(1)#ifdef

標(biāo)識符程序段1#else程序段2#endif或#ifdef標(biāo)識符程序段1#endif當(dāng)標(biāo)識符已經(jīng)定義時(shí),程序段1才參加編譯。本課件是可編輯的正常PPT課件預(yù)處理

條件編譯格式:(2)#ifndef

標(biāo)識符#define標(biāo)識1程序段1#endif如果標(biāo)識符沒有被定義,則重定義標(biāo)識1,且執(zhí)行程序段1。本課件是可編輯的正常PPT課件3.2STM32標(biāo)準(zhǔn)固件庫FWlib(firmwarelibrary)固件庫是一個(gè)固件函數(shù)包,它由程序、數(shù)據(jù)結(jié)構(gòu)和宏組成,包括了微控制器所有外設(shè)的性能特征。該函數(shù)庫還包括每一個(gè)外設(shè)的驅(qū)動描述和應(yīng)用實(shí)例。通過使用本固件函數(shù)庫,無需深入掌握細(xì)節(jié),用戶也可以輕松應(yīng)用每一個(gè)外設(shè)。因此,使用本固態(tài)函數(shù)庫可以大大減少用戶的程序編寫時(shí)間,進(jìn)而降低開發(fā)成本。每個(gè)外設(shè)驅(qū)動都由一組函數(shù)組成,這組函數(shù)覆蓋了該外設(shè)所有功能。每個(gè)器件的開發(fā)都由一個(gè)通用API(applicationprogramminginterface應(yīng)用編程界面)驅(qū)動,API對該驅(qū)動程序的結(jié)構(gòu),函數(shù)和參數(shù)名稱都進(jìn)行了標(biāo)準(zhǔn)化?,F(xiàn)在用的標(biāo)準(zhǔn)固件庫版本是stm32固件庫V3.5本課件是可編輯的正常PPT課件3.2.1標(biāo)準(zhǔn)固件庫中的數(shù)據(jù)類型固態(tài)函數(shù)庫定義了24個(gè)變量類型,它們的類型和大小是固定的。typedefsignedlongs32;typedefsignedshorts16;typedefsignedchars8;typedefsignedlongconstsc32;/*ReadOnly*/typedefsignedshortconstsc16;/*ReadOnly*/typedefsignedcharconstsc8;/*ReadOnly*/typedefvolatilesignedlongvs32;typedefvolatilesignedshortvs16;typedefvolatilesignedcharvs8;typedefvolatilesignedlongconstvsc32;/*ReadOnly*/typedefvolatilesignedshortconstvsc16;/*ReadOnly*/typedefvolatilesignedcharconstvsc8;/*ReadOnly*/本課件是可編輯的正常PPT課件typedefunsignedlongu32;typedefunsignedshortu16;typedefunsignedcharu8;typedefunsignedlongconstuc32;/*ReadOnly*/typedefunsignedshortconstuc16;/*ReadOnly*/typedefunsignedcharconstuc8;/*ReadOnly*/typedefvolatileunsignedlongvu32;typedefvolatileunsignedshortvu16;typedefvolatileunsignedcharvu8;typedefvolatileunsignedlongconstvuc32;/*ReadOnly*/typedefvolatileunsignedshortconstvuc16;/*ReadOnly*/typedefvolatileunsignedcharconstvuc8;/*ReadOnly*/本課件是可編輯的正常PPT課件布爾形變量在文件stm32f10x_type.h中,布爾形變量被定義如下:typedefenum{ FALSE=0, TRUE=!FALSE}bool;本課件是可編輯的正常PPT課件標(biāo)志位類型在文件stm32f10x_type.h中,定義標(biāo)志位類型(FlagStatustype)的2個(gè)可能值為“設(shè)置”與“重置”(SETorRESET)。typedefenum{ RESET=0, SET=!RESET}FlagStatus;本課件是可編輯的正常PPT課件功能狀態(tài)類型在文件stm32f10x_type.h中,定義了功能狀態(tài)類型(FunctionalStatetype)的2個(gè)可能值為“使能”與“失能”(ENABLEorDISABLE)。typedefenum{ DISABLE=0, ENABLE=!DISABLE}FunctionalState;本課件是可編輯的正常PPT課件錯誤狀態(tài)類型在文件stm32f10x_type.h中,定義了錯誤狀態(tài)類型(ErrorStatustype)的2個(gè)可能值為“成功”與“出錯”(SUCCESSorERROR)。typedefenum{ ERROR=0, SUCCESS=!ERROR}ErrorStatus;本課件是可編輯的正常PPT課件3.2.2固件庫命名規(guī)則系統(tǒng)、源程序文件和頭文件命名都以“stm32f10x_”作為開頭,例如:stm32f10x_conf.h。外設(shè)函數(shù)的命名以該外設(shè)的縮寫加下劃線為開頭。每個(gè)單詞的第一個(gè)字母都由英文字母大寫書寫,例如:SPI_SendData在函數(shù)名中,只允許存在一個(gè)下劃線,用以分隔外設(shè)縮寫和函數(shù)名的其它部分。名為PPP_Init的函數(shù),其功能是根據(jù)PPP_InitTypeDef中指定的參數(shù),初始化外設(shè)PPP。名為PPP_StructInit的函數(shù),其功能為通過設(shè)置PPP_InitTypeDef結(jié)構(gòu)中的各種參數(shù)來定義外設(shè)的功能,

例如:USART_StructInit名為PPP_Cmd的函數(shù),其功能為使能或者失能外設(shè)PPP,例如:SPI_Cmd.本課件是可編輯的正常PPT課件本課件是可編輯的正常PPT課件外設(shè)縮寫PPP表示任一外設(shè)縮寫,例如:ADC。ADC模數(shù)轉(zhuǎn)換器BKP備份寄存器CAN控制器局域網(wǎng)模塊DMA直接內(nèi)存存取控制器EXTI外部中斷事件控制器FLASH閃存存儲器GPIO通用輸入輸出I2C內(nèi)部集成電路本課件是可編輯的正常PPT課件IWDG獨(dú)立看門狗NVIC嵌套中斷向量列表控制器PWR電源/功耗控制RCC復(fù)位與時(shí)鐘控制器RTC實(shí)時(shí)時(shí)鐘SPI串行外設(shè)接口SysTick系統(tǒng)嘀嗒定時(shí)器TIM通用定時(shí)器TIM1高級控制定時(shí)器USART通用同步異步接收發(fā)射端WWDG窗口看門狗本課件是可編輯的正常PPT課件3.2.3固件函數(shù)庫文件描述main.c----主函數(shù)體示例。stm32f10x_it.h----頭文件,包含所有中斷處理函數(shù)原形stm32f10x_it.c----外設(shè)中斷函數(shù)文件。用戶可以加入自己的中斷程序代碼。對于指向同一個(gè)中斷向量的多個(gè)不同中斷請求,可以利用函數(shù)通過判斷外設(shè)的中斷標(biāo)志位來確定準(zhǔn)確的中斷源。固件函數(shù)庫提供了這些函數(shù)的名稱。stm32f10x_ppp.c----由C語言編寫的外設(shè)PPP的驅(qū)動源程序文件。stm32f10x_ppp.h----外設(shè)PPP的頭文件。包含外設(shè)PPP函數(shù)的定義,和這些函數(shù)使用的變量。本課件是可編輯的正常PPT課件3.3時(shí)鐘控制在STM32中,有五個(gè)時(shí)鐘源:HSI、HSE、LSI、LSE、PLL。①HSI是高速內(nèi)部時(shí)鐘,RC振蕩器,頻率為8MHz。②HSE是高速外部時(shí)鐘,可接石英/陶瓷諧振器,或者接外部時(shí)鐘源,頻率范圍為4MHz~16MHz。

③LSI是低速內(nèi)部時(shí)鐘,RC振蕩器,頻率為40kHz。④LSE是低速外部時(shí)鐘,接頻率為32.768kHz的石英晶體。⑤PLL為鎖相環(huán)倍頻輸出,其時(shí)鐘輸入源可選擇為HSI/2、HSE或者HSE/2。倍頻可選擇為2~16倍,但是其輸出頻率最大不得超過72MHz。本課件是可編輯的正常PPT課件本課件是可編輯的正常PPT課件3.3.1RCC寄存器結(jié)構(gòu)時(shí)鐘配置是與RCC寄存器密切聯(lián)系的,RCC寄存器(10個(gè))本課件是可編輯的正常PPT課件RCC寄存器結(jié)構(gòu)在文件“stm32f10x_map.h”中,RCC_TypeDef定義如下:typedefstruct{vu32CR;vu32CFGR;vu32CIR;vu32APB2RSTR;vu32APB1RSTR;vu32AHBENR;vu32APB2ENR;vu32APB1ENR;vu32BDCR;vu32CSR;}RCC_TypeDef;本課件是可編輯的正常PPT課件RCC外設(shè)聲明如下:#ifdef_RCCEXTRCC_TypeDef*RCC;#endif例如,若要使能外設(shè)GPIOC時(shí)鐘,可以直接給寄存器APB2ENR的D4位“置1”實(shí)現(xiàn)。RCC->APB2ENR=0x01<<4;本課件是可編輯的正常PPT課件3.3.2RCC庫函數(shù)本課件是可編輯的正常PPT課件本課件是可編輯的正常PPT課件本課件是可編輯的正常PPT課件函數(shù)RCC_DeInit

本課件是可編輯的正常PPT課件函數(shù)RCC_HSEConfig本課件是可編輯的正常PPT課件本課件是可編輯的正常PPT課件函數(shù)RCC_WaitForHSEStartUp本課件是可編輯的正常PPT課件本課件是可編輯的正常PPT課件函數(shù)RCC_HCLKConfig本課件是可編輯的正常PPT課件RCC_HCLK值本課件是可編輯的正常PPT課件函數(shù)RCC_PCLK2Config本課件是可編輯的正常PPT課件RCC_PCLK2值本課件是可編輯的正常PPT課件函數(shù)RCC_PCLK1Config本課件是可編輯的正常PPT課件RCC_PCLK1值本課件是可編輯的正常PPT課件函數(shù)FLASH_SetLatency本課件是可編輯的正常PPT課件FLASH_Latency值本課件是可編輯的正常PPT課件函數(shù)FLASH_PrefetchBufferCmd本課件是可編輯的正常PPT課件例:/*EnableThePrefetchBuffer*/FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);本課件是可編輯的正常PPT課件函數(shù)RCC_PLLConfig本課件是可編輯的正常PPT課件RCC_PLLSource值本課件是可編輯的正常PPT課件RCC_PLLMul值(2—16倍)本課件是可編輯的正常PPT課件警告:必須正確設(shè)置軟件,使PLL輸出時(shí)鐘頻率不超過72MHz本課件是可編輯的正常PPT課件函數(shù)RCC_PLLCmd

本課件是可編輯的正常PPT課件函數(shù)RCC_GetFlagStatus本課件是可編輯的正常PPT課件RCC_FLAG值本課件是可編輯的正常PPT課件本課件是可編輯的正常PPT課件函數(shù)RCC_SYSCLKConfig本課件是可編輯的正常PPT課件RCC_SYSCLKSource

本課件是可編輯的正常PPT課件函數(shù)RCC_GetSYSCLKSource本課件是可編輯的正常PPT課件本課件是可編輯的正常PPT課件函數(shù)RCC_APB2PeriphClockCmd

本課件是可編輯的正常PPT課件RCC_AHB2Periph值本課件是可編輯的正常PPT課件例如:使能GPIOA和GPIOB時(shí)鐘

/*EnableGPIOA,GPIOBclocks*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);本課件是可編輯的正常PPT課件3.3.3時(shí)鐘配置程序設(shè)計(jì)STM32程序的一般結(jié)構(gòu):包含頭文件定義變量函數(shù)聲明主函數(shù)初始化時(shí)鐘配置系統(tǒng)時(shí)鐘使能外設(shè)時(shí)鐘初始化外設(shè)控制程序 子函數(shù)1子函數(shù)2…… 本課件是可編輯的正常PPT課件使用HSE時(shí)鐘,程序設(shè)置時(shí)鐘參數(shù)流程1)將RCC寄存器重新設(shè)置為默認(rèn)值

RCC_DeInit;2)打開外部高速時(shí)鐘晶振HSE

RCC_HSEConfig(RCC_HSE_ON);3)等待外部高速時(shí)鐘晶振工作

HSEStartUpStatus=RCC_WaitForHSEStartUp();4)設(shè)置AHB時(shí)鐘

RCC_HCLKConfig;5)設(shè)置高速AHB時(shí)鐘

RCC_PCLK2Config;6)設(shè)置低速AHB時(shí)鐘

RCC_PCLK1Config;7)設(shè)置PLL

RCC_PLLConfig;8)打開PLL

RCC_PLLCmd(ENABLE);9)等待PLL工作

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)10)設(shè)置系統(tǒng)時(shí)鐘

RCC_SYSCLKConfig;11)判斷是否PLL是系統(tǒng)時(shí)鐘

while(RCC_GetSYSCLKSource()!=0x08)12)打開要使用的外設(shè)時(shí)鐘

RCC_APB2PeriphClockCmd()/RCC_APB1PeriphClockCmd()本課件是可編輯的正常PPT課件系統(tǒng)時(shí)鐘初始化函數(shù)的實(shí)現(xiàn)下面是STM32軟件固件庫的程序中對RCC的配置函數(shù)(使用外部8MHz晶振):voidRCC_Configuration(void)

{/*將外設(shè)RCC寄存器重設(shè)為缺省值*/ RCC_DeInit();

/*設(shè)置外部高速晶振(HSE)*/ RCC_HSEConfig(RCC_HSE_ON);//RCC_HSE_ON,HSE晶振打開(ON)/*等待HSE起振*/ HSEStartUpStatus=RCC_WaitForHSEStartUp();

if(HSEStartUpStatus==SUCCESS)

//SUCCESS:HSE晶振穩(wěn)定且就緒{/*設(shè)置AHB時(shí)鐘(HCLK)*/ RCC_HCLKConfig(RCC_SYSCLK_Div1);//RCC_SYSCLK_Div1——AHB時(shí)鐘=系統(tǒng)時(shí)鐘

/*設(shè)置高速AHB時(shí)鐘(PCLK2)*/ RCC_PCLK2Config(RCC_HCLK_Div1);//RCC_HCLK_Div1——APB2時(shí)鐘=HCLK本課件是可編輯的正常PPT課件/*設(shè)置低速AHB時(shí)鐘(PCLK1)*/RCC_PCLK1Config(RCC_HCLK_Div2);

//RCC_HCLK_Div2——APB1時(shí)鐘=HCLK/2/*設(shè)置FLASH存儲器延時(shí)時(shí)鐘周期數(shù)*/FLASH_SetLatency(FLASH_Latency_2);

//FLASH_Latency_2,2延時(shí)周期/*選擇FLASH預(yù)取指緩存的模式,預(yù)取指緩存使能*/

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);/*設(shè)置PLL時(shí)鐘源及倍頻系數(shù)*/

RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//PLL的輸入時(shí)鐘=HSE時(shí)鐘頻率RCC_PLLMul_9,PLL輸入時(shí)鐘x9/*使能PLL*/RCC_PLLCmd(ENABLE);/*檢查指定的RCC標(biāo)志位(PLL準(zhǔn)備好標(biāo)志)設(shè)置與否*/while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)

{}/*設(shè)置系統(tǒng)時(shí)鐘(SYSCLK)*/RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

本課件是可編輯的正常PPT課件//RCC_SYSCLKSource_PLLCLK—選擇PLL作為系統(tǒng)時(shí)鐘

/*PLL返回用作系統(tǒng)時(shí)鐘的時(shí)鐘源*/while(RCC_GetSYSCLKSource()!=0x08)

//0x08:PLL作為系統(tǒng)時(shí)鐘

{}}

/*使能或者失能APB2外設(shè)時(shí)鐘*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC,ENABLE);//RCC_APB2Periph_GPIOAGPIOA時(shí)鐘

//RCC_APB2Periph_GPIOBGPIOB時(shí)鐘

//RCC_APB2Periph_GPIOCGPIOC時(shí)鐘

//RCC_APB2Periph_GPIODGPIOD時(shí)鐘}

本課件是可編輯的正常PPT課件3.4STM32工程文件結(jié)構(gòu)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論