本書以新工科教育理念為指導,以產教融合為突破口,結合最新技術,面向產業(yè)需求組織內容,從科研、教學和工程實際應用出發(fā),理論聯(lián)系實際,全面、系統(tǒng)地介紹了基于STM32F103系列微控制器的嵌入式系統(tǒng)設計與應用實例。
本書是作者在教學與科研實踐經驗的基礎上,結合多年來STM32嵌入式系統(tǒng)的發(fā)展編寫而成的。全書共11章,主要內容包括:緒論、STM32微控制器與最小系統(tǒng)設計、嵌入式開發(fā)環(huán)境的搭建、STM32通用輸入/輸出接口(GPIO)、STM32中斷系統(tǒng)、STM32定時器系統(tǒng)、STM32通用同步/異步收發(fā)器(USART)、STM32 SPI控制器、STM32 I2C控制器、STM32模數轉換器(ADC)、STM32 DMA控制器。
本書可作為高等院校自動化、機器人、自動檢測、機電一體化、人工智能、電子與電氣工程、計算機應用、信息工程、物聯(lián)網等相關專業(yè)的本、專科學生及研究生教材,也可供從事STM32微控制器開發(fā)的工程技術人員參考。
配套資源:教學用PPT、電子教案、課程教學大綱、試卷(含答案及評分標準)、習題參考答案
本書特色:
1)基于流行的STM32F103系列微控制器介紹嵌入式系統(tǒng)的設計與應用。
2)內容精練、圖文并茂、循序漸進、重點突出。
3)不介紹煩瑣的STM32寄存器,重點講述STM32庫函數。
4)以理論為基礎,以應用為主導,章節(jié)內容前后安排邏輯性強、層次分明、易教易學。
5)結合國內主流硬件開發(fā)板即正點原子STM32F103(戰(zhàn)艦),書中給出了各個外設模塊的硬件設計和軟件設計實例,其代碼均在開發(fā)板上調試通過,并可通過TFTLCD或串口調試助手查看調試結果,可以很好地鍛煉學生的硬件理解能力和軟件編程能力,起到舉一反三的效果。
前 言
近半個世紀以來,以計算機技術為代表的信息技術革命深刻地改變了人類社會的生產和生活方式。與人們朝夕相處的計算機也從傳統(tǒng)意義上的PC,依靠嵌入式系統(tǒng)衍生出手機、數字電視、無人機、工控設備等。伴隨著物聯(lián)網和人工智能等新興交叉學科的興起,具有信息收集、處理和聯(lián)網功能且體積、成本嚴格可控的嵌入式系統(tǒng),具有很強的實踐性和綜合性,是新工科教育最好的試驗田。黨的二十大報告指出:科技是第一生產力、人才是第一資源、創(chuàng)新是第一動力。新工科作為人才培養(yǎng)的新理念、新模式,正成為我國大學教育的一種創(chuàng)新與探索。新工科教育要求全面落實學生中心、成果導向、持續(xù)改進的教育理念。作者正是在這一理念指導下,結合教學現(xiàn)狀與需求編寫了本書,希望為我國新工科教育略盡綿薄之力。
嵌入式系統(tǒng)的發(fā)展確實超乎人們的想象。從早期的8位單片機,到目前主流的32位單片機,嵌入式系統(tǒng)應用已滲透到生產、生活的各個方面。作為ARM單片機的一個典型系列,STM32微控制器以其較高的性能和優(yōu)越的性價比,毫無疑問地成為32位單片機市場的主流。把STM32微控制器引入大學的培養(yǎng)體系,已經成為高校的共識和共同實踐。
ARM公司基于市場需求率先推出了一款基于ARMV7架構的32位ARM Cortex-M微控制器內核。Cortex-M系列內核支持兩種運行模式,即線程模式(Thread Mode)與處理模式(Handler Mode),這兩種模式都有各自獨立的堆棧,使得內核更加支持實時操作系統(tǒng)。并且Cortex-M系列內核支持Thumb-2指令集,因此基于Cortex-M系列內核的微控制器的開發(fā)和應用可以在C語言環(huán)境中完成。
Cortex-M系列內核誕生之后,意法半導體(ST)公司積極應對當今嵌入式產品市場的新要求和新挑戰(zhàn),推出了基于Cortex-M系列內核的STM32微控制器。它具有出色的微控制器內核和完善的系統(tǒng)結構設計,且具有易于開發(fā)、性能高、兼容性好、功耗低、實時處理能力和數字信號處理能力強等優(yōu)點,這使得STM32微控制器一經上市就迅速占領了中低端微控制器市場。
本書以ST公司的基于32位ARM內核的STM32F103為背景機型,介紹嵌入式系統(tǒng)的原理與應用。
本書的特點包括以下幾點:
1)基于流行的STM32F103系列微控制器介紹嵌入式系統(tǒng)的設計與應用。
2)內容精練、圖文并茂、循序漸進、重點突出。
3)不介紹煩瑣的STM32寄存器,重點講述STM32庫函數。
4)以理論為基礎,以應用為主導,章節(jié)內容前后安排邏輯性強、層次分明、易教易學。
5)結合國內主流硬件開發(fā)板即正點原子STM32F103(戰(zhàn)艦),書中給出了各個外設模塊的硬件設計和軟件設計實例,其代碼均在開發(fā)板上調試通過,并可通過TFTLCD或串口調試助手查看調試結果,可以很好地鍛煉學生的硬件理解能力和軟件編程能力,起到舉一反三的效果。
本書共11章。第1章對嵌入式系統(tǒng)進行了概述,介紹了嵌入式系統(tǒng)的組成、嵌入式系統(tǒng)的軟件、嵌入式系統(tǒng)的分類、嵌入式系統(tǒng)的應用領域、嵌入式系統(tǒng)的體系、嵌入式處理器分類、ARM嵌入式微處理器、ARM Cortex-M3處理器的調試、嵌入式系統(tǒng)的設計方法和嵌入式系統(tǒng)的發(fā)展;第2章對STM32微控制器與最小系統(tǒng)設計進行了概述,介紹了STM32F1系列產品系統(tǒng)架構和STM32F103ZET6內部架構、STM32F103ZET6的存儲器映像、STM32F103ZET6的時鐘結構、STM32F103VET6的引腳、STM32F103VET6 最小系統(tǒng)設計和學習STM32微控制器的方法;第3章介紹了嵌入式開發(fā)環(huán)境的搭建,包括Keil MDK5安裝配置、Keil MDK下新工程的創(chuàng)建、J-Link驅動安裝、Keil MDK5調試方法、Cortex-M3 微控制器軟件接口標準(CMSIS)、STM32F103開發(fā)板的選擇和STM32仿真器的選擇;第4章介紹了STM32通用輸入/輸出接口(GPIO),包括通用輸入/輸出接口概述、GPIO的功能、GPIO常用庫函數、GPIO使用流程、GPIO按鍵輸入應用實例和GPIO LED輸出應用實例;第5章介紹了STM32中斷系統(tǒng),包括中斷的基本概念、STM32F103中斷系統(tǒng)、STM32F103外部中斷/事件控制器(EXTI)、STM32F10x的中斷系統(tǒng)庫函數、外部中斷設計流程和外部中斷設計實例;第6章介紹了STM32定時器系統(tǒng),包括STM32F103定時器概述、基本定時器、通用定時器、高級定時器、定時器庫函數、定時器應用實例和系統(tǒng)滴答定時器(SysTick);第7章介紹了STM32通用同步/異步收發(fā)器(USART),包括串行通信基礎、USART工作原理、USART 庫函數和USART串行通信應用實例;第8章介紹了STM32 SPI控制器,包括STM32的SPI通信原理、STM32F103的SPI工作原理、SPI庫函數、SPI串行總線應用實例;第9章介紹了STM32 I2C控制器,包括I2C通信原理、STM32F103的I2C接口、STM32F103的I2C庫函數和I2C控制器應用實例;第10章介紹了STM32模數轉換器(ADC),包括模擬量輸入通道、模擬量輸入信號類型與量程自動轉換、STM32F103ZET6集成的ADC模塊、ADC庫函數和模數轉換器(ADC)應用實例;第11章介紹了STM32 DMA控制器,包括STM32 DMA的基本概念、DMA的結構和主要特征、DMA的功能描述、DMA庫函數和DMA應用實例。
本書結合作者多年的科研和教學經驗,遵循循序漸進、理論與實踐并重、共性與個性兼顧的原則,將理論實踐一體化的思想融入其中。書中實例開發(fā)過程用到的
第1章 緒論1
1.1 嵌入式系統(tǒng)1
1.2 嵌入式系統(tǒng)的組成5
1.3 嵌入式系統(tǒng)的軟件7
1.4 嵌入式系統(tǒng)的分類14
1.5 嵌入式系統(tǒng)的應用領域16
1.6 嵌入式系統(tǒng)的體系16
1.7 嵌入式處理器分類20
1.8 ARM嵌入式微處理器21
1.9 ARM Cortex-M3處理器的調試34
1.10 嵌入式系統(tǒng)的設計方法34
1.11 嵌入式系統(tǒng)的發(fā)展38
習題41
第2章 STM32微控制器與最小系統(tǒng)設計43
2.1 STM32微控制器概述43
2.2 STM32F1系列微控制器系統(tǒng)架構和STM32F103ZET6內部架構51
2.3 STM32F103ZET6的存儲器映像56
2.4 STM32F103ZET6的時鐘結構60
2.5 STM32F103VET6的引腳63
2.6 STM32F103VET6最小系統(tǒng)設計67
2.7 學習STM32微控制器的方法70
習題70
第3章 嵌入式開發(fā)環(huán)境的搭建71
3.1 Keil MDK5安裝配置71
3.2 Keil MDK下新工程的創(chuàng)建78
3.3 J-Link驅動安裝81
3.4 Keil MDK5調試方法83
3.5 Cortex-M3微控制器軟件接口標準(CMSIS)89
3.6 STM32F103開發(fā)板的選擇94
3.7 STM32仿真器的選擇98
習題99
第4章 STM32通用輸入/輸出
接口(GPIO)100
4.1 通用輸入/輸出接口概述100
4.2 GPIO的功能102
4.3 GPIO常用庫函數107
4.4 GPIO使用流程114
4.5 GPIO按鍵輸入應用實例115
4.6 GPIO LED輸出應用實例118
習題120
第5章 STM32中斷系統(tǒng)121
5.1 中斷的基本概念121
5.2 STM32F103 中斷系統(tǒng)125
5.3 STM32F103外部中斷/事件控制器(EXTI)129
5.4 STM32F10x的中斷系統(tǒng)庫函數133
5.5 外部中斷設計流程141
5.6 外部中斷設計實例143
習題148
第6章 STM32定時器系統(tǒng)149
6.1 STM32F103定時器概述149
6.2 基本定時器150
6.3 通用定時器153
6.4 高級定時器161
6.5 定時器庫函數162
6.6 定時器應用實例174
6.7 系統(tǒng)滴答定時器(SysTick)177
習題180
第7章 STM32通用同步/異步
收發(fā)器(USART)181
7.1 串行通信基礎181
7.2 USART工作原理183
7.3 USART庫函數188
7.4 USART串行通信應用實例195
習題201
第8章 STM32 SPI控制器202
8.1 STM32的SPI通信原理202
8.2 STM32F103的SPI工作原理205
8.3 SPI庫函數209
8.4 SPI串行總線應用實例211
習題221
第9章 STM32 I2C控制器222
9.1 I2C通信原理222
9.2 STM32F103的I2C接口227
9.3 STM32F103的I2C庫函數229
9.4 I2C控制器應用實例234
習題243
第10章 STM32模數轉換器(ADC)244
10.1 模擬量輸入通道244
10.2 模擬量輸入信號類型與量程自動轉換245
10.3 STM32F103ZET6集成的ADC模塊245
10.4 ADC庫函數254
10.5 模數轉換器(ADC)應用實例262
習題267
第11章 STM32 DMA控制器268
11.1 STM32 DMA的基本概念268
11.2 DMA的結構和主要特征270
11.3 DMA的功能描述271
11.4 DMA庫函數273
11.5 DMA應用實例279
習題285
附錄 常用專有名詞中英文對照286
參考文獻288