嵌入式系統(tǒng)原理與應(yīng)用-課件全套 第1-4章 STM32 微控制器-STM32 應(yīng)用編程_第1頁
嵌入式系統(tǒng)原理與應(yīng)用-課件全套 第1-4章 STM32 微控制器-STM32 應(yīng)用編程_第2頁
嵌入式系統(tǒng)原理與應(yīng)用-課件全套 第1-4章 STM32 微控制器-STM32 應(yīng)用編程_第3頁
嵌入式系統(tǒng)原理與應(yīng)用-課件全套 第1-4章 STM32 微控制器-STM32 應(yīng)用編程_第4頁
嵌入式系統(tǒng)原理與應(yīng)用-課件全套 第1-4章 STM32 微控制器-STM32 應(yīng)用編程_第5頁
已閱讀5頁,還剩562頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

嵌入式系統(tǒng)應(yīng)用開發(fā)教材教學(xué)內(nèi)容第一章:STM32

微控制器..............................P1

第二章:STM32

開發(fā)工具..............................P13第四章:STM32

應(yīng)用編程.............................P87第三章:STM32基礎(chǔ)入門.............................P27第六章:STM32

巡線小車設(shè)計(jì)實(shí)訓(xùn)................

P187選學(xué)內(nèi)容:必學(xué)內(nèi)容:第五章:操作系統(tǒng)和圖像界面.........................P170嵌入式系統(tǒng)應(yīng)用開發(fā)超星學(xué)習(xí)通/mooc-ans/course/254782685.html?edit=true知識背景人類經(jīng)歷了四次工業(yè)革命。第一次工業(yè)革命,機(jī)械化:18世紀(jì)60年代~19世紀(jì)40年代,機(jī)器代替人工,1765年珍妮紡織機(jī)、1785年瓦特蒸汽機(jī)、工廠。

第二次工業(yè)革命,電氣化:19世紀(jì)最后30年和20世紀(jì)初,世界由“蒸汽時(shí)代”進(jìn)入“電氣時(shí)代”。1866年,西門子發(fā)電機(jī)。第三次工業(yè)革命,自動化:從20世紀(jì)40年代以來,在原子能、電子計(jì)算機(jī)、微電子技術(shù)、航天技術(shù)、分子生物學(xué)和遺傳工程等領(lǐng)域取得重大突破,其中最具劃時(shí)代意義的是電子計(jì)算機(jī)的迅速發(fā)展和廣泛運(yùn)用,開辟了信息時(shí)代。第四次工業(yè)革命,智能化:20世紀(jì)后期……

1

章STM32

微控制器

隨著嵌入式技術(shù)的發(fā)展,Cortex-M

系列處理器已逐步替代了

MCS-51、MSP430、AVR、PIC

等傳統(tǒng)單片機(jī)。

ST(意法半導(dǎo)體)公司的

STM32是基于Cortex-M3的

32位微控制器,STM32F103是首批推出且最受歡迎的

STM32主流微控制器系列產(chǎn)品。STM32廣泛應(yīng)用于各個(gè)領(lǐng)域,為豐富多樣的嵌入式系統(tǒng)提供了強(qiáng)大的支持。

本章首先闡述嵌入式系統(tǒng)的基本概念及ARM系列處理器發(fā)展歷程,接著全面介紹了STM32

微控制器的種類劃分,最后詳述STM32F103

的內(nèi)部結(jié)構(gòu)、外部引腳、時(shí)鐘、存儲器映像、電平、型號規(guī)格等重要的應(yīng)用知識。1946

年,世界上第一臺電子數(shù)字計(jì)算機(jī)

ENIAC

誕生。1971年,Intel4004微處理器的出現(xiàn),才使計(jì)算機(jī)可以實(shí)現(xiàn)小型化和降低制造成本。1981年,IBM使用Intel8088微處理器制造出了第一臺

PC(PersonalComputer,個(gè)人計(jì)算機(jī)),其小型、價(jià)格低和高可靠性等特點(diǎn),使計(jì)算機(jī)的應(yīng)用范圍迅速擴(kuò)大。由于個(gè)人計(jì)算機(jī)體積小,也被稱為微機(jī)。計(jì)算機(jī)逐步形成了兩個(gè)分支:通用計(jì)算機(jī)和嵌入式專用計(jì)算機(jī)。通用計(jì)算機(jī)運(yùn)算速度快,高性能、功能強(qiáng)大;而嵌入式專用計(jì)算機(jī)則只需滿足系統(tǒng)控制的要求即可。

1.嵌入式系統(tǒng)的定義2.嵌入式系統(tǒng)的組成

3.ARM

公司

ARM成為一家獨(dú)立的處理器公司,從事研發(fā)低費(fèi)用、低功耗、高性能芯片。ARM最初只有12人,因母公司財(cái)務(wù)狀況不佳,辦公室只是一間倉庫,以設(shè)計(jì)ARM處理器架構(gòu)聞名于世,技術(shù)具有性能高、成本低和能耗省的特點(diǎn),產(chǎn)品已遍及工業(yè)控制、消費(fèi)類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)。ARM自己不制造芯片,將其技術(shù)知識產(chǎn)權(quán)(IP核)授權(quán)給世界上許多著名的半導(dǎo)體廠,其中包括Intel、IBM、LG半導(dǎo)體、NEC、SONY、飛利浦、Atmel、Broadcom、CirrusLogic、Freescale、Actions等。

ARM的前身為Acorn(艾康計(jì)算機(jī)),于1978年,于英國劍橋創(chuàng)立。在1980年代晚期,蘋果計(jì)算機(jī)開始與艾康計(jì)算機(jī)合作開發(fā)新版的ARM核心。1985年,艾康計(jì)算機(jī)研發(fā)出采用精簡指令集的新處理器,名為ARM(AcornRISCMachine),又稱ARM1。因?yàn)榘涤?jì)算機(jī)的財(cái)務(wù)出現(xiàn)狀況,1990年11月27日,獲得Apple與VLSI科技的資助,分割出ARM,成為獨(dú)立子公司。參考閱讀參考閱讀

2010年6月中,蘋果公司向ARM董事會表示有意以85億美元的價(jià)格收購ARM公司,但遭到ARM董事會的拒絕。2016年7月18日,日本軟銀集團(tuán)同意以243億英鎊(約309億美元)全現(xiàn)金方式收購安謀公司。交易于2016年9月5日完成,成為軟銀集團(tuán)旗下的全資子公司。

2025年7月31日,全球芯片架構(gòu)巨頭ARM發(fā)布的第一財(cái)季財(cái)報(bào)顯示,當(dāng)期營收10.5億美元,略低于市場預(yù)期的10.6億美元;凈利潤1.3億美元,低于去年同期的2.23億美元;調(diào)整后每股收益35美分,與預(yù)期持平。2025年1月31日消息,據(jù)外電報(bào)道,蘋果今天公布了2025財(cái)年第一季度的財(cái)務(wù)業(yè)績,該季度對應(yīng)于2024年第四日歷季度。本季度,蘋果公布營收為1243億美元,季度凈利潤為363億美元,合每股攤薄收益2.40美元;去年同期,蘋果營收為1196億美元,季度凈利潤為339億美元,合每股攤薄收益2.18美元。本季度,蘋果的總收入、每股收益和服務(wù)收入均創(chuàng)下歷史新高。參考閱讀7月30日,芯片IP大廠ARM安謀CEOReneHaas表示,公司正在加大投資,計(jì)劃開發(fā)自有芯片與系統(tǒng)產(chǎn)品,這象征著ARM營運(yùn)模式開始轉(zhuǎn)型,將從單純的IP授權(quán)跨越到實(shí)體芯片市場。在收入構(gòu)成當(dāng)中,ARM版稅費(fèi)用收入達(dá)到5.85億美元,同比增長25%,主要來自ARMV9架構(gòu)在智能服務(wù)器和手機(jī)芯片快速滲透提高了收入,CSS的交易額也在上升,主要是ARM架構(gòu)芯片在數(shù)據(jù)中心的增長驅(qū)動;而許可(License)和其它收入則貢獻(xiàn)了4.68億美元,同比下滑1%參考閱讀。意法半導(dǎo)體是世界最大的半導(dǎo)體公司之一。公司2019年全年凈營收95.6億美元;毛利率38.7%;營業(yè)利潤率12.6%;凈利潤10.32億美元。參考閱讀意法半導(dǎo)體(ST)集團(tuán)于1987年成立,是由意大利的SGS微電子公司和法國Thomson半導(dǎo)體公司合并而成。1998年5月,SGS-THOMSONMicroelectronics將公司名稱改為意法半導(dǎo)體有限公司參考閱讀參考閱讀4.ARM

