本書結(jié)構(gòu)合理,內(nèi)容系統(tǒng)全面,從嵌入式系統(tǒng)概述、ARM CortexM3微處理器、ARM CortexM3開發(fā)工具和環(huán)境、STM32基礎(chǔ)入門等方面介紹了嵌入式系統(tǒng)的原理與具體應(yīng)用,可作為高等院校計(jì)算機(jī)專業(yè)、電類專業(yè)、自動(dòng)化以及機(jī)電一體化專業(yè)本科生的教材和參考書,也可供希望了解和掌握嵌入式系統(tǒng)的技術(shù)人員學(xué)習(xí)參考。
ARM微處理器已遍及工業(yè)控制、消費(fèi)類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、無線系統(tǒng)等市場,而本書介紹的CortexM3處理器是ARM公司推出的首款基于ARMv7M架構(gòu)的處理器,十分具有代表性。本書結(jié)構(gòu)合理,內(nèi)容系統(tǒng)全面,從嵌入式系統(tǒng)概述、ARM CortexM3微處理器、ARM CortexM3開發(fā)工具和環(huán)境、STM32基礎(chǔ)入門等方面介紹了嵌入式系統(tǒng)的原理與具體應(yīng)用,可作為高等院校計(jì)算機(jī)專業(yè)、電類專業(yè)、自動(dòng)化以及機(jī)電一體化專業(yè)本科生的教材和參考書,也可供希望了解和掌握嵌入式系統(tǒng)的技術(shù)人員學(xué)習(xí)參考。
采用ARM技術(shù)知識(shí)產(chǎn)權(quán)(IP)的微處理器,即我們通常所說的ARM微處理器,已遍及工業(yè)控制、消費(fèi)類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、無線系統(tǒng)等各類市場,基于ARM技術(shù)的微處理器應(yīng)用占據(jù)了32位RISC微處理器90%以上的市場份額,ARM技術(shù)正在逐步滲入我們生活的各個(gè)方面。 ARM已成為嵌入式的代名詞,學(xué)習(xí)嵌入式就是學(xué)習(xí)ARM。 ARM Cortex系列提供了一個(gè)標(biāo)準(zhǔn)的體系結(jié)構(gòu)來滿足以上各種技術(shù)的不同性能要求,其包含的處理器是基于ARMv7架構(gòu)的三個(gè)分工明確的部分。A部分面向復(fù)雜的尖端應(yīng)用程序,用于運(yùn)行開放式的復(fù)雜操作系統(tǒng);R部分針對(duì)實(shí)時(shí)系統(tǒng);M部分為成本控制和微控制器的應(yīng)用提供優(yōu)化。 面對(duì)豐富多彩的嵌入式世界,我們?cè)撊绾芜x擇學(xué)習(xí)的內(nèi)容與形式呢? ARM公司1985年開發(fā)出全球第1款商業(yè) RISC 處理器,ARM7于1993年推出,之后還有ARM9、ARM11,得到大量運(yùn)用。2004年開始推出更新的ARM Cortex-M3、A8、A9、A15,取代ARM7、ARM9、ARM11,廣泛運(yùn)用在嵌入式領(lǐng)域中。 Cortex-M3是首款基于ARMv7-M架構(gòu)的處理器,是行業(yè)領(lǐng)先的 32 位處理器,適用于具有高確定性的實(shí)時(shí)應(yīng)用,是專門為了在微控制器、汽車車身系統(tǒng)、工業(yè)控制系統(tǒng)和無線網(wǎng)絡(luò)等對(duì)功耗和成本敏感的嵌入式應(yīng)用領(lǐng)域?qū)崿F(xiàn)高系統(tǒng)性能而設(shè)計(jì)的,它大大簡化了編程的復(fù)雜性,使ARM架構(gòu)成為各種應(yīng)用方案(即使是簡單的方案)的上佳選擇。 因此我們可以先開始學(xué)習(xí)ARM Cortex-M3,它取代8位/16位單片機(jī)和ARM7已經(jīng)成為必然;接下來還可以進(jìn)一步選擇學(xué)習(xí)ARM9或者ARM Cortex-A8。 為了更好地進(jìn)行嵌入式教學(xué),我們應(yīng)該積極動(dòng)手實(shí)踐,可以自己設(shè)計(jì)制作一塊基于ARM CortexM3的STM32實(shí)驗(yàn)/開發(fā)板。 筆者于2010年3月設(shè)計(jì)了基于STM32F103VBT6的AS05型STM32SS實(shí)驗(yàn)板,2013年9月又設(shè)計(jì)了基于STM32F103VET6的AS07型STM32 ARDUINO實(shí)驗(yàn)板,用于自己的學(xué)習(xí)與教學(xué)中。如果有需要本教材中的實(shí)驗(yàn)/開發(fā)板和程序,請(qǐng)與作者聯(lián)系。 筆者2011年9月編寫了本書初稿,經(jīng)過7年的教學(xué)實(shí)踐,逐步修改完善。
第1章嵌入式系統(tǒng)概述(1)
1.1嵌入式系統(tǒng)的定義(3)
1.1.1嵌入式系統(tǒng)的定義(3)
1.1.2嵌入式系統(tǒng)的結(jié)構(gòu)與組成(4)
1.1.3嵌入式系統(tǒng)的發(fā)展與趨勢(5)
1.2ARM公司與ARM處理器(6)
1.2.1英國ARM公司(6)
1.2.2ARM微處理器(7)
1.2.3ARM典型微處理器簡介(10)
1.3思考與練習(xí)(13)
1.4課外閱讀(13)
第2章ARM CortexM3微處理器 (14)
2.1ARM CortexM3概述(14)
2.1.1ARM的CortexM3核心內(nèi)嵌閃存和SRAM(16)
2.1.2內(nèi)置閃存存儲(chǔ)器(18)
2.1.3CRC(循環(huán)冗余校驗(yàn))計(jì)算單元(18)
2.1.4內(nèi)置SRAM(19)
2.1.5FSMC(可配置的靜態(tài)存儲(chǔ)器控制器)(19)
2.1.6LCD并行接口(19)
2.1.7嵌套的向量式中斷控制器(NVIC)(19)
2.1.8外部中斷/事件控制器(EXTI)(19)
2.1.9時(shí)鐘和啟動(dòng)(20)
2.1.10自舉模式(21)
2.1.11供電方案(21)
2.1.12供電監(jiān)控器(21)
2.1.13電壓調(diào)壓器(21)
2.1.14低功耗模式(22)
2.1.15DMA(22)
2.1.16RTC(實(shí)時(shí)時(shí)鐘)和后備寄存器(22)
2.1.17定時(shí)器和看門狗(23)
2.1.18I2C總線(24)
2.1.19通用同步/異步收發(fā)器(USART)(24)
2.1.20串行外設(shè)接口(SPI)(25)
2.1.21I2S(芯片互聯(lián)音頻)接口(25)
2.1.22SDIO(25)
2.1.23控制器區(qū)域網(wǎng)絡(luò)(CAN)(25)
2.1.24通用串行總線(USB)(25)
2.1.25通用輸入/輸出接口(GPIO)(26)
2.1.26ADC(模擬/數(shù)字信號(hào)轉(zhuǎn)換器)(26)
2.1.27DAC(數(shù)字/模擬信號(hào)轉(zhuǎn)換器)(26)
2.1.28溫度傳感器(26)
2.1.29串行單線JTAG調(diào)試口(SWJDP)(26)
2.1.30內(nèi)嵌跟蹤模塊(ETM)(27)
2.2STM32F103xx引腳定義(27)
2.2.1引腳分布圖(27)
2.2.2STM32F103xx引腳定義(27)
2.3存儲(chǔ)器映像(29)
2.4I/O端口靜態(tài)特性(31)
2.5訂貨代碼(32)
2.6思考與練習(xí)(33)
目錄嵌入式系統(tǒng)原理與實(shí)踐基于CortexM3(STM32)(上冊(cè))第3章ARM CortexM3開發(fā)工具和環(huán)境(34)
3.1軟件開發(fā)環(huán)境(34)
3.1.1RealView MDK的安裝(34)
3.1.2STM32下載編程軟件Flash Loader 的安裝(36)
3.1.3STM32硬件仿真器驅(qū)動(dòng)程序的安裝(36)
3.1.4USB轉(zhuǎn)串口驅(qū)動(dòng)的安裝(37)
3.1.5藍(lán)牙硬件和軟件的安裝(43)
3.2STM32實(shí)驗(yàn)板(44)
3.2.1STM32最小系統(tǒng)板(44)
3.2.2Nucleo實(shí)驗(yàn)板(44)
3.2.3AS07型STM32實(shí)驗(yàn)板(46)
3.2.4ST官方STM3210EEVAL評(píng)估板(52)
3.3ST的庫函數(shù)(53)
3.3.1ST的庫函數(shù)的版本(53)
3.3.2ST的V2.0.1庫函數(shù)(53)
3.3.3ST的V2.0.1庫函數(shù)的工程模板和范例程序(54)
3.3.4ST的V2.0.3庫函數(shù)(60)
3.3.5ST的V2.0.3庫函數(shù)的工程模板和范例程序(60)
3.3.6ST的V3.0.0庫函數(shù)(60)
3.3.7ST的V3.0.0庫函數(shù)的工程模板和范例程序(61)
3.3.8ST的V3.5.0庫函數(shù)(62)
3.3.9ST的V3.5.0庫函數(shù)的工程模板和范例程序(62)
3.4思考與練習(xí)(63)
第4章STM32基礎(chǔ)入門 (64)
4.1GPIO的結(jié)構(gòu)及編程應(yīng)用(64)
4.1.1GPIO概述(64)
4.1.2GPIO寄存器(65)
4.1.3GPIO庫函數(shù)(69)
4.1.4復(fù)用功能I/O(AFIO)和調(diào)試配置(71)
4.1.5AFIO寄存器(72)
4.1.6GPIO編程應(yīng)用(73)
4.2STM32的實(shí)驗(yàn)過程(86)
4.2.1新建工程(86)
4.2.2編寫源程序并添加到該工程中(93)
4.2.3編譯、鏈接、調(diào)試源程序(98)
4.2.4仿真、調(diào)試程序,下載并運(yùn)行驗(yàn)證程序(104)
4.2.5使用ST庫函數(shù)范例和工程模板編程應(yīng)用(117)
4.3STM32的復(fù)位與時(shí)鐘(117)
4.3.1STM32的復(fù)位(117)
4.3.2STM32的時(shí)鐘(117)
4.3.3RCC寄存器(119)
4.3.4RCC庫函數(shù)(124)
4.3.5RCC編程應(yīng)用(126)
4.4STM32的中斷和事件(137)
4.4.1嵌套向量中斷控制器(137)
4.4.2外部中斷/事件控制器(EXTI)(140)
4.4.3NVIC和EXTI庫函數(shù)(140)
4.4.4中斷編程應(yīng)用(145)
4.5STM32的串口通信USART(158)
4.5.1USART概述(159)
4.5.2USART寄存器(160)
4.5.3USART庫函數(shù)(161)
4.5.4USART編程應(yīng)用(162)
4.6思考與練習(xí)(166)