图书目录

           第 1 章   绪论 ..................................................................................................................1

               1.1  嵌入式系统 ..................................................................................................................1

                    1.1.1 嵌入式系统概述 ...............................................................................................2

                    1.1.2 嵌入式系统和通用计算机系统比较 ................................................................3

                    1.1.3 嵌入式系统的特点 ...........................................................................................4

               1.2  嵌入式系统的组成 ......................................................................................................6

               1.3  实时操作系统 ..............................................................................................................8

                    1.3.1 实时系统的概念 ...............................................................................................8

                    1.3.2 实时操作系统的基本特征 ...............................................................................9

                    1.3.3 实时操作系统性能的衡量指标 ......................................................................10

                    1.3.4 实时操作系统的分类 .....................................................................................10

                    1.3.5 POSIX 标准 ................................................................................................... 11

                    1.3.6 实时操作系统的典型应用 .............................................................................12

               1.4  嵌入式系统的软件 ....................................................................................................12

                    1.4.1 无操作系统的嵌入式软件 .............................................................................12

                    1.4.2 带操作系统的嵌入式软件 .............................................................................12

                    1.4.3 嵌入式操作系统的分类 .................................................................................13

                    1.4.4 嵌入式实时操作系统的功能 ..........................................................................14

                    1.4.5 典型的嵌入式操作系统 .................................................................................15

                    1.4.6 软件架构选择建议 .........................................................................................22

               1.5  嵌入式系统的分类 ....................................................................................................22

                    1.5.1 按应用对象分类 .............................................................................................23

                    1.5.2 按功能和性能分类 .........................................................................................23

                    1.5.3 按结构复杂度分类 .........................................................................................23

               1.6  嵌入式系统的应用领域 .............................................................................................24

               1.7  嵌入式系统的体系 ....................................................................................................25

                    1.7.1 硬件架构 ........................................................................................................26

                    1.7.2 软件层次 ........................................................................................................26

全书.indd   5                                                                                     2024/3/7   15:46:49    VI     Arm 嵌入式系统原理及应用——STM32F103 微控制器架构、编程与开发

               1.8  嵌入式系统的设计方法 .............................................................................................29

                    1.8.1 嵌入式系统的总体结构 .................................................................................29

                    1.8.2 嵌入式系统设计流程 .....................................................................................30

                    1.8.3 嵌入式系统的软/硬件协同设计技术 .............................................................32

           第 2 章   嵌入式微处理器 ...............................................................................................34

               2.1 Arm  嵌入式微处理器简介 .........................................................................................34

                    2.1.1 Arm 处理器的特点 .........................................................................................34

                    2.1.2 Arm 体系结构的版本和系列..........................................................................35

                    2.1.3 Arm 的  RISC 结构特性 ..................................................................................38

                    2.1.4 Arm 处理器系列 ............................................................................................38

                    2.1.5  Arm Cortex-M 处理器 ....................................................................................41

               2.2  嵌入式处理器的分类和特点 .....................................................................................42

               2.3 Cortex-M3  嵌入式微处理器 ......................................................................................45

                    2.3.1 Arm 概述 ........................................................................................................45

                    2.3.2 CISC 和  RISC ................................................................................................48

                    2.3.3 Arm 架构的演变 ............................................................................................50

                    2.3.4 Arm 体系结构与特点 .....................................................................................52

                    2.3.5 Cortex-M 系列处理器 ....................................................................................54

                    2.3.6 Cortex-M3 处理器的主要特性 .......................................................................56

                    2.3.7 Cortex-M3 处理器结构 ..................................................................................57

                    2.3.8 存储器系统 ....................................................................................................59

           第 3 章 STM32     系列微控制器 ......................................................................................62

               3.1 STM32   微控制器概述 ...............................................................................................62

                    3.1.1 STM32 微控制器产品介绍 ............................................................................63

                    3.1.2 STM32  系统性能分析 ....................................................................................67

                    3.1.3 STM32  微控制器的命名规则 ........................................................................68

                    3.1.4 STM32  微控制器的选型 ................................................................................72

               3.2 STM32F1   系列产品系统架构和           STM32F103ZET6   内部架构 ..................................73

                    3.2.1 STM32F1  系列产品系统架构 ........................................................................74

                    3.2.2 STM32F103ZET6    内部架构 ..........................................................................76

               3.3 STM32F103ZET6    的存储器映像 ..............................................................................79

                    3.3.1 STM32F103ZET6    内置外设的地址范围 ........................................................81

                    3.3.2 嵌入式    SRAM ................................................................................................82

