本书主要以STM32F429微控制器为对象讲解嵌入式系统设计方法、实例。全书分为17章,主要对嵌入式系统,ARM Cortex-M体系架构,STM32F429微控制器内部构造及其常用的片上外设结构、应用实例、程序开发方法进行了讲解。书中对常用的应用进行了实例讲解,给出了清晰的系统应用设计思路,并明确了每个应用的设计步骤,提供了每个应用的程序源代码,使初学者在学习了相关基本知识后能够对具体的设计一看即懂。本书设计了适量习题,习题内容紧贴各章核心内容,涵盖基本概念及相关应用,能够起到巩固重要知识点的作用。本书适用于电子、通信、电气、测控、计算机、物联网等专业的在校生和嵌入式系统设计的爱好者。
		
	
徐灵飞,"嵌入式系统设计”精品课程负责人,教授"嵌入式系统设计”课程多年,承担"民办高校重点特色专业质量提升计划”的专业建设工作等。
第1章 嵌入式系统	1
1.1 嵌入式系统概述	1
1.1.1 嵌入式系统的定义	1
1.1.2 嵌入式系统的特点	1
1.1.3 嵌入式系统的应用	2
1.2 嵌入式系统的体系	2
1.2.1 硬件架构	3
1.2.2 软件层次	3
1.3 嵌入式硬件系统	6
1.3.1 嵌入式处理器分类	6
1.3.2 典型嵌入式处理器	7
1.3.3 存储系统	9
1.3.4 I/O接口	10
1.3.5 人机接口	10
1.3.6 电源及其他设备	10
1.4 嵌入式操作系统	10
1.4.1 嵌入式操作系统的发展	10
1.4.2 嵌入式操作系统的分类	11
1.4.3 嵌入式实时操作系统的功能	12
1.4.4 常用的嵌入式操作系统	13
1.5 嵌入式系统的设计	14
1.5.1 嵌入式系统设计流程	14
1.5.2 嵌入式系统开发环境搭建	15
习题	16
第2章 ARM Cortex-M体系架构	18
2.1 ARM Cortex体系架构概述	18
2.1.1 CISC和RISC	18
2.1.2 ARM架构发展史	20
2.1.3 ARM处理器的类型	20
2.1.4 Cortex-M系列处理器	22
2.2 Cortex-M4内核基础	23
2.2.1 寄存器组	24
2.2.2 堆栈操作	26
2.2.3 特殊功能寄存器组	27
2.2.4 操作模式	28
2.3 存储器系统	30
2.3.1 数据类型	30
2.3.2 存储形式	30
2.3.3 存储器映射	31
2.3.4 位带区	32
2.4 异常和中断	33
2.4.1 向量表	34
2.4.2 优先级	35
2.4.3 响应过程	36
2.4.4 复位	38
习题	39
第3章 STM32F429微控制器	40
3.1 STM32系列微控制器	40
3.1.1 STM32系列微控制器概述	40
3.1.2 芯片命名规则	41
3.1.3 开发工具	41
3.1.4 STM32标准函数库介绍	46
3.2 STM32F429微控制器结构	51
3.2.1 芯片资源	51
3.2.2 芯片内部结构	52
3.2.3 芯片引脚和功能	55
3.2.4 电源系统	57
3.2.5 复位系统	60
3.3 STM32F4系列微控制器存储器映射和寄存器	61
3.3.1 存储器映射	61
3.3.2 自举配置	63
3.3.3 寄存器映射	63
习题	67
第4章 启动文件和SysTick	69
4.1 启动文件	69
4.1.1 启动文件概述	69
4.1.2 启动步骤	69
4.2 启动文件代码讲解	70
4.3 SysTick	75
4.3.1 SysTick概述	75
4.3.2 SysTick的库函数	76
4.3.3 应用实例	78
习题	79
第5章 GPIO	80
5.1 GPIO结构原理	80
5.1.1 GPIO功能描述	80
5.1.2 GPIO输入配置	81
5.1.3 GPIO输出配置	82
5.1.4 GPIO复用功能配置	84
5.1.5 GPIO模拟功能配置	85
5.2 GPIO相关寄存器	86
5.2.1 模式寄存器	86
5.2.2 输出类型寄存器	86
5.2.3 输出速度寄存器	87
5.2.4 上拉/下拉寄存器	87
5.2.5 输入数据寄存器	88
5.2.6 输出数据寄存器	88
5.2.7 置位/复位寄存器	89
5.2.8 配置锁存寄存器	90
5.2.9 复用功能寄存器	90
5.3 GPIO典型应用步骤及常用库函数	92
5.3.1 GPIO典型应用步骤	92
5.3.2 常用库函数	93
5.4 应用实例	97
5.4.1 GPIO输出应用实例	97
5.4.2 GPIO输入应用实例	99
5.4.3 GPIO复用应用实例	101
5.4.4 矩阵按键应用	102
习题	106
第6章 NVIC	108
6.1 NVIC的中断类型及中断管理方法	108
6.1.1 中断类型	108
6.1.2 中断管理方法	109
6.2 常用库函数	110
6.3 应用实例	112
习题	113
第7章 EXTI	114
7.1 EXTI概述	114
7.1.1  EXTI结构	114
7.1.2 GPIO相关EXTI线	116
7.2 EXTI典型应用步骤及常用库函数	116
7.2.1 EXTI典型应用步骤	116
7.2.2 常用库函数	117
7.3 应用实例	119
习题	121
第8章  时钟系统	122
8.1 时钟系统结构	122
8.1.1 时钟源	124
8.1.2 HSE时钟	124
8.1.3 PLL配置	125
8.1.4 LSE 时钟	126
8.1.5 LSI时钟	126
8.1.6 时钟输出功能	126
8.2 PLL时钟系统配置步骤及常用库函数	126
8.2.1 PLL时钟系统配置步骤	127
8.2.2 常用库函数	127
8.3 应用实例	130
习题	132
第9章  定时器系统	133
9.1 定时器系统概述	133
9.1.1  定时器结构	134
9.1.2  时钟源	134
9.2  基本定时功能	137
9.2.1  时基单元	137
9.2.2  计数模式	138
9.3  捕抓/比较功能	141
9.3.1  输入捕抓/比较输出通道	141
9.3.2  输入捕抓模式	143
9.3.3  输出模式	144
9.3.4  编码器接口模式	147
9.4  定时器典型应用步骤及常用库函数	150
9.4.1  基本定时功能应用步骤	150
9.4.2  输入捕抓模式应用步骤	150
9.4.3  PWM输出应用步骤	152
9.4.4  编码器接口应用步骤	153
9.4.5  常用库函数	155
9.5  应用实例	159
9.5.1  定时器控制实现灯闪烁	159
9.5.2  直流电机调速控制	161
9.5.3  测量外部输入脉冲频率	164
9.5.4 测量电机转速和方向	167
习题	170
第10章  DMA控制器	171
10.1 DMA控制器概述	171
10.1.1 DMA控制器主要特性	171
10.1.2 DMA控制器结构	172
10.2 DMA控制器功能	173
10.2.1 DMA事务	173
10.2.2 数据流	174
10.2.3 通道	174
10.2.4 仲裁	175
10.2.5 循环模式	176
10.2.6 单次和突发模式	176
10.2.7  FIFO	176
10.2.8 DMA中断	177
10.2.9 DMA数据流配置过程	177
10.3 DMA典型应用步骤及常用库函数	178
10.3.1 DMA典型应用步骤	178
10.3.2 常用库函数	179
10.4  应用实例	181
习题	183
第11章  通用同步异步收发器(USART)	184
11.1 通信概述	184
11.1.1 并行通信和串行通信	184
11.1.2 单工通信、半双工通信、全双工通信	185
11.1.3 同步通信和异步通信	185
11.1.4 RS-232	186
11.2  STM32F429微控制器的USART结构	188
11.2.1  USART概述	188
11.2.2 波特率设置	192
11.2.3  USART中断	193
11.2.4 DMA控制	193
11.3 USART典型应用步骤及常用库函数	194
11.3.1 USART典型应用步骤	194
11.3.2 常用库函数	194
11.4 应用实例	197
11.4.1 通过串口向计算机传输100个字节	197
11.4.2 串口与计算机回显功能实现	199
11.4.3 利用DMA通过串口向计算机传输1000个字节	202
习题	204
第12章  模数转换器(ADC)	205
12.1 ADC概述	205
12.1.1 A/D转换过程	205
12.1.2 ADC原理	206
12.2  STM32F429微控制器的ADC结构	208
12.3  STM32F429微控制器的ADC功能	212
12.3.1  ADC使能和启动	212
12.3.2  时钟配置	213
12.3.3  转换模式	213
12.3.4  DMA控制	214
12.4  ADC典型应用步骤及常用库函数	215
12.4.1  ADC典型应用步骤	215
12.4.2  常用库函数	216
12.5  应用实例	220
12.5.1  规则组单通道采集外部电压	220
12.5.2  使用DMA和规则组通道实现多路模拟信号采集	222
习题	227
第13章  数模转换器(DAC)	228
13.1  DAC概述	228
13.1.1  基本概念	228
13.1.2  DAC原理	229
13.2  STM32F429微控制器的DAC结构	230
13.3  STM32F429微控制器的DAC功能	231
13.4  DAC典型应用步骤及常用库函数	234
13.4.1  DAC典型应用步骤	234
13.4.2  常用库函数	235
13.5  应用实例	236
习题	239
第14章  I2C控制器	240
14.1  I2C协议	240
14.1.1  I2C物理层	240
14.1.2  I2C协议层	241
14.2  软件模拟I2C协议程序分析	244
14.2.1  I2C引脚配置	244
14.2.2  软件模拟开始信号和结束信号	246
14.2.3  软件模拟检测ACK信号	246
14.2.4  软件模拟产生ACK信号和NACK信号	247
14.2.5  软件模拟发送一个字节数据	247
14.2.6  软件模拟接收一个字节数据	248
14.2.7  软件模拟I2C完整写操作	248
14.2.8  软件模拟I2C完整读操作	249
14.3  模拟I2C总线协议读写AT24CXX系列EEPROM实验	250
14.4  I2C控制器概述	254
14.4.1  I2C控制器主要特性	254
14.4.2  I2C控制器结构	254
14.4.3  I2C控制器主模式	255
14.4.4  I2C控制器从模式	256
14.4.5  I2C控制器中断	257
14.5  I2C典型应用步骤及常用库函数	258
14.5.1  I2C典型应用步骤	258
14.5.2  常用库函数	258
14.6  应用实例	261
14.6.1  I2C控制器主模式测试	261
14.6.2  I2C控制器从模式测试	266
习题	269
第15章  SPI控制器	270
15.1  SPI协议	270
15.1.1  SPI数据传输	270
15.1.2  SPI通信的时钟极性和时钟相位	271
15.1.3  4种SPI模式	271
15.2  SPI控制器概述	273
15.2.1  SPI控制器主要特性	273
15.2.2  SPI控制器结构	273
15.2.3  SPI主机配置	274
15.2.4  SPI从机配置	275
15.2.5  主模式的全双工发送和接收过程	275
15.2.6  SPI状态标志	276
15.2.7  SPI中断	276
15.3  SPI典型应用步骤及常用库函数	277
15.3.1  SPI典型应用步骤	277
15.3.2  常用库函数	277
15.4  应用实例	279
习题	289
第16章  外部存储控制器	290
16.1  FMC概述	290
16.1.1  FMC主要特性	290
16.1.2  FMC结构	291
16.1.3  SDRAM简介	292
16.1.4  SDRAM初始化	294
16.2  FMC扩展SDRAM典型应用步骤及常用库函数	295
16.2.1  FMC扩展SDRAM典型应用步骤	295
16.2.2  常用库函数	296
16.3  应用实例	299
习题	302
第17章  LCD控制器	303
17.1  液晶显示技术及液晶显示器控制原理	303
17.1.1  液晶显示技术	303
17.1.2  液晶显示器控制原理	304
17.2  LTDC控制器概述	307
17.2.1  LTDC控制器主要特性	307
17.2.2  LTDC控制器结构	308
17.3  DMA2D控制器概述	310
17.3.1  DMA2D控制器结构	310
17.3.2  DMA2D控制器事务	311
17.3.3  DMA2D控制器配置	312
17.4  字符显示	312
17.4.1  字符编码	312
17.4.2  字模的生成	313
17.5  LTDC典型应用步骤及常用库函数	317
17.5.1  LTDC典型应用步骤	317
17.5.2  常用库函数	318
17.6  应用实例	323
习题	332
参考文献	334