處理器ARM

架構(gòu)和處理器家族列表

2004

年,基于ARMv7

架構(gòu)的Cortex

系列處理器發(fā)布,同時(shí)還發(fā)布了這個(gè)新處理器系列的首款產(chǎn)品Cortex-M3

處理器,成為目前最流行的中端微控制器,先后有許多公司推出基于

Cortex-M3的微控制器,如

LuminaryMicro(流明諾瑞,2009年被

TI收購)的

Stellaris

系列、ST(意法半導(dǎo)體)公司的

STM32F103

系列等。5.STM32

微控制器分類STM32主流微控制器。STM32無線微控制器。STM32

超低功耗微控制器。STM32

高性能微控制器。STM32主流微控制器包含:STM32F0系列,STM32G0系列,STM32F1系列,STM32F3系列,STM32G4系列。

按片內(nèi)Flash容量可分為三大類:小容量(16KB和32KB)中容量(64KB和128KB)大容量(256KB、384KB和512KB)。6.STM32F103

的內(nèi)部結(jié)構(gòu)

Cortex-M3CPU。內(nèi)部SRAM存儲器,F(xiàn)lash存儲器。直接存儲器訪問控制器(DMAC)。靈活的靜態(tài)存儲器控制器(FSMC)。SDIO接口。嵌套的向量式中斷控制器(NVIC)。外部中斷/事件控制器(EXTI)。實(shí)時(shí)時(shí)鐘(RTC)和備份寄存器(BKP)。控制器局域網(wǎng)(CAN)。通用輸入輸出接口(GPIO)。定時(shí)器(TIM)。串行接口(USART、SPI、I2C、USB)。模數(shù)轉(zhuǎn)換器(ADC)、數(shù)模轉(zhuǎn)換器(DAC)。調(diào)試接口(JTAG,SW)。高級微控制器總線架構(gòu)(AMBA)。STM32F103的存儲器映像7.STM32F103

的外部引腳

8.STM32F103的I/O端口特性操作條件工作條件I/O靜態(tài)特性輸出電壓特性9.STM32系列產(chǎn)品命名

思考與練習(xí)嵌入式系統(tǒng)應(yīng)用開發(fā)教材教學(xué)內(nèi)容第一章:STM32

微控制器..............................P1

第二章:STM32

開發(fā)工具..............................P13第四章:STM32

應(yīng)用編程..............................P87第三章:STM32基礎(chǔ)入門..............................P27第六章:STM32

巡線小車設(shè)計(jì)實(shí)訓(xùn).................

P187選學(xué)內(nèi)容:必學(xué)內(nèi)容:第五章:操作系統(tǒng)和圖像界面..........................P170《嵌入式系統(tǒng)應(yīng)用開發(fā)》網(wǎng)絡(luò)課程超星學(xué)習(xí)通/mooc-ans/course/254782685.html?edit=true

2

章STM32

開發(fā)工具

2.1STM32開發(fā)工具軟件

視頻教程學(xué)習(xí)通:/mooc-ans/nodedetailcontroller/visitnodedetail?courseId=254782685&knowledgeId=1026622507&enc=&mooc2=1

2.1STM32開發(fā)工具軟件

視頻教程華信:/hxedu/w/inputVideo.do?qid=5a79a0189658e4ed0196a94f32dc7c91

2.1STM32開發(fā)工具軟件

視頻教程B站:/video/BV1naHtzDE7M/?vd_source=cfc2a2d38873ffc9d36aca55f565023e學(xué)習(xí)通華信B站學(xué)習(xí)通華信B站學(xué)習(xí)通華信B站/hxedu/w/inputVideo.do?qid=5a79a0189658e4ed0196a94f33187c93學(xué)習(xí)通/hxedu/w/inputVideo.do?qid=5a79a0189658e4ed0196a94f33347c94華信B站/mooc-ans/nodedetailcontroller/visitnodedetail?courseId=254782685&knowledgeId=1026622511&enc=&mooc2=1/hxedu/w/inputVideo.do?qid=5a79a0189658e4ed0196a94f33567c95學(xué)習(xí)通華信B站2.2STM32開發(fā)/實(shí)驗(yàn)板STM32最小系統(tǒng)板STM32Nucleo開發(fā)板STM3210E-EVAL評估板AS-07型STM32實(shí)驗(yàn)板。STM32硬件開發(fā)/實(shí)驗(yàn)板

2.2.1STM32最小系統(tǒng)板基于

STM32F103C8T6的

STM32最小系統(tǒng)板STM32F103C8T6最小系統(tǒng)Proteus仿真:STM32F103R6T6最小系統(tǒng)Proteus仿真:2.2.2STM32Nucleo開發(fā)板2.2.3STM3210E-EVAL評估板STM3210E-EVAL采用STM32F103ZxMCU的評估板學(xué)習(xí)開發(fā)評估工具-淘寶網(wǎng)/item.htm?spm=a230r.cc03ab7lXqxVR&id=583717403629&ns=1&abbucket=20#detail2.2.4AS-07型STM32實(shí)驗(yàn)板2.3STM32

的庫函數(shù)2.4思考與練習(xí)嵌入式系統(tǒng)應(yīng)用開發(fā)教材教學(xué)內(nèi)容第一章:STM32

微控制器..............................P1

第二章:STM32

開發(fā)工具..............................P13第四章:STM32

應(yīng)用編程.............................P87第三章:STM32基礎(chǔ)入門.............................P27第六章:STM32

巡線小車設(shè)計(jì)實(shí)訓(xùn)................

P187選學(xué)內(nèi)容:必學(xué)內(nèi)容:第五章:操作系統(tǒng)和圖像界面.........................P170

3

章STM32

基礎(chǔ)入門3.1 STM32的GPIOA類配置是最常見的功率放大器配置,僅由一個(gè)設(shè)置為始終保持導(dǎo)通狀態(tài)的開關(guān)晶體管組成,產(chǎn)生最小的失真和最大幅度的輸出信號。A類放大器的效率很低,接近30%。即使沒有連接輸入信號,A類放大器的級也允許相同數(shù)量的負(fù)載電流流過它,因此輸出晶體管需要大散熱器。A類放大器的電路圖如下:A類放大器推挽電路(push-pull)就是兩個(gè)不同極性晶體管間連接的輸出電路。推挽電路采用兩個(gè)參數(shù)相同的功率BJT管或MOSFET管,以推挽方式存在于電路中,各負(fù)責(zé)正負(fù)半周的波形放大任務(wù),電路工作時(shí),兩只對稱的功率開關(guān)管每次只有一個(gè)導(dǎo)通,所以導(dǎo)通損耗小效率高。推挽放大器的輸出級有兩個(gè)“臂”(兩組放大元件),一個(gè)“臂”的電流增加時(shí),另一個(gè)“臂”的電流則減小,二者的狀態(tài)輪流轉(zhuǎn)換。對負(fù)載而言,好像是一個(gè)“臂”在推,一個(gè)“臂”在拉,共同完成電流輸出任務(wù)。盡管甲類放大器可以采用推挽式放大,但更常見的是用推挽放大構(gòu)成乙類或甲乙類放大器。推挽放大電路