全书.indd   6                                                                                     2024/3/7   15:46:49                                                                                           目录        VII

                    3.3.3 嵌入式    Flash ..................................................................................................83

               3.4 STM32F103ZET6    的时钟结构 ..................................................................................84

               3.5 STM32F103VET6    的引脚 .........................................................................................87

               3.6 STM32F103VET6 最小系统设计 ..............................................................................92

           第 4 章   嵌入式开发环境的搭建 ....................................................................................95

               4.1  Keil MDK5 安装配置 ................................................................................................95

                    4.1.1  Keil MDK 简介 ..............................................................................................95

                    4.1.2  Keil MDK 下载 ..............................................................................................98

                    4.1.3  Keil MDK 安装 ..............................................................................................99

                    4.1.4 安装库文件 ..................................................................................................101

               4.2  Keil MDK 新工程的创建 ........................................................................................102

                    4.2.1 建立文件夹 ..................................................................................................102

                    4.2.2 打开   Keil μVision .........................................................................................102

                    4.2.3 新建工程 ......................................................................................................103

               4.3 Cortex-M3 微控制器软件接口标准             CMSIS ............................................................104

                    4.3.1 CMSIS 介绍 .................................................................................................105

                    4.3.2 STM32F10x   标准外设库 ..............................................................................106

               4.4 STM32F103   开发板的选择 ..................................................................................... 110

               4.5 STM32   仿真器的选择 ............................................................................................. 110

           第 5 章 STM32     中断 .................................................................................................. 113

               5.1  中断概述 ................................................................................................................. 113

                    5.1.1 中断 ............................................................................................................. 114

                    5.1.2 中断的功能 .................................................................................................. 114

                    5.1.3 中断源与中断屏蔽 ....................................................................................... 115

                    5.1.4 中断处理过程 .............................................................................................. 116

                    5.1.5 中断优先级与中断嵌套 ............................................................................... 118

               5.2 STM32F1   中断系统 ................................................................................................. 119

                    5.2.1 STM32F1  嵌套向量中断控制器 .................................................................. 119

                    5.2.2 STM32F1  中断优先级 .................................................................................120

                    5.2.3 STM32F1  中断向量表 .................................................................................121

                    5.2.4 STM32F1  中断服务函数 ..............................................................................124

               5.3 STM32F1   外部中断     / 事件控制器     EXTI .................................................................125

                    5.3.1 STM32F1  的 EXTI   内部结构 .......................................................................125

全书.indd   7                                                                                     2024/3/7   15:46:49  VIII     Arm 嵌入式系统原理及应用——STM32F103 微控制器架构、编程与开发

                    5.3.2 STM32F1  的 EXTI   工作原理 .......................................................................128

                    5.3.3 STM32F1  的  EXTI  主要特性 .......................................................................129

               5.4 STM32F1   的中断系统库函数 ..................................................................................129

                    5.4.1 STM32F1  的  NVIC  相关库函数 ..................................................................130

                    5.4.2 STM32F1  的  EXTI  相关库函数 ...................................................................133

                    5.4.3 STM32F1  的  EXTI  中断线   GPIO  引脚映射库函数 .....................................137

               5.5 STM32F1   外部中断设计流程 ..................................................................................137

                    5.5.1 NVIC 设置 ...................................................................................................137

                    5.5.2 中断端口配置 ..............................................................................................138

                    5.5.3 中断处理 ......................................................................................................139

               5.6 STM32F1   外部中断设计实例 ..................................................................................140

                    5.6.1 STM32F1  外部中断硬件设计 ......................................................................140

                    5.6.2 STM32F1  外部中断软件设计 ......................................................................140

           第 6 章  STM32 GPIO ................................................................................................146

               6.1 STM32   通用输入输出接口概述 ..............................................................................146

                    6.1.1 输入通道 ......................................................................................................148

                    6.1.2 输出通道 ......................................................................................................149

               6.2 STM32   的 GPIO  功能 ..............................................................................................150

                    6.2.1 普通   I/O 功能 ...............................................................................................150

                    6.2.2 单独的位设置或位清除 ...............................................................................150

                    6.2.3 外部中断/唤醒线 .........................................................................................150

                    6.2.4 复用功能 ......................................................................................................151

                    6.2.5 软件重新映射       I/O 复用功能 ........................................................................151

                    6.2.6 GPIO  锁定机制 ............................................................................................151

                    6.2.7 输入配置 ......................................................................................................151

                    6.2.8 输出配置 ......................................................................................................152

                    6.2.9 复用功能配置 ..............................................................................................153

                    6.2.10 模拟输入配置 ............................................................................................153

                    6.2.11 STM32  的  GPIO 操作 ................................................................................154

                    6.2.12 外部中断映射和事件输出 ..........................................................................156

                    6.2.13 GPIO  的主要特性 ......................................................................................156

               6.3 STM32   的 GPIO  常用库函数 ..................................................................................157

               6.4 STM32   的 GPIO  使用流程 ......................................................................................165

                    6.4.1 普通   GPIO 配置 ...........................................................................................165

