STM32應(yīng)用開發(fā)實(shí)踐
定 價(jià):45 元
- 作者:肖敦鶴
- 出版時(shí)間:2022/5/20
- ISBN:9787560664088
- 出 版 社:西安電子科技大學(xué)出版社
- 中圖法分類:TP368.1
- 頁(yè)碼:296
- 紙張:
- 版次:1
- 開本:16開
本書以ST公司內(nèi)嵌Cortex-M4內(nèi)核的STM32F4xx系列ARM控制器為重點(diǎn),深入淺出地介紹了STM32應(yīng)用開發(fā)所涉及的各個(gè)方面的關(guān)鍵技術(shù)。全書內(nèi)容可分為四大部分:第1、2章主要介紹STM32處理器內(nèi)嵌Cortex-M3/M4內(nèi)核的架構(gòu)與資源,包括工作模式與狀態(tài)、寄存器、總線接口、指令系統(tǒng)、異常與中斷、存儲(chǔ)器組織映射等;第3、4章為STM32開發(fā)基礎(chǔ),主要介紹STM32F407處理器的軟硬件資源、開發(fā)調(diào)試手段與方法以及最小系統(tǒng)設(shè)計(jì)與調(diào)試;第5~10章為STM32應(yīng)用開發(fā)實(shí)踐,主要介紹STM32的GPIO、中斷、定時(shí)器、USART、SPI、I2C、ADC/DAC、DMA等接口的資源配置、軟件編程以及應(yīng)用實(shí)踐;第11章為物聯(lián)網(wǎng)感知層應(yīng)用開發(fā),主要介紹STM32在物聯(lián)網(wǎng)應(yīng)用開發(fā)中常搭配使用的無(wú)線通信模塊WiFi、ZigBee、Bluetooth、NB-IoT、LoRa及其應(yīng)用開發(fā)。
本書在內(nèi)容安排上由淺入深,理論與實(shí)踐相結(jié)合,將STM32資源配置、接口及外設(shè)的應(yīng)用開發(fā)作為重點(diǎn),列出了各種實(shí)踐案例和結(jié)果,具有較強(qiáng)的實(shí)踐性。
本書可作為高職高專院校計(jì)算機(jī)、信息科學(xué)、電子信息等相關(guān)專業(yè)STM32單片機(jī)開發(fā)課程的教材,也可作為教師、科研人員和相關(guān)培訓(xùn)機(jī)構(gòu)的參考材料,還可作為物聯(lián)網(wǎng)初中級(jí)開發(fā)人員、STM32單片機(jī)自學(xué)者的教材和參考書。
ARM處理器作為嵌入式系統(tǒng)應(yīng)用技術(shù)中的領(lǐng)導(dǎo)者,在物聯(lián)網(wǎng)、人工智能、機(jī)器人等各個(gè)行業(yè)和領(lǐng)域得到了廣泛的應(yīng)用。ARM處理器的應(yīng)用開發(fā)作為高等院校IT類專業(yè)學(xué)生必備的專業(yè)技能,是大學(xué)畢業(yè)生從業(yè)的基礎(chǔ),在學(xué)生擇業(yè)、就業(yè)的過程中發(fā)揮著重要的作用。因此,很多理工科類高等院校均將ARM處理器應(yīng)用開發(fā)作為必修課或選修課列入了人才培養(yǎng)方案和教學(xué)計(jì)劃中。
作為ARM內(nèi)核的系列處理器,STM32的應(yīng)用范圍廣、影響大。因此,本書以封裝了Cortex-M3/M4內(nèi)核的STM32F4xx處理器為主體,介紹了STM32應(yīng)用開發(fā)關(guān)鍵技術(shù)和應(yīng)掌握的核心技能,以滿足教學(xué)要求、就業(yè)需求和企業(yè)對(duì)人才的需要。
本書的特色如下:
(1) 依照嵌入式系統(tǒng)開發(fā)的核心技能,在理論基礎(chǔ)部分,重點(diǎn)介紹Cortex-M3/M4內(nèi)核結(jié)構(gòu)、寄存器、總線接口、指令系統(tǒng)、異常與中斷、存儲(chǔ)器保護(hù)單元,這是從事STM32嵌入式應(yīng)用開發(fā)必備的基礎(chǔ);在STM32應(yīng)用開發(fā)基礎(chǔ)部分,介紹STM32F407處理器軟硬資源、開發(fā)調(diào)試環(huán)境、最小系統(tǒng)組成,此部分主要讓學(xué)生建立嵌入式系統(tǒng)框架的概念,理解最小系統(tǒng)的重要性,掌握STM32應(yīng)用開發(fā)使用的軟件和硬件環(huán)境以及開發(fā)手段和方法;在STM32應(yīng)用開發(fā)實(shí)踐部分,主要介紹STM32的GPIO、中斷、定時(shí)器、USART、SPI、I2C、ADC/DAC、DMA等接口的資源配置、軟件編程以及應(yīng)用實(shí)踐;最后為綜合應(yīng)用開發(fā)部分,綜合應(yīng)用前面各章節(jié)知識(shí),獨(dú)立完整地開發(fā)一套可用的物聯(lián)網(wǎng)無(wú)線傳感節(jié)點(diǎn)產(chǎn)品。
(2) 按照STM32應(yīng)用開發(fā)的流程,對(duì)GPIO、USART、SPI、I2C、ADC/DAC等外設(shè)接口設(shè)計(jì)了多個(gè)導(dǎo)引式的學(xué)習(xí)情境案例,每個(gè)學(xué)習(xí)情境均將知識(shí)體系和實(shí)踐技能相結(jié)合,由淺及深地講解,使學(xué)生更容易理解和掌握,可以產(chǎn)生良好的教學(xué)效果。
(3) 充分體現(xiàn)了高職院校的教學(xué)特點(diǎn),引入STM32開發(fā)案例,設(shè)計(jì)STM32綜合應(yīng)用項(xiàng)目,在提高學(xué)生應(yīng)用技能的同時(shí),強(qiáng)化項(xiàng)目驅(qū)動(dòng),實(shí)現(xiàn)“工學(xué)結(jié)合”,提高了理論教學(xué)和實(shí)踐教學(xué)質(zhì)量。
本書內(nèi)容安排遵循嵌入式開發(fā)流程和循序漸進(jìn)的學(xué)習(xí)規(guī)律,結(jié)合案例加深對(duì)嵌入式系統(tǒng)的理解,讓學(xué)生掌握應(yīng)用開發(fā)的核心技能和方法,并通過綜合實(shí)踐培養(yǎng)學(xué)生獨(dú)立的工作能力。本書共11章,各章內(nèi)容安排如下:
第1章為Cortex-M3/M4體系結(jié)構(gòu),主要介紹STM32的內(nèi)核Cortex-M3/M4體系結(jié)構(gòu),從內(nèi)核充分了解STM32的功能及性能特點(diǎn)。
第2章為STM32處理器概述,主要介紹STM32處理器的命名方式、功能、資源以及外形封裝。
第3章為STM32開發(fā)與調(diào)試方法,主要介紹STM32開發(fā)環(huán)境的搭建、工程的創(chuàng)建、程序的下載以及不同的開發(fā)模式。
第4章為STM32最小系統(tǒng),主要介紹滿足STM32工作的最小電路的硬件組成結(jié)構(gòu),以及STM32工作的硬件基礎(chǔ)知識(shí)。
第5章為GPIO的功能與應(yīng)用,主要介紹GPIO的結(jié)構(gòu)和功能、GPIO的寄存器與庫(kù)函數(shù)以及GPIO口的應(yīng)用案例。
第6章為STM32中斷與編程,主要介紹STM32中斷過程、中斷控制器(NVIC)的配置過程、外部中斷(EXTI)結(jié)構(gòu)和配置過程以及中斷相關(guān)的實(shí)踐案例。
第7章為STM32定時(shí)器與編程,主要介紹STM32的三種不同用途的定時(shí)器,并按照不同用途講解應(yīng)用案例。
第8章為USART及其應(yīng)用,主要介紹USART作為STM32頻繁使用的片上外設(shè)的基本功能、串口中斷、串口相關(guān)的寄存器和庫(kù)函數(shù)以及串口應(yīng)用案例。
第9章為同步串行總線SPI和I2C,主要介紹STM32中常用的總線協(xié)議——I2C協(xié)議和SPI協(xié)議及其應(yīng)用與實(shí)踐。
第10章為ADC/DAC與DMA的原理及應(yīng)用,主要介紹STM32具有的ADC/DAC (模數(shù)/數(shù)模轉(zhuǎn)換)功能的使用配置方法以及DMA概述與應(yīng)用。
第11章為物聯(lián)網(wǎng)感知層應(yīng)用開發(fā),主要介紹STM32單片機(jī)技術(shù)在物聯(lián)網(wǎng)中的應(yīng)用案例,以STM32搭配WiFi模塊、ZigBee模塊、Bluetooth模塊、NB-IoT模塊、LoRa模塊等,實(shí)現(xiàn)不同場(chǎng)景的遠(yuǎn)距離無(wú)線通信。
本書的三位編者長(zhǎng)期從事ARM嵌入式應(yīng)用開發(fā)的各項(xiàng)工作,包括產(chǎn)品研發(fā)、ARM的應(yīng)用推廣、ARM嵌入式培訓(xùn)和教學(xué)工作。在撰寫本書的過程中我們得到了深圳信息職業(yè)技術(shù)學(xué)院、北京旋極信息技術(shù)股份有限公司、深圳市鶴洲富通科技有限公司的鼎力支持和幫助,在此一并表示衷心的感謝!
由于編者水平有限,書中難免存在不足之處,懇請(qǐng)讀者批評(píng)指正,我們將在隨后的修訂中逐步完善本書。衷心希望本書能在我國(guó)的職教事業(yè)發(fā)展中作出些許的貢獻(xiàn)。
編 者
2022年1月
第1章 Cortex-M3/M4體系結(jié)構(gòu) 1
1.1 Cortex-M3/M4內(nèi)核結(jié)構(gòu) 1
1.2 工作模式及狀態(tài) 3
1.3 寄存器 4
1.4 總線接口 7
1.5 存儲(chǔ)器組織與映射 9
1.6 指令集 13
1.6.1 ARM指令集 16
1.6.2 Thumb指令集 17
1.6.3 Thumb-2指令集 18
1.7 流水線 19
1.8 異常與中斷 19
1.8.1 異常和中斷的概念 19
1.8.2 中斷控制器 20
1.8.3 中斷、異常過程 21
1.8.4 嵌套優(yōu)先級(jí) 21
1.8.5 咬尾中斷 21
1.8.6 晚到異常 22
1.8.7 異常返回值 23
思考與練習(xí) 23
第2章 STM32處理器概述 24
2.1 STM32處理器命名 24
2.2 STM32處理器資源 25
2.3 STM32F407處理器 25
2.3.1 STM32F407系統(tǒng)架構(gòu) 26
2.3.2 STM32F407功能單元 27
2.3.3 STM32F407處理器資源 27
2.3.4 STM32F407引腳和封裝 29
思考與練習(xí) 31
第3章 STM32開發(fā)與調(diào)試方法 32
3.1 STM32的開發(fā)環(huán)境與使用 32
3.1.1 開發(fā)環(huán)境簡(jiǎn)介 32
3.1.2 開發(fā)環(huán)境的使用 33
3.2 STM32程序的開發(fā)模式 41
3.2.1 基于寄存器的開發(fā)模式 41
3.2.2 基于固件庫(kù)的開發(fā)模式 43
3.2.3 基于操作系統(tǒng)的開發(fā)模式 46
3.3 STM32工程的創(chuàng)建 46
3.3.1 STM32固件庫(kù) 46
3.3.2 創(chuàng)建工程 50
3.4 程序的下載(燒寫) 55
3.4.1 基于串口的程序下載 56
3.4.2 基于JTAG接口的程序下載 57
3.4.3 ST-Link調(diào)試程序 61
3.5 實(shí)踐案例(LED跑馬燈) 64
思考與練習(xí) 66
第4章 STM32最小系統(tǒng) 67
4.1 電源模塊 67
4.1.1 供電方案 67
4.1.2 電源管理器 69
4.1.3 低功耗模式 69
4.2 時(shí)鐘電路 70
4.2.1 HES時(shí)鐘和HSI時(shí)鐘 71
4.2.2 PLL鎖相環(huán) 72
4.2.3 LSE時(shí)鐘和LSI時(shí)鐘 73
4.2.4 系統(tǒng)時(shí)鐘SysCLK 73
4.2.5 RCC寄存器 75
4.3 復(fù)位電路 78
4.4 程序下載電路 79
4.5 STM32的最小系統(tǒng) 80
思考與練習(xí) 81
第5章 GPIO的功能與應(yīng)用 82
5.1 GPIO的結(jié)構(gòu)與功能 82
5.1.1 GPIO的硬件結(jié)構(gòu) 82
5.1.2 復(fù)用功能與鉗位功能 83
5.1.3 GPIO的輸入/輸出功能 84
5.1.4 GPIO的速度選擇 85
5.2 GPIO的寄存器與庫(kù)函數(shù) 86
5.2.1 GPIO的寄存器 86
5.2.2 GPIO的庫(kù)函數(shù) 88
5.2.3 寄存器與庫(kù)函數(shù)的關(guān)系 91
5.3 實(shí)踐案例 97
思考與練習(xí) 98
第6章 STM32中斷與編程 100
6.1 STM32中斷通道與中斷過程 100
6.1.1 STM32中斷通道 100
6.1.2 STM32的中斷過程 104
6.2 NVIC結(jié)構(gòu)及配置 105
6.2.1 NVIC結(jié)構(gòu) 105
6.2.2 STM32中斷優(yōu)先級(jí) 105
6.2.3 中斷向量表 106
6.2.4 NVIC寄存器和NVIC庫(kù)函數(shù) 107
6.3 EXTI結(jié)構(gòu)及配置 108
6.3.1 EXTI結(jié)構(gòu) 108
6.3.2 EXTI中斷與事件 109
6.3.3 EXTI中斷通道與中斷源 109
6.3.4 EXTI寄存器與EXTI庫(kù)函數(shù) 110
6.4 實(shí)踐案例 112
思考與練習(xí) 115
第7章 STM32定時(shí)器與編程 116
7.1 STM32通用定時(shí)器TIMx 116
7.1.1 時(shí)鐘源和時(shí)基單元 116
7.1.2 捕獲/比較通道 118
7.1.3 計(jì)數(shù)模式和定時(shí)中斷 120
7.1.4 TIMx寄存器和庫(kù)函數(shù) 121
7.2 STM32實(shí)時(shí)時(shí)鐘RTC 126
7.2.1 RTC的功能和結(jié)構(gòu) 126
7.2.2 RTC的控制寄存器和
備份寄存器 127
7.2.3 電源控制寄存器 129
7.2.4 RTC寄存器 130
7.3 STM32系統(tǒng)定時(shí)器 131
7.3.1 控制與狀態(tài)寄存器 132
7.3.2 重裝載寄存器 132
7.3.3 當(dāng)前值寄存器 132
7.4 STM32定時(shí)器應(yīng)用案例 133
7.4.1 TIMx應(yīng)用案例 133
7.4.2 RTC應(yīng)用案例 143
7.4.3 SysTick應(yīng)用案例 150
思考與練習(xí) 153
第8章 USART及其應(yīng)用 154
8.1 端口重映射 154
8.2 USART的功能和結(jié)構(gòu) 155
8.3 USART的幀格式、波特率設(shè)置 157
8.4 USART的中斷請(qǐng)求 159
8.5 USART的寄存器和庫(kù)函數(shù) 161
8.6 USART應(yīng)用案例 165
思考與練習(xí) 168
第9章 同步串行總線SPI和I2C 169
9.1 SPI概述及應(yīng)用要點(diǎn) 169
9.2 SPI接口應(yīng)用及實(shí)踐 171
9.3 I2C概述及應(yīng)用要點(diǎn) 177
9.4 I2C總線應(yīng)用及實(shí)踐 179
思考與練習(xí) 188
第10章 ADC/DAC與DMA的
原理及應(yīng)用 189
10.1 STM32的ADC 189
10.1.1 ADC的功能與結(jié)構(gòu) 189
10.1.2 ADC的工作模式 194
10.1.3 ADC中斷 195
10.1.4 ADC的寄存器和庫(kù)函數(shù) 195
10.1.5 ADC應(yīng)用案例 199
10.2 DAC的結(jié)構(gòu)和配置 204
10.3 DMA概述與應(yīng)用 210
10.3.1 DMA的功能與結(jié)構(gòu) 210
10.3.2 DMA的寄存器和庫(kù)函數(shù) 212
10.3.3 DMA的配置要點(diǎn) 215
思考與練習(xí) 221
第11章 物聯(lián)網(wǎng)感知層應(yīng)用開發(fā) 222
11.1 AT指令集及應(yīng)用 222
11.2 WiFi模塊應(yīng)用開發(fā) 224
11.2.1 WiFi模塊結(jié)構(gòu) 224
11.2.2 WiFi模塊編程實(shí)踐 229
11.3 ZigBee模塊應(yīng)用開發(fā) 246
11.3.1 ZigBee模塊結(jié)構(gòu) 246
11.3.2 ZigBee模塊協(xié)議棧 247
11.3.3 ZigBee模塊編程實(shí)踐 254
11.4 Bluetooth模塊應(yīng)用開發(fā) 257
11.4.1 Bluetooth模塊結(jié)構(gòu) 257
11.4.2 Bluetooth模塊編程實(shí)踐 259
11.5 NB-IoT模塊應(yīng)用開發(fā) 265
11.5.1 NB-IoT模塊的結(jié)構(gòu)特點(diǎn)及
工作模式 265
11.5.2 NB-IoT模塊編程實(shí)踐 271
11.6 LoRa模塊應(yīng)用開發(fā) 274
11.6.1 LoRa模塊的結(jié)構(gòu)特點(diǎn)及數(shù)據(jù)
管理 275
11.6.2 LoRa模塊編程實(shí)踐 276
思考與練習(xí) 284
附錄 英文縮略詞中文對(duì)照 285
參考文獻(xiàn) 288