推挽晶體管電路是一種電子電路,使用以特定方式連接的有源器件,可以在需要時(shí)交替提供電路并從連接的負(fù)載吸收電流,用于向負(fù)載提供大功率,也被稱為推挽放大器。推挽放大器由2個(gè)晶體管組成,其中一個(gè)是NPN型,另外一個(gè)PNP型。一個(gè)晶體管在正半周期推動輸出,另一個(gè)在負(fù)半周期拉動輸出,因此被稱為推挽放大器。推挽放大器電路的主要優(yōu)點(diǎn)是當(dāng)沒有信號時(shí),輸出晶體管沒有功耗。推挽放大電路有多種類型,但通常將B類放大器視為推挽放大器。6.GPIO編程應(yīng)用建議結(jié)合“3.2STM32的實(shí)驗(yàn)過程和現(xiàn)象”的3.2.1和3.2.2講授如果使用Proteus仿真則使用范例(參考3.2.7)2.軟件設(shè)計(jì)(編程)(1)設(shè)計(jì)分析。PC6

輸出高電平點(diǎn)亮LED1,輸出低電平熄滅LED1。使用庫函數(shù)

GPIO

編程步驟:使能端口

GPIOC

的時(shí)鐘;設(shè)置端口位

PC6

工作模式為50MHz

的推拉輸出;PC6

輸出高電平或輸出低電平。(2)程序源碼。注意工程中需添加庫函數(shù),程序中的庫函數(shù)以加粗形式來標(biāo)識;同時(shí)寫出直接接操作寄存器的程序語句,作為對比。建議結(jié)合“3.2STM32的實(shí)驗(yàn)過程和現(xiàn)象”的3.2.6講授如果使用Proteus仿真則使用范例(參考3.2.7)嵌入式系統(tǒng)應(yīng)用開發(fā)教材教學(xué)內(nèi)容第一章:STM32

微控制器..............................P1

第二章:STM32

開發(fā)工具..............................P13第四章:STM32

應(yīng)用編程.............................P87第三章:STM32基礎(chǔ)入門.............................P27第六章:STM32

巡線小車設(shè)計(jì)實(shí)訓(xùn)................

P187選學(xué)內(nèi)容:必學(xué)內(nèi)容:第五章:操作系統(tǒng)和圖像界面.........................P170

3

章STM32

基礎(chǔ)入門3.2STM32的實(shí)驗(yàn)過程與現(xiàn)象1.STM32標(biāo)準(zhǔn)庫V3.5.0的工程模板實(shí)驗(yàn)3-1的實(shí)驗(yàn)過程學(xué)習(xí)通華信B站學(xué)習(xí)通華信B站1.STM32標(biāo)準(zhǔn)庫V3.5.0的工程模板視頻教程2.使用ST標(biāo)準(zhǔn)庫V3.5.0的工程模板完成實(shí)驗(yàn)視頻教程標(biāo)準(zhǔn)庫工程模板適配實(shí)驗(yàn)板講課過程:解壓標(biāo)準(zhǔn)庫到D:\STM32工程模板修改適配AS-07實(shí)驗(yàn)板(MCU是STM32F103VE)設(shè)置使用ST-LINK仿真器下載程序到實(shí)驗(yàn)板計(jì)算機(jī)、ST-LINK、AS-07實(shí)驗(yàn)板連接正常使用JTAG或者SW方式使用SW方式MDK4.x建立的工程還要選擇一次使用ST-LINK仿真器下載程序到實(shí)驗(yàn)板勾選復(fù)位和運(yùn)行實(shí)驗(yàn)3-1的實(shí)驗(yàn)講課過程:找到Project\STM32F10x_StdPeriph_Examples\GPIO文件夾中的“IOToggle”文件夾,將該文件夾復(fù)制到“Project”文件夾中,并重命名為“3-1IOToggle”。將工程模板中的全部文件選中,然后復(fù)制到“3-1IOToggle”文件夾中,特別注意,在復(fù)制過程中,要跳過5個(gè)同名文件。另外,將“3-1IOToggle”文件夾中的readme.txt文件復(fù)制到MDK-ARM文件夾在,并替換掉同名的readme.txt文件。找到“3-1IOToggle”文件夾中的MDK-ARM文件夾,雙擊打開MDK工程文件Project.uvproj。首先編譯一次,確保沒有錯(cuò)誤和警告,再按照3.1.5小節(jié)的實(shí)驗(yàn)3-1的程序代碼修改,再次進(jìn)行編譯。設(shè)置字符編碼為GB2312和TAB鍵縮進(jìn)為2個(gè)字符。程序代碼修改(注意版式:分行和縮進(jìn)2個(gè)字符)修改適配Proteus仿真(MCU是STM32F103R6)端口PA、PC掛在APB2總線上,時(shí)鐘是PCLK2修改程序(代碼)。RCC_APB2PeriphClockCmd庫函數(shù)用于使能外設(shè)PC端口的時(shí)鐘,具體查閱該函數(shù)的注釋和源碼。RCC_APB2PeriphClockCmd庫函數(shù)返回使用導(dǎo)航GPIO_InitStructure結(jié)構(gòu)體uint16_t數(shù)據(jù)類型定義GPIO_InitStructure結(jié)構(gòu)體成員值定義GPIO_InitStructure結(jié)構(gòu)體成員值定義查閱GPIO_Init庫函數(shù)的注釋和源碼。程序修改完成2個(gè)部分:GPIO_SetBits庫函數(shù)和GPIO_ResetBits庫函數(shù)GPIO_SetBits庫函數(shù)源碼自己鍵入程序(代碼)GPIO_ResetBits庫函數(shù)源碼程序修改完成,編譯,沒有語法錯(cuò)誤和警告打開Proteus的STM32范例,另存到實(shí)驗(yàn)3-1的工程文件夾中,并重命名為學(xué)號-1裝入hex執(zhí)行文件特別注意:如果程序配置了RCC時(shí)鐘,一定要在仿真工程里設(shè)置時(shí)鐘8MHz在while(1)循環(huán)中,如果同時(shí)運(yùn)行這兩行程序,LED1將以快速的頻率交替點(diǎn)亮和熄滅,其亮度低于持續(xù)點(diǎn)亮的亮度。在while(1)循環(huán)中,如果同時(shí)運(yùn)行這兩行程序,LED1將以快速的頻率交替點(diǎn)亮和熄滅,其亮度低于持續(xù)點(diǎn)亮的亮度。在while(1)循環(huán)中,可以分別運(yùn)行兩行程序(注釋掉其中一行,然后重新編譯),這樣可以更清楚地觀察到LED1的點(diǎn)亮和熄滅。在while(1)循環(huán)中,可以分別運(yùn)行兩行程序(注釋掉其中一行,然后重新編譯),這樣可以更清楚地觀察到LED1的點(diǎn)亮和熄滅。藍(lán)色點(diǎn)表示低電平,紅色點(diǎn)表示高電平在while(1)循環(huán)中,可以分別運(yùn)行兩行程序(注釋掉其中一行,然后重新編譯),這樣可以更清楚地觀察到LED1的點(diǎn)亮和熄滅。在while(1)循環(huán)中,可以分別運(yùn)行兩行程序(注釋掉其中一行,然后重新編譯),這樣可以更清楚地觀察到LED1的點(diǎn)亮和熄滅。檢查,實(shí)驗(yàn)3-1仿真過程評分重新編譯所有的文件,可以更新生成hex執(zhí)行文件下載到實(shí)驗(yàn)板上運(yùn)行驗(yàn)證程序ST-LINK/V2簡介及驅(qū)動安裝ST-LINK/V2簡介SWD4線調(diào)試STM32STM32MCU(Microcontroller,微控制器)與ST-Link/V2需要標(biāo)準(zhǔn)20針JTAG電纜連接。下表給出了標(biāo)準(zhǔn)20針JTAG的信號名稱、功能和目標(biāo)連接信號。ST-LINK/V2驅(qū)動安裝設(shè)置使用ST-LINK仿真器下載程序到實(shí)驗(yàn)板計(jì)算機(jī)、ST-LINK、AS-07實(shí)驗(yàn)板連接正常使用JTAG或者SW方式使用SW方式MDK4.x建立的工程還要選擇一次使用ST-LINK仿真器下載程序到實(shí)驗(yàn)板勾選復(fù)位和運(yùn)行片內(nèi)ROM和RAM的起始地址和大小Flash:64KB在while(1)循環(huán)中,如果同時(shí)運(yùn)行兩行程序,LED1將以快速的頻率交替點(diǎn)亮和熄滅,其亮度低于持續(xù)點(diǎn)亮的亮度。在while(1)循環(huán)中,可以分別運(yùn)行兩行程序(注釋掉其中一行,然后重新編譯),這樣可以更清楚地觀察到LED1的點(diǎn)亮和熄滅。3.MDK仿真調(diào)試程序?yàn)榱诉_(dá)到設(shè)計(jì)目標(biāo),可能要多次修改程序,重復(fù)“編譯、鏈接、仿真調(diào)試源程序”。為了深刻理解程序并觀察每一條程序語句的執(zhí)行,有時(shí)也需要單步運(yùn)行仿真程序。以實(shí)驗(yàn)3-1為例,單擊“Configuretargetoptions(配置目標(biāo)選項(xiàng))”快捷圖標(biāo),在彈出對話框,選擇調(diào)試Debug選項(xiàng)卡,設(shè)置如下:3.2.3MDK仿真調(diào)試程序