全书.indd   8                                                                                     2024/3/7   15:46:50                                                                                           目录        IX

                    6.4.2 I/O 复用功能    AFIO  配置 .............................................................................165

               6.5 STM32   的 GPIO  输出应用实例 ...............................................................................165

                    6.5.1 STM32  的  GPIO 输出应用硬件设计 ............................................................165

                    6.5.2 STM32  的  GPIO 输出应用软件设计 ............................................................166

               6.6 STM32   的 GPIO  输入应用实例 ...............................................................................172

                    6.6.1 STM32  的  GPIO 输入应用硬件设计 ............................................................172

                    6.6.2 STM32  的  GPIO 输入应用软件设计 ............................................................172

           第 7 章 STM32     定时器 ..............................................................................................176

               7.1 STM32   定时器概述 .................................................................................................176

               7.2 STM32   基本定时器 .................................................................................................179

                    7.2.1 基本定时器介绍 ...........................................................................................179

                    7.2.2 基本定时器的功能 .......................................................................................180

                    7.2.3 STM32  基本定时器的寄存器 ......................................................................182

               7.3 STM32   通用定时器 .................................................................................................183

                    7.3.1 通用定时器介绍 ...........................................................................................183

                    7.3.2 通用定时器的功能描述 ...............................................................................183

                    7.3.3 通用定时器的工作模式 ...............................................................................188

                    7.3.4 通用定时器的寄存器 ...................................................................................192

               7.4 STM32   定时器库函数 .............................................................................................192

               7.5 STM32   定时器应用实例 .........................................................................................205

                    7.5.1 STM32  的通用定时器配置流程 ...................................................................205

                    7.5.2 定时器应用的硬件设计 ...............................................................................207

                    7.5.3 定时器应用的软件设计 ...............................................................................207

               7.6 SysTick 系统滴答定时器 ......................................................................................... 211

                    7.6.1 SysTick 功能综述 ........................................................................................ 211

                    7.6.2 SysTick 配置例程 ........................................................................................213

           第 8 章 STM32 通用同步/异步收发器 ........................................................................215

               8.1  串行通信基础 ..........................................................................................................215

                    8.1.1 串行异步通信数据格式 ...............................................................................215

                    8.1.2 串行同步通信数据格式 ...............................................................................216

               8.2 STM32   的 USART   工作原理 ...................................................................................216

                    8.2.1 USART  介绍 ................................................................................................217

                    8.2.2 USART  的主要特性 .....................................................................................217

全书.indd   9                                                                                     2024/3/7   15:46:50    X      Arm 嵌入式系统原理及应用——STM32F103 微控制器架构、编程与开发

                    8.2.3 USART  的功能 ............................................................................................218

                    8.2.4 USART  的通信时序 .....................................................................................221

                    8.2.5 USART  的中断 ............................................................................................222

                    8.2.6 USART  的相关寄存器 .................................................................................222

               8.3 STM32   的 USART 库函数 .......................................................................................223

               8.4 STM32   的 USART   串行通信应用实例 ....................................................................231

                    8.4.1 STM32  的  USART  基本配置流程 ................................................................231

                    8.4.2 USART  串行通信应用的硬件设计 ..............................................................232

                    8.4.3 USART  串行通信应用的软件设计 ..............................................................233

           第 9 章  STM32 SPI    串行总线 ....................................................................................241

               9.1 STM32   的 SPI 通信原理 ..........................................................................................241

                    9.1.1 SPI 串行总线概述 ........................................................................................242

                    9.1.2 SPI 串行总线互连方式 ................................................................................244

               9.2  STM32F1 SPI  串行总线的工作原理 .......................................................................245

                    9.2.1 SPI 串行总线的特征 ....................................................................................245

                    9.2.2 SPI 串行总线的内部结构.............................................................................246

                    9.2.3 SPI 串行总线时钟信号的相位和极性 ..........................................................248

                    9.2.4 STM32  的  SPI 配置 ......................................................................................249

                    9.2.5 STM32  的  SPI 数据发送与接收过程 ...........................................................251

               9.3 STM32   的 SPI 库函数 .............................................................................................253

               9.4  STM32 SPI 与  Flash 存储器接口的应用实例 ..........................................................256

                    9.4.1 STM32  的  SPI 配置流程 ..............................................................................256

                    9.4.2 SPI 与 Flash 存储器接口的硬件设计 ...........................................................257

                    9.4.3 SPI 与 Flash 存储器接口的软件设计 ...........................................................257

           第 10 章  STM32 I2C    串行总线 ...................................................................................265

               10.1  STM32 I2C  串行总线的通信原理 .........................................................................265

                     10.1.1  STM32 I2C 串行总线概述 .......................................................................265

                     10.1.2  STM32 I2C 串行总线的数据传输 ............................................................268

               10.2  STM32 I2C  串行总线接口 .....................................................................................270

                     10.2.1  STM32 I2C 串行总线的主要特性 ............................................................270

                     10.2.2  STM32 I2C 串行总线的内部结构 ............................................................271

                     10.2.3  STM32 I2C 串行总线的功能描述 ............................................................272

               10.3 STM32F103   的  I2C 库函数 ...................................................................................273

