第1章 嵌入式系统概述 1
1.1 嵌入式系统简介 1
1.2 嵌入式系统微处理器 4
1.3 ARM系列嵌入式微处理器 7
1.4 嵌入式操作系统 10
1.5 本章小结 14
第2章 STM32F10x微处理器的组成及编程模式 15
2.1 为什么选择STM32F10x微处理器 15
2.2 STM32F10x开发工具介绍 16
2.3 MDK在STM32F10x处理器上的使用 18
2.3.1 MDK的安装 18
2.3.2 实例:工程的建立和配置 22
2.3.3 使用MDK进行STM32的程序开发 24
第3章 ARM Cortex-M3基础知识 30
3.1 ARM Cortex-M3寄存器组 30
3.2 ARM Cortex-M3指令集 35
3.3 ARM Cortex-M3的存储器系统 52
3.4 ARM Cortex-M3使用异常系统 62
3.5 ARM Cortex-M3调试系统 70
第4章 ARM7应用程序移植到Cortex-M3处理器 80
4.1 应用简介 80
4.2 系统性质 80
4.3 汇编源程序 82
4.4 C源程序 84
第5章 STM32F10x的开发 86
5.1 选择一款Cortex-M3产品 86
5.2 Cortex-M3版本0与版本1的区别 86
5.3 开发工具 88
5.4 库函数 89
5.5 STM32固件库简介 90
5.6 红龙开发板简介 90
5.7 开发板接口简介 92
第6章 通用I/O(GPIO) 94
6.1 概述 94
6.2 可选择的端口功能 94
6.3 相关寄存器 96
6.4 典型硬件电路设计 97
6.5 例程源代码分析 98
第7章 EXTI中断系统理论与实战 110
7.1 STM32中断系统的简介 110
7.2 嵌套向量中断控制器 114
7.3 外部中断/事件控制器 116
7.4 EXTI寄存器描述 117
7.5 典型硬件电路设计 120
7.6 例程源代码分析 121
第8章 RTC实时时钟理论与实战 133
8.1 RTC实时时钟的功能 133
8.2 RTC相关寄存器介绍 134
8.3 典型硬件电路设计 138
8.4 例程源代码分析 138
第9章 通用定时器 148
9.1 概述 148
9.2 时基单元介绍 150
9.3 相关寄存器介绍 151
9.4 典型硬件电路设计 152
9.5 例程源代码分析 152
第10章 定时器外部脉冲计数 162
10.1 TIMx外部脉冲计数功能简介 162
10.2 典型硬件电路设计 163
10.3 例程源码分析 164
第11章 PWM理论与实战 170
11.1 概述 170
11.2 PWM输出的工作原理 170
11.4 PWM输出信号的频率和占空比 172
11.5 相关寄存器 173
11.6 典型硬件电路设计 174
11.7 例程源代码分析 175
第12章 通用同步/异步收发器(USART) 183
12.1 概述 183
12.2 USART操作 186
12.3 USART特殊功能寄存器 186
12.4 典型硬件电路设计 187
12.5 例程源代码分析 188
第13章 RS485通信 196
13.1 概述 196
13.2 SP3485芯片简介 197
13.3 典型硬件电路设计 198
13.4 例程源码分析 199
第14章 DMA实验 204
14.1 概述 204
14.2 DMA的工作原理及结构 205
14.3 相关寄存器简介 208
14.4 典型硬件电路设计 209
14.5 例程源码分析 209
第15章 窗口看门狗 219
15.1 概述 219
15.2 窗口看门狗的工作原理 220
15.3 相关寄存器介绍 221
15.4 典型硬件电路设计 223
15.5 例程源码分析 223
第16章 ADC转换 231
16.1 ADC转换原理 231
16.2 ADC控制寄存器介绍 238
16.3 典型硬件电路设计 240
16.4 例程源代码分析 240
第17章 DAC实验 251
17.1 概述 251
17.2 STM32 DAC的功能 252
17.3 相关寄存器简介 255
17.4 典型硬件电路设计 255
17.5 例程源码分析 256
第18章 I2C总线设备 264
18.1 概述 264
18.2 I2C总线工作原理 266
18.3 相关寄存器 269
18.4 典型硬件电路设计 271
18.5 例程源代码分析 271
第19章 CAN总线 291
19.1 概述 291
19.2 STM32 CAN总线的特点 294
19.3 STM32 bxCAN的功能 295
19.4 相关寄存器简介 298
19.5 典型硬件电路设计 298
19.6 例程源码分析 299
第20章 STM32的系统时钟 317
20.1 STM32的时钟树 317
20.2 系统时钟 318
20.3 相关寄存器 319
20.4 典型硬件电路设计 320
20.5 例程源码分析 320
第21章 FSMC控制器 324
21.1 概述 324
21.2 FSMC功能描述 324
21.3 FSMC外部设备地址映像 326
21.4 FSMC扩展SRAM时序的分析 328
21.5 典型硬件电路设计 329
21.6 例程源码分析 330
第22章 NOR Flash实验 337
22.1 概述 337
22.2 FSMC NOR Flash的配置说明 337
22.3 典型硬件电路设计 338
22.4 例程源码分析 339
第23章 NAND Flash实验 352
23.1 概述 352
23.2 NAND Flash的存储结构 353
23.3 典型硬件电路设计 353
23.4 例程源码分析 355
第24章 TFT彩屏FSMC驱动 367
24.1 概述 367
24.2 TFT彩屏工作原理 367
24.3 TFT的FSMC接口 370
24.4 典型硬件电路设计 372
24.5 例程源码分析 372
第25章 SDIO介绍 374
25.1 概述 374
25.2 SDIO功能介绍 374
25.3 典型硬件电路设计 376
25.4 例程源码分析 377
第26章 SD卡的读取 383
26.1 概述 383
26.2 SD卡的结构 384
26.3 典型硬件电路设计 385
26.4 例程源码分析 385
第27章 SPI通信及FAT32文件读/写 390
27.1 概述 390
27.2 SPI工作原理 391
27.3 FAT32简介 393
27.4 典型硬件电路设计 393
27.5 例程源码分析 394
第28章 USB转串口实验 396
28.1 概述 396
28.2 PL2303的简介 396
28.3 典型硬件电路设计 397
28.4 例程源码分析 399
第29章 USB通信 403
29.1 USB通信原理 403
29.2 STM32的USB电路设计 405
29.3 例程源代码分析 406
第30章 PS2接口 414
30.1 概述 414
30.2 PS2协议 414
30.3 典型硬件电路设计 416
30.4 例程源码分析 416
第31章 NRF24L01无线通信 423
31.1 概述 423
31.2 NRF24L01模块的结构特性 423
31.3 典型硬件电路设计 424
31.4 例程源码分析 424
第32章 红外遥控实验 427
32.1 红外遥控简介 427
32.2 红外遥控的工作原理 427
32.3 典型硬件电路设计 429
32.4 例程源码分析 430
参考文献 437