學(xué)習(xí)通華信B站設(shè)置MDK軟件仿真:查看目標(biāo)機(jī)型號配置DialogDLL和參數(shù)MDK軟件仿真調(diào)試界面開始使用MDK軟件仿真調(diào)試軟件仿真運(yùn)行圖示GPIO調(diào)試查看窗口:顯示出PC6輸出高電平(有勾)4.使用串口ISP和IAP下載程序3.2.4使用串口ISP和IAP下載程序

學(xué)習(xí)通華信B站5.Proteus仿真STM32以實(shí)驗(yàn)3-1為例,說明如何使用Proteus來仿真STM32F103。開始仿真運(yùn)行3.2.5Proteus仿真STM32

學(xué)習(xí)通華信B站6.使用STM32CubeMX使用STM32CubeMX,結(jié)合MDK5,完成實(shí)驗(yàn)3-2。(1)新建工程(2)配置調(diào)試方式(3)配置系統(tǒng)時(shí)鐘(4)配置使用的引腳(5)生成MDK工程(6)打開MDK工程,按照3.1.5章節(jié)的實(shí)驗(yàn)3-2修改程序后編譯工程,如下所示。(7)下載運(yùn)行程序或仿真。實(shí)驗(yàn)3-2的實(shí)驗(yàn)過程:學(xué)習(xí)通華信B站實(shí)驗(yàn)3-2的實(shí)驗(yàn)講課過程:檢查能否上網(wǎng)檢測上網(wǎng)新建工程Proteus仿真選擇STM32F103R6設(shè)置下載接口:SW設(shè)置下載接口:JTAG設(shè)置RCC時(shí)鐘:外接晶振設(shè)置RCC時(shí)鐘:修改HCLK的值修改HCLK的值為72MHz回車,自動配置RCC時(shí)鐘也可以自己手動配置RCC時(shí)鐘設(shè)置PC6設(shè)置PC6:輸出設(shè)置PC6:輸出查找GPIO的庫函數(shù)查找GPIO的庫函數(shù)GPIO的庫函數(shù)到GPIO的庫函數(shù)的定義處,查閱源函數(shù)GPIO的庫函數(shù)自己鍵入程序Proteus仿真藍(lán)色:低電平下載到實(shí)驗(yàn)板運(yùn)行7.使用STM32CubeF1固件庫工程模板和范例實(shí)驗(yàn)學(xué)習(xí)通華信B站3.2.7使用STM32CubeF1固件庫工程模板和范例實(shí)驗(yàn)圖3-70STM32F103RB-Nucleo板的GPIO范例MDK工程圖3-32Proteus仿真范例STM32F103BlinkLED圖3-33STM32Cube固件庫的范例仿真運(yùn)行閱讀資料:常見電子元器件嵌入式系統(tǒng)應(yīng)用開發(fā)教材教學(xué)內(nèi)容STM32

微控制器..............................1

STM32

開發(fā)工具..............................18STM32

應(yīng)用編程.............................119STM32

全面應(yīng)用.............................233STM32

高級應(yīng)用.............................258STM32基礎(chǔ)入門..............................45STM32

巡線小車設(shè)計(jì)實(shí)訓(xùn)........................

324選學(xué)內(nèi)容:必學(xué)內(nèi)容:

3

章STM32

基礎(chǔ)入門

本章是基于

Cortex-M3的

STM32的入門篇。先學(xué)習(xí)

GPIO

的結(jié)構(gòu)和編程應(yīng)用,完成實(shí)驗(yàn),這也是本書的重點(diǎn)內(nèi)容;再學(xué)習(xí)復(fù)位和時(shí)鐘、中斷和事件、串口通信等,完成入門學(xué)習(xí)。

通過本章的學(xué)習(xí),要求掌握MDK和STM32CubeMX軟件環(huán)境、嵌入式

C語言、STM32的標(biāo)準(zhǔn)庫和HAL

庫、STM32

硬件實(shí)驗(yàn)板的使用。

也可以使用

Proteus

來仿真STM32。軟件仿真,電路設(shè)計(jì)靈活可變,但是要注意有時(shí)不一定與實(shí)際硬件一致。最好是仿真和硬件結(jié)合,優(yōu)勢互補(bǔ),提高實(shí)驗(yàn)效果。

說明:本教材以STM32F103VET6為例。3.3STM32的復(fù)位與時(shí)鐘

(1)RCC(resetandclockcontrol,復(fù)位和時(shí)鐘控制)。(2)STM32F10xxx支持三種復(fù)位形式,分別為系統(tǒng)復(fù)位、電源復(fù)位和備份區(qū)域復(fù)位。(3)系統(tǒng)復(fù)位

除了時(shí)鐘控制器的RCC_CSR寄存器中的復(fù)位標(biāo)志位和備份區(qū)域中的寄存器(見教材5.2章節(jié))以外,系統(tǒng)復(fù)位將復(fù)位所有寄存器至它們的復(fù)位狀態(tài)。