全书.indd   10                                                                                    2024/3/7   15:46:50                                                                                           目录        XI

               10.4  STM32 I2C  与 EEPROM   接口的应用实例 ............................................................279

                     10.4.1 STM32  的  I2C 配置流程 ..........................................................................279

                     10.4.2  STM32 I2C 与  EEPROM   接口的硬件设计 ..............................................280

                     10.4.3  STM32 I2C 与  EEPROM   接口的软件设计 ..............................................280

           第 11 章  STM32 A/D    转换器 ......................................................................................287

               11.1  模拟量输入通道 ....................................................................................................287

                     11.1.1 模拟量输入通道的组成 ............................................................................287

                     11.1.2 A/D 转换器简介 .......................................................................................287

               11.2  模拟量输入信号类型与量程自动转换 ..................................................................288

                     11.2.1 模拟量输入信号类型 ...............................................................................288

                     11.2.2 量程自动转换 ...........................................................................................288

               11.3 STM32F103ZET6    集成的    ADC  模块.....................................................................289

                     11.3.1 STM32  的  ADC  主要特征 ........................................................................289

                     11.3.2 STM32  的  ADC  模块结构 ........................................................................290

                     11.3.3 STM32  的  ADC  功能................................................................................294

                     11.3.4 STM32  的  ADC  应用特征 ........................................................................298

               11.4 STM32   的 ADC  库函数 .........................................................................................302

               11.5 STM32   的模数转换器应用实例 ............................................................................ 311

                     11.5.1 STM32  的  ADC  配置流程 ........................................................................ 311

                     11.5.2 ADC  应用的硬件设计 ..............................................................................312

                     11.5.3 ADC  应用的软件设计 ..............................................................................312

           第 12 章  STM32 DMA     控制器 ....................................................................................319

               12.1  STM32 DMA   的基本概念 .....................................................................................319

                     12.1.1 DMA   的定义 ............................................................................................319

                     12.1.2 DMA   在嵌入式实时系统中的价值 ..........................................................320

                     12.1.3 DMA   传输的基本要素 .............................................................................321

                     12.1.4 DMA   传输过程 ........................................................................................321

                     12.1.5 DMA   的优点与应用 .................................................................................321

               12.2  STM32 DMA   的结构和主要特征 ..........................................................................322

               12.3  STM32 DMA   的功能描述 .....................................................................................324

                     12.3.1 DMA   处理 ................................................................................................324

                     12.3.2 仲裁器 ......................................................................................................324

                     12.3.3 DMA   通道 ................................................................................................324

全书.indd   11                                                                                    2024/3/7   15:46:50   XII     Arm 嵌入式系统原理及应用——STM32F103 微控制器架构、编程与开发

                     12.3.4 DMA 中断 ................................................................................................326

               12.4 STM32   的 DMA   库函数 ........................................................................................326

               12.5 STM32   的 DMA   应用实例 ....................................................................................333

                     12.5.1 STM32  的  DMA  配置流程 .......................................................................333

                     12.5.2 DMA   应用的硬件设计 .............................................................................334

                     12.5.3 DMA   应用的软件设计 .............................................................................334

           参考文献 .....................................................................................................................340

全书.indd   12                                                                                    2024/3/7   15:46:50