當(dāng)發(fā)生以下任一事件時(shí),產(chǎn)生一個(gè)系統(tǒng)復(fù)位: NRST引腳上的低電平(外部復(fù)位)

窗口看門狗計(jì)數(shù)終止(WWDG復(fù)位)

獨(dú)立看門狗計(jì)數(shù)終止(IWDG復(fù)位)

軟件復(fù)位(SW復(fù)位)

低功耗管理復(fù)位3.3.1復(fù)位

(4)電源復(fù)位當(dāng)以下事件中之一發(fā)生時(shí),產(chǎn)生電源復(fù)位:

上電/掉電復(fù)位(POR/PDR復(fù)位)從待機(jī)模式中返回

(5)備份域復(fù)位

當(dāng)以下事件中之一發(fā)生時(shí),產(chǎn)生備份區(qū)域復(fù)位:

軟件復(fù)位,備份區(qū)域復(fù)位可由設(shè)置備份域控制寄存器(RCC_BDCR)中的BDRST位產(chǎn)生。

在VDD和VBAT兩者掉電的前提下,VDD或VBAT上電將引發(fā)備份區(qū)域復(fù)位。3.3.2時(shí)鐘(1)4種初始時(shí)鐘源是: HSE=High-speedexternalclocksignal 高速外部時(shí)鐘 LSE=Low-speedexternalclocksignal 低速外部時(shí)鐘 LSI=Low-speedinternalclocksignal 低速內(nèi)部時(shí)鐘 HSI=High-speedinternalclocksignal 高速內(nèi)部時(shí)鐘(2)三種不同的時(shí)鐘源可被用來驅(qū)動系統(tǒng)時(shí)鐘(SYSCLK):

HSI振蕩器時(shí)鐘,HSE振蕩器時(shí)鐘,PLL鎖相環(huán)時(shí)鐘。(3)系統(tǒng)時(shí)鐘的選擇是在啟動時(shí)進(jìn)行,復(fù)位時(shí)內(nèi)部8MHz的RC振蕩器HSI被選為默認(rèn)的CPU時(shí)鐘,隨后可以選擇外部的、具有失效監(jiān)控的4~16MHz時(shí)鐘HSE。

系統(tǒng)時(shí)鐘的選擇是在啟動時(shí)進(jìn)行,復(fù)位時(shí)內(nèi)部8MHz的RC振蕩器HSI被

為默認(rèn)的CPU時(shí)鐘,隨后可以選擇外部的、具有失效監(jiān)控的4~16MHz時(shí)鐘HSE(典型8MHz,由RCC函數(shù)配置)。

鎖相環(huán)(phaselockedloop)參考閱讀參考閱讀石英晶體振蕩器參考閱讀參考閱讀有一些電子設(shè)備需要頻率高度穩(wěn)定的交流信號,而LC振蕩器穩(wěn)定性較差,頻率容易漂移(即產(chǎn)生的交流信號頻率容易變化)。在振蕩器中采用一個(gè)特殊的元件——石英晶體,可以產(chǎn)生高度穩(wěn)定的信號,這種采用石英晶體的振蕩器稱為晶體振蕩器。在石英晶體上按一定方位切下薄片,將薄片兩端拋光并涂上導(dǎo)電的銀層,再從銀層上連出兩個(gè)電極并封裝起來,這樣構(gòu)成的元件叫石英晶體諧振器,簡稱石英晶體。石英晶體的外形、結(jié)構(gòu)和圖形符號如圖1所示。參考閱讀石英諧振器指的是利用電信號頻率等于石英晶片固有頻率時(shí)晶片因壓電效應(yīng)而產(chǎn)生諧振現(xiàn)象的原理制成的器件,是晶體振蕩器和窄帶濾波器等的關(guān)鍵元件。參考閱讀參考閱讀參考閱讀STM32的V3.5.0版庫函數(shù)的RCC配置:RCC設(shè)置函數(shù)SystemInit()在啟動文startup_stm32f10x_hd.s中。RCC時(shí)鐘設(shè)置程序在2個(gè)文件:startup_stm32f10x_hd.s,system_stm32f10x.c里,有4個(gè)標(biāo)號/函數(shù):Resethandler,voidSystemInit(void),staticvoidSetSysClock(void),staticvoidSetSysClockTo72(void))。STM32的HAL庫函數(shù)的RCC配置3.3.5RCC編程應(yīng)用:實(shí)驗(yàn)3-3(AS-07硬件實(shí)驗(yàn))

實(shí)驗(yàn)內(nèi)容和現(xiàn)象:(1)配置時(shí)鐘RCC;(2)配置中斷NVIC;(3)設(shè)置全部GPIO為AnalogInputmode,降低功耗和提高EMI/EMC;(4)使能GPIOA的時(shí)鐘,設(shè)置PA5為GPIO_Mode_Out_PP50MHz;使能GPIOC的時(shí)鐘,設(shè)置PC6和PC7為GPIO_Mode_Out_PP50MHz;(5)流水燈程序:PC6驅(qū)動LED1、PC7驅(qū)動LED2、PA5驅(qū)動LED3依次點(diǎn)亮、延時(shí)、熄滅,形成亮流水效果。【實(shí)驗(yàn)3-3】LED流水燈(使用STM32的v3.5.0版庫函數(shù),完整RCC)

硬件設(shè)計(jì)2.軟件設(shè)計(jì)(編程)實(shí)驗(yàn)過程與現(xiàn)象硬件設(shè)計(jì)2.軟件設(shè)計(jì)(編程)3.2.3MDK仿真調(diào)試程序

學(xué)習(xí)通華信B站設(shè)置MDK軟件仿真MDK軟件仿真標(biāo)準(zhǔn)庫V3.5.0的RCC下載到實(shí)驗(yàn)板運(yùn)行教師先演示,學(xué)生再自己練習(xí)……3.3.5RCC編程應(yīng)用

實(shí)驗(yàn)3-4Proteus仿真STM32:LED流水燈(標(biāo)準(zhǔn)庫)

新建Proteus仿真工程(工程名為學(xué)號)自己設(shè)計(jì)原理圖,見視頻教程。這里修改范例Proteus仿真工程:放置導(dǎo)線(網(wǎng)絡(luò))標(biāo)號運(yùn)行會報(bào)錯(cuò)實(shí)驗(yàn)3-4Proteus仿真STM32:LED流水燈(HAL庫)

HAL庫的RCC嵌入式系統(tǒng)應(yīng)用開發(fā)教材教學(xué)內(nèi)容STM32

微控制器..............................1

STM32

開發(fā)工具..............................18STM32

應(yīng)用編程.............................119STM32

全面應(yīng)用.............................233STM32

高級應(yīng)用.............................258STM32基礎(chǔ)入門..............................45STM32

巡線小車設(shè)計(jì)實(shí)訓(xùn)........................

324選學(xué)內(nèi)容:必學(xué)內(nèi)容:參考閱讀

51單片機(jī)有6個(gè)中斷源,5個(gè)中斷向量,2個(gè)優(yōu)先級(不是5個(gè)中斷源,5個(gè)優(yōu)先級)STM32F10x按照Flash大小分類,105/107具有以太網(wǎng)功能STM32的工作條件

3

章STM32

基礎(chǔ)入門

本章是基于

Cortex-M3的

STM32的入門篇。先學(xué)習(xí)

GPIO

的結(jié)構(gòu)和編程應(yīng)用,完成實(shí)驗(yàn),這也是本書的重點(diǎn)內(nèi)容;再學(xué)習(xí)復(fù)位和時(shí)鐘、中斷和事件、串口通信等,完成入門學(xué)習(xí)。

通過本章的學(xué)習(xí),要求掌握MDK和STM32CubeMX軟件環(huán)境、嵌入式

C語言、STM32的標(biāo)準(zhǔn)庫和HAL

庫、STM32

硬件實(shí)驗(yàn)板的使用。

也可以使用

Proteus

來仿真STM32。軟件仿真,電路設(shè)計(jì)靈活可變,但是要注意有時(shí)不一定與實(shí)際硬件一致。最好是仿真和硬件結(jié)合,優(yōu)勢互補(bǔ),提高實(shí)驗(yàn)效果。

說明:本教材以STM32F103VET6為例。3.4STM32的中斷和事件

1.NVIC(Nestedvectoredinterruptcontroller,嵌套向量中斷控制器),能夠處理多達(dá)68(STM32F105/107是68,STM32F103是60)個(gè)可屏蔽中斷通道(不包括16個(gè)Cortex?-M3的中斷線)和16個(gè)優(yōu)先級。2.中斷和異常向量3.4.1NVICSTM32F103是60個(gè)可屏蔽中斷通道STM32F105/107是68個(gè)可屏蔽中斷通道3.NVIC優(yōu)先級(1)中斷的優(yōu)先級與判優(yōu)何為占先式優(yōu)先級(pre-emptionpriority),高占先式優(yōu)先級的中斷事件會打斷當(dāng)前的主程序/中斷程序運(yùn)行——搶斷式優(yōu)先響應(yīng),俗稱中斷嵌套。何為副(從)優(yōu)先級(subpriority),在占先式優(yōu)先級相同的情況下,高副優(yōu)先級的中斷優(yōu)先被響應(yīng);在占先式優(yōu)先級相同的情況下,如果有低副優(yōu)先級中斷正在執(zhí)行,高副優(yōu)先級的中斷也要等待已被響應(yīng)的低副優(yōu)先級中斷執(zhí)行結(jié)束后才能得到響應(yīng)——非搶斷式響應(yīng)(不能嵌套)。判斷中斷是否會被響應(yīng)的依據(jù):首先是占先式優(yōu)先級,其次是副優(yōu)先級;占先式優(yōu)先級決定是否會有中斷嵌套。

(2)優(yōu)先級組別每一個(gè)中斷都有一個(gè)專門的寄存器IPR(InterruptPriorityRegisters,中斷優(yōu)先級寄存器)來描述該中斷的占先式優(yōu)先級及副優(yōu)先級。在這個(gè)寄存器中STM32使用4個(gè)二進(jìn)制位描述優(yōu)先級(Cortex-M3定義了8位,但STM32只使用了4位),有5種組合使用方式,即5種優(yōu)先級組別見圖4-74。3.4.2EXTIEXTI(Externalinterrupt/eventcontroller,外部中斷/事件控制器)包含19個(gè)(STM32F103)或20個(gè)(STM32F105/107還有EXTI19連接到以太網(wǎng)喚醒事件)邊沿檢測器,用于產(chǎn)生中斷/事件請求。多達(dá)80個(gè)(STM32F103VE有5個(gè)端口,100個(gè)引腳)或112個(gè)(STM32F103ZE有7個(gè)端口,144個(gè)引腳)通用I/O口連接到16個(gè)外部中斷線。特別注意:EXTI9_5,包含5個(gè)外部中斷,相同的向量地址;

EXTI15_10,包含5個(gè)外部中斷,相同的向量地址EXTI16連接到PVD輸出,EXTI17連接到RTC鬧鐘事件,

EXTI18連接到USB喚醒事件。EXTI19連接到以太網(wǎng)喚醒事件。3.4.3中斷編程應(yīng)用:

實(shí)驗(yàn)3-5 EXTI_Config(標(biāo)準(zhǔn)庫)

按下后松開KEY1按鍵,上升沿觸發(fā)中斷EXTI_Line5,LED1指示中斷發(fā)生;

按下KEY2按鍵,下降沿觸發(fā)中斷EXTI_Line6,LED2指示中斷發(fā)生,使用ST的V3.5.0函數(shù)庫編程。硬件設(shè)計(jì)在main函數(shù)里,使用NVIC_Init庫函數(shù)初始化NVIC,設(shè)置中斷請求通道為EXTI5、優(yōu)先組0,使能EXTI9_5中斷。在main函數(shù)里,使用EXTI_Init庫函數(shù)初始化EXTI,設(shè)置EXTI中斷線EXTI_Line5,下降沿觸發(fā)中斷。在stm32f10x_it.c里,寫出中斷函數(shù)EXTI9_5_IRQHandler,按下按鍵KEY1,產(chǎn)生中斷EXTI5,LED1的亮滅狀態(tài)改變指示中斷的發(fā)生。

2.軟件設(shè)計(jì)(編程)intmain(void)//主函數(shù)。{STM_EVAL_LEDInit(LED1); //初始化LED1STM_EVAL_LEDInit(LED2); //初始化LED2EXTI9_5_Config(); //設(shè)置EXTI9_5EXTI_GenerateSWInterrupt(EXTI_Line5); //產(chǎn)生一次EXTI_Line5軟件中斷

EXTI_GenerateSWInterrupt(EXTI_Line6); //產(chǎn)生一次EXTI_Line6軟件中斷while(1) //等待中斷發(fā)生{}}實(shí)驗(yàn)過程與現(xiàn)象程序下載到AS-07實(shí)驗(yàn)板運(yùn)行驗(yàn)證實(shí)驗(yàn)3-6 Proteus仿真STM32:EXTI_Config(標(biāo)準(zhǔn)庫)與實(shí)驗(yàn)3-5,不同之處:KEY1連接PE5修改為PB5,KEY2連接PE6修改為PB6,其他相同。實(shí)驗(yàn)3-6 Proteus仿真STM32:EXTI_Config(標(biāo)準(zhǔn)庫)上課講課過程:使用標(biāo)準(zhǔn)庫范例,盡量少修改或者不修改LED1連接PC6,LED2連接PC7.KEY1連接PA0,KEY2連接PB9。MDK仿真EXTI嵌入式系統(tǒng)應(yīng)用開發(fā)教材教學(xué)內(nèi)容STM32

微控制器..............................1

STM32

開發(fā)工具..............................18STM32

應(yīng)用編程.............................119STM32

全面應(yīng)用.............................233STM32

高級應(yīng)用.............................258STM32基礎(chǔ)入門..............................45STM32

巡線小車設(shè)計(jì)實(shí)訓(xùn)........................

324選學(xué)內(nèi)容:必學(xué)內(nèi)容:參考閱讀RS-232C標(biāo)準(zhǔn)(協(xié)議)的全稱是EIA-RS-232C標(biāo)準(zhǔn),定義是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”。它是在1970年由美國電子工業(yè)協(xié)會(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。其中EIA(ElectronicIndustryAssociation)代表美國電子工業(yè)協(xié)會,RS(Recommendedstandard)代表推薦標(biāo)準(zhǔn),232是標(biāo)識號,C代表RS232的最新一次修改。3.5STM32的串口通信

1.USARTUSART

(Universalsynchronous/asynchronousreceivertransmitter,通用同步/異步收發(fā)器),也稱為串行通信口或簡稱為串口.2.USART三線通信USART接口可以簡化地通過三線制即3個(gè)引腳線與其他設(shè)備連接在一起,3個(gè)引腳線分別是RXD(Receive(rx)Data,接收數(shù)據(jù)串行輸入)、TXD(Transmit(tx)Data,發(fā)送數(shù)據(jù)輸出)、GND((Ground,地線)。串口的重要性:通信,調(diào)試程序

3.USART數(shù)據(jù)幀格式3.5.2串口編程應(yīng)用

實(shí)驗(yàn)3-7 printf函數(shù)輸出到USART1(標(biāo)準(zhǔn)庫)

【實(shí)驗(yàn)3-7】重定向C函數(shù)庫printf函數(shù)到USART1顯示實(shí)驗(yàn)

(使用STM32的標(biāo)準(zhǔn)庫函數(shù)庫程序)

硬件設(shè)計(jì)2.軟件設(shè)計(jì)(編程)實(shí)驗(yàn)過程與現(xiàn)象硬件設(shè)計(jì)AS-07開發(fā)/實(shí)驗(yàn)板與電腦的串口通信實(shí)驗(yàn),需要使用USB數(shù)據(jù)線連接,并且需要在電腦上安裝USB轉(zhuǎn)串口集成電路驅(qū)動程序。STM32的PA9是串口USART1的串行數(shù)據(jù)發(fā)送線TXD,PA10是串口USART1的串行數(shù)據(jù)接收線RXD。使能GPIOA的時(shí)鐘,原因是USART1的數(shù)據(jù)發(fā)送線(引腳)和接收線(引腳)是PA9和PA10;使能USART1的時(shí)鐘。設(shè)置PA9為復(fù)用功能推拉輸出(GPIO_Mode_AF_PP)模式,設(shè)置PA10為PA10為浮空輸入模式。使用庫函數(shù)USART_Init初始化USART1,設(shè)置USART的工作參數(shù)。使能USART1。使用USART1發(fā)送或者接收數(shù)據(jù)。

2.軟件設(shè)計(jì)(編程)RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//PA9為復(fù)用功能推拉輸出模式GPIO_Init(GPIOA,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;//PA10為浮空輸入模式GPIO_Init(GPIOA,&GPIO_InitStructure);USART_InitStructure.USART_BaudRate=115200;//波特率115200bpsUSART_InitStructure.USART_WordLength=USART_WordLength_8b; //8個(gè)數(shù)據(jù)位,就是10位幀格式USART_InitStructure.USART_StopBits=USART_StopBits_1; //1個(gè)停止位USART_InitStructure.USART_Parity=USART_Parity_No;//沒有奇偶校驗(yàn)位USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//不使用硬件流控USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;//全雙工通信USART_Init(USART1,&USART_InitStructure);//初始化USART1USART_Cmd(USART1,ENABLE);//使能USART1

printf("\n\rUSARTPrintfExample:retargettheClibraryprintffunctiontotheUSART\n\r");//使用超級終端或者串口助手顯示USART1輸出的信息PUTCHAR_PROTOTYPE//輸出重定向函數(shù){USART_SendData(USART1,(u8)ch);//發(fā)送數(shù)據(jù)函數(shù)(使用USART1)while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET) ;//直到發(fā)送完畢{}returnch;}#ifdef__GNUC__/*WithGCC/RAISONANCE,smallprintf(optionLDLinker->Libraries->Smallprintfsetto'Yes')calls__io_putchar()*/#definePUTCHAR_PROTOTYPEint__io_putchar(intch)#else#definePUTCHAR_PROTOTYPEintfputc(intch,FILE*f)#endif/*__GNUC__*/#include"stdio.h"實(shí)驗(yàn)過程與現(xiàn)象實(shí)驗(yàn)過程參考3.2.2小節(jié)。本實(shí)驗(yàn)需要將AS-07實(shí)驗(yàn)板使用USB線與電腦連接起來,在電腦上運(yùn)行串口助手或

者超級終端,下載程序后或者按下AS-07的復(fù)位鍵后,觀察實(shí)驗(yàn)現(xiàn)象如圖3-85和圖3-86所示。實(shí)驗(yàn)現(xiàn)象實(shí)驗(yàn)3-8(Proteus仿真實(shí)驗(yàn))

特別說明:仿真與硬件是有差別的,注意區(qū)別VT的波特率BaudRate設(shè)置為程序的1/9嵌入式系統(tǒng)應(yīng)用開發(fā)教材教學(xué)內(nèi)容STM32

微控制器..............................1

STM32

開發(fā)工具..............................18STM32

應(yīng)用編程.............................119STM32

全面應(yīng)用.............................233STM32

高級應(yīng)用.............................258STM32基礎(chǔ)入門..............................45STM32

巡線小車設(shè)計(jì)實(shí)訓(xùn)........................

324選學(xué)內(nèi)容:必學(xué)內(nèi)容:4.1 LCD顯示和STM32的FSMC

大容量STM32F10xxx()才具有FSMC,不僅可以控制存儲器,還可以控制LCD.參考資料:FSMCFlexiblestaticmemorycontroller,靈活的靜態(tài)存儲器控制器2.FSMC包含四個(gè)主要模塊AHB接口(包含F(xiàn)SMC配置寄存器),NOR閃存和PSRAM控制器,NAND閃存和PC卡控制器,外部設(shè)備接口,F(xiàn)SMC的內(nèi)部結(jié)構(gòu)框圖見圖。3.FSMC包含2類存儲器控制器:

(1)一個(gè)NOR閃存/PSRAM控制器,可以與NORFLASH、SRAM和PSRAM存儲器接口。(2)一個(gè)NAND閃存/PC卡控制器,可以與NAND閃存、PC卡、CF卡和CF+存儲器接口。

控制器產(chǎn)生所有驅(qū)動這些存儲器的信號時(shí)序:(1)16個(gè)數(shù)據(jù)線,用于連接8位或16位存儲器。(2)26個(gè)地址線,最多可連接64M字節(jié)的存儲器。(3)4個(gè)獨(dú)立的片選信號線。背景知識:常見的存儲器1.SRAMSRAM(Static

Random

Access

Memory,靜態(tài)隨機(jī)存取存儲器)是隨機(jī)存取存儲器的一種。所謂的“靜態(tài)”,是指這種存儲器只要保持通電,里面儲存的數(shù)據(jù)就可以保持。2.DRAMDRAM(DynamicRandomAccessMemory,動態(tài)隨機(jī)存取存儲器),每隔一段時(shí)間,要刷新充電一次,否則內(nèi)部的數(shù)據(jù)即會消失。由于這種需要定時(shí)刷新的特性,因此被稱為“動態(tài)”存儲器。相對來說,靜態(tài)存儲器(SRAM)只要存入數(shù)據(jù)后,縱使不刷新也不會丟失。IS61LV512163.SDRAMSDRAM(synchronousdynamicrandom-accessmemory,同步動態(tài)隨機(jī)存儲器),是電腦上最為廣泛應(yīng)用的一種內(nèi)存類型,是有一個(gè)同步接口的動態(tài)隨機(jī)存取內(nèi)存(DRAM)。4.PSRAMPSRAM(PseudoStaticRandomAccessMemory,偽SRAM),內(nèi)部與SDRAM相似,但外部接口跟SRAM相似,不需要SDRAM那樣復(fù)雜的控制器和刷新機(jī)制,PSRAM的接口跟SRAM的接口是一樣的。5.FLASH存儲器FLASH存儲器(FlashEEPROMMemory),也翻譯為“閃存”,是一種非易失性存儲器,在沒有通電的情況下也能夠長久地保持?jǐn)?shù)據(jù)。閃存又分為NOR與NAND兩類,NOR的讀速度比NAND稍快一些,NAND的寫入速度比NOR快很多。在NANDFLASH中每個(gè)塊的最大擦寫次數(shù)是一百萬次,而NOR的擦寫次數(shù)是十萬次。NORFLASH更像內(nèi)存,有獨(dú)立的地址線和數(shù)據(jù)線,但價(jià)格比較貴,容量比較??;而NANDFLASH更像硬盤,地址線和數(shù)據(jù)線是共用的I/O線,而且NANDFLASH與NORFLASH相比,成本要低一些,而容量大得多。因此,NORFLASH比較適合頻繁隨機(jī)讀寫的場合,通常用于存儲程序代碼并直接在NORFLASH內(nèi)運(yùn)行;NANDFLASH主要用來存儲資料,常用的U盤、SD/TF卡都是用NANDFLASH。NORflash(M29W128FL)NANDflash一個(gè)典型的NOR閃存的讀寫時(shí)序4.從FSMC的角度看,外部存儲器分為4個(gè)固定大小為256M字節(jié)的存儲塊(區(qū))(Bank)。存儲塊(區(qū))1(Bank1)NOR/PSRAM是4x64MB,地址是60000000h-6FFFFFFFh,劃分4個(gè)64MB的子塊(區(qū)),則:5.與NOR閃存存儲器接口的典型應(yīng)用以M29W128FL存儲器作為參考,M29W128FL是一個(gè)16位、異步、非總線共享的NOR閃存存儲器,因此FSMC選用存儲塊(區(qū))1的2子塊(區(qū))驅(qū)動這個(gè)NOR閃存存儲器。6.TFTLCD使用FSMC接口1.FSMC提供LCD控制器所需的所有信號,用于LCD接口的FSMC信號描述如下:(1)FSMC[D0:D15]:FSMC數(shù)據(jù)總線,16位寬度。(2)FSMCNEx:FSMC芯片選擇(片選)。(3)FSMCNOE:FSMC輸出允許。(4)FSMCNWE:FSMC寫入允許。(5)FSMCAx:用于在LCD寄存器和LCD顯示RAM選擇的一條地址線,其中x可以是0-25。注意:信號名稱中的前綴“N”指信號低電平有效。2.LCDIntel8080與FSMC的接口見圖5-68,其中NEx的x=1-4;Ax的x=0-25。3.LCD地址取決于使用的FSMCBank1-NOR/PSRAM-1、2、3、4的選擇(NEx)和用于驅(qū)動LCDRS引腳的選擇(Ax)。例如:STM3210E-EVAL評估板

選擇NOR/PSRAM的Bank1-NOR/PSRAM4即NE4,使用FSMC_A0即A0來控制LCD的RS引腳,則我們訪問LCD寄存器REG的地址為6C000000h,此時(shí)A0為低電平;GRAM的基址為0x6C000000,此時(shí)A0為高電平。GRAM的基址計(jì)算:數(shù)據(jù)長度為16bit,FSMC_A[24:0]對應(yīng)HADDR[25:1],GRAM的基址=0x6C000000+2^0*2-2=0x6C000000。STM3210E-EVAL評估板AS-07實(shí)驗(yàn)板AxA0(PE0)為RSAxA16(PD11)為RSNExNE4(PG12)為CSNExNE1(PD7)為CSAS-07實(shí)驗(yàn)板

選擇NOR/PSRAM的Bank1-NOR/PSRAM1即NE1,使用FSMC_A16即A16來控制LCD的RS引腳,則我們訪問LCD寄存器REG的地址為60000000h,此時(shí)A16為低電平;GRAM的基址為0x6001FFFE,此時(shí)A16為高電平。GRAM的基址計(jì)算:數(shù)據(jù)長度為16bit,FSMC_A[24:0]對應(yīng)HADDR[25:1],GRAM的基址=0x60000000+2^16*2-2=0x6001FFFE。/**@defgroupSTM3210E_EVAL_LCD_Private_TypesDefinitions*@{*/typedefstruct{__IOuint16_tLCD_REG;__IOuint16_tLCD_RAM;}LCD_TypeDef;/***@}*//**@defgroupSTM3210E_EVAL_LCD_Private_Defines*@{*//*Note:LCD/CSisCE4-Bank4ofNOR/SRAMBank1~4*///NOR/SRAMBank1-NE4#defineLCD_BASE((uint32_t)(0x60000000|0x0C000000))#defineLCD((LCD_TypeDef*)LCD_BASE)#defineMAX_POLY_CORNERS200#definePOLY_Y(Z)((int32_t)((Points+Z)->X))#definePOLY_X(Z)((int32_t)((Points+Z)->Y))STM3210E-EVAL評估板

/**@defgroupSTM3210E_EVAL_LCD_Private_TypesDefinitions*@{*/typedefstruct{__IOuint16_tLCD_REG;__IOuint16_tLCD_RAM;}LCD_TypeDef;/***@}*//**@defgroupSTM3210E_EVAL_LCD_Private_Defines*@{*//*Note:LCD/CSisNE1-Bank1:ofNOR/SRAMBank1~4*/#defineLCD_BASE((uint32_t)(0x60000000|0x1FFFE))#defineLCD((LCD_TypeDef*)LCD_BASE)#defineMAX_POLY_CORNERS200#definePOLY_Y(Z)((int32_t)((Points+Z)->X))#definePOLY_X(Z)((int32_t)((Points+Z)->Y))AS-07實(shí)驗(yàn)板7.底層驅(qū)動程序(FSMC)使用FSMC接口LCD,STM32F103用FSMCi80-16bit驅(qū)動ILI9320(AS-07STM32實(shí)驗(yàn)板)底層程序如下。1.FSMC配置程序FSMC_NORSRAMInitStructure.FSMC_Bank=FSMC_Bank1_NORSRAM1;//

選用存儲塊1FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);//初始化

/*BANK1(ofNOR/SRAMBank1~4)isenabled*/FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1,ENABLE);//使能存儲塊14.1.2TFTLCDTFTLCD(thin-film-transistorliquidcrystaldisplay,薄膜晶體管液晶顯示器),是常用的重要的嵌入式外圍輸出設(shè)備,也叫LCM(LCDModule,LCD模塊)。

本節(jié)介紹LCM的外型、特性、引腳以及驅(qū)動,并給出ILI9320或ILI9325、ST7735等驅(qū)動的TFTLCD的FSMC、i8016bit、SPI等微處理器接口模式的編程應(yīng)用。TFTLCD由4部分構(gòu)成

觸摸屏、LCD顯示組件、背光燈組件和驅(qū)動電路,見圖5-70,從左到右分別是TFTLCD正面、反面實(shí)物照片。2.2.8寸TFTLCD主要特性

顯示顏色數(shù)是262K/65K、分辨率240x320、ILI9325驅(qū)動器、4個(gè)LED背光燈,典型工作電壓3.3V等。3.帶觸摸屏的LCD常用的是37引腳

分為電源(VCC,GND)、數(shù)據(jù)(DB0-DB7,DB10-DB17)、控制(/CS,RS,/WR,/RD,/RESET)、背光燈(LEDA,LEDK)、觸摸(X,Y)、MCU控制接口模式IM等幾個(gè)類別。4.LCD常用的驅(qū)動器

ILITEK公司的ILI9320/9325,Himax公司的HX8347,SolomonSystech公司的SSD1289,Sitronix公司的ST7735等。ILI9320/9325款圖如下,重點(diǎn)是GRAM,即將數(shù)據(jù)寫入GRAM.5.i80/16-bit系統(tǒng)接口LCD與MCU間的16位接口見圖5-73,此時(shí)IM[3:0]設(shè)置為0010,可以顯示262K或65K色。顯示65K色時(shí),需要傳輸一次16bits(RGB565)。顯示262K色時(shí),需要

溫馨提示

  • 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

提交評論