目录
第1章绪论

1.1嵌入式系统

1.1.1嵌入式系统概述

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

1.1.3嵌入式系统的特点

1.2嵌入式系统的组成

1.3嵌入式系统的软件

1.3.1无操作系统的嵌入式软件

1.3.2带操作系统的嵌入式软件

1.3.3嵌入式操作系统的分类

1.3.4嵌入式实时操作系统的功能

1.3.5典型嵌入式操作系统

1.4嵌入式系统的应用领域

1.5嵌入式系统的体系

1.5.1硬件架构

1.5.2软件层次

第2章嵌入式处理器

2.1Arm嵌入式处理器

2.1.1Arm处理器的特点

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

2.1.3Arm的RISC结构特性

2.2存储器系统

2.2.1存储器系统概述

2.2.2嵌入式系统存储器的分类

2.3嵌入式处理器的分类和特点

2.3.1嵌入式微处理器

2.3.2嵌入式微控制器

2.3.3嵌入式DSP

2.3.4嵌入式SoC

2.3.5嵌入式处理器的特点

第3章STM32系列微控制器

3.1STM32 微控制器概述

3.1.1STM32微控制器产品介绍

3.1.2STM32系统性能分析

3.1.3CortexM4的三级流水线

3.1.4STM32微控制器的命名规则

3.1.5STM32F1和STM32F4的区别

3.1.6STM32微控制器的选型

3.2STM32F407ZGT6概述

3.2.1STM32F407的主要特性

3.2.2STM32F407的主要功能

3.3STM32F407ZGT6芯片内部结构

3.4STM32F407VGT6芯片引脚和功能

3.5STM32F407VGT6最小系统设计

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

4.1Keil MDK安装配置

4.1.1Keil MDK简介

4.1.2Keil MDK下载

4.1.3Keil MDK安装

4.1.4安装库文件

4.2Keil MDK新工程的创建

4.2.1建立文件夹

4.2.2打开Keil μVision

4.2.3新建工程

4.3JScope安装

4.4JScope调试方法

4.4.1打开JScope

4.4.2JScope功能区介绍

4.4.3新建工程

4.4.4添加变量

4.4.5保存工程

4.4.6进入调试模式

4.4.7停止调试

4.4.8查看存储的变量

4.5CortexM4 微控制器软件接口标准(CMSIS)

4.5.1CMSIS介绍

4.5.2STM32F40x标准外设库

4.6STM32F407开发板的选择

4.7STM32仿真器的选择

第5章STM32 GPIO

5.1STM32 GPIO接口概述

5.1.1输入通道

5.1.2输出通道

5.2STM32 GPIO功能

5.2.1普通I/O功能

5.2.2单独的位设置或位清除

5.2.3外部中断/唤醒线

5.2.4复用功能

5.2.5软件重新映射I/O复用功能

5.2.6GPIO锁定机制

5.2.7输入配置

5.2.8输出配置

5.2.9复用功能配置

5.2.10高阻抗模拟输入配置

5.2.11STM32的GPIO操作

5.2.12外部中断映射和事件输出

5.2.13GPIO的主要特性

5.3STM32的GPIO常用库函数

5.4STM32的GPIO使用流程

5.5STM32 GPIO输出应用实例

5.5.1STM32的GPIO输出应用硬件设计

5.5.2STM32的GPIO输出应用软件设计

5.6STM32 GPIO输入应用实例

5.6.1STM32的GPIO输入应用硬件设计

5.6.2STM32的GPIO输入应用软件设计

第6章STM32中断

6.1中断概述

6.1.1中断

6.1.2中断的功能

6.1.3中断源与中断屏蔽

6.1.4中断处理过程

6.1.5中断优先级与中断嵌套

6.2STM32F4中断系统

6.2.1STM32F4嵌套向量中断控制器

6.2.2STM32F4中断优先级

6.2.3STM32F4中断向量表

6.2.4STM32F4中断服务程序

6.3STM32F4外部中断/事件控制器

6.3.1STM32F4的 EXTI内部结构

6.3.2STM32F4的EXTI主要特性

6.4STM32F4中断系统库函数

6.4.1NVIC相关的库函数

6.4.2EXTI相关的库函数

6.5STM32F4外部中断设计流程

6.6STM32F4外部中断设计实例

6.6.1STM32F4外部中断的硬件设计

6.6.2STM32F4外部中断的软件设计

第7章STM32定时器

7.1STM32定时器概述

7.2STM32基本定时器

7.2.1基本定时器介绍

7.2.2基本定时器的功能

7.2.3基本定时器的寄存器

7.3STM32通用定时器

7.3.1通用定时器介绍

7.3.2通用定时器的功能

7.3.3通用定时器的工作模式

7.3.4通用定时器的寄存器

7.4STM32定时器库函数

7.5STM32定时器应用实例

7.5.1STM32定时器配置流程

7.5.2STM32定时器应用硬件设计

7.5.3STM32定时器应用软件设计

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

8.1串行通信基础

8.1.1串行异步通信数据格式

8.1.2串行同步通信数据格式

8.2STM32的USART工作原理

8.2.1USART介绍

8.2.2USART的主要特性

8.2.3USART的功能

8.2.4USART的通信时序

8.2.5USART的中断

8.2.6USART的相关寄存器

8.3STM32的USART 库函数

8.4STM32 USART串行通信应用实例

8.4.1STM32 USART基本配置流程

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

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

第9章STM32 SPI串行总线

9.1STM32的SPI通信原理

9.1.1SPI串行总线概述

9.1.2SPI串行总线互连方式

9.2STM32F407 SPI串行总线的工作原理

9.2.1SPI串行总线的特征

9.2.2SPI串行总线的内部结构

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

9.2.4STM32的SPI配置

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

9.3STM32的SPI库函数

9.4STM32的SPI应用实例

9.4.1STM32的SPI配置流程

9.4.2SPI与Flash接口的硬件设计

9.4.3SPI与Flash接口的软件设计

第10章STM32 I2C串行总线

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

10.1.1STM32 I2C串行总线概述

10.1.2I2C总线的数据传输

10.2STM32 I2C串行总线接口

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

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

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

10.3STM32F4的I2C库函数

10.4STM32 I2C应用实例

10.4.1STM32的I2C配置

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

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

第11章STM32模数转换器

11.1模拟量输入通道

11.1.1模拟量输入通道的组成

11.1.2ADC的工作原理

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

11.2.1模拟量输入信号类型

11.2.2量程自动转换

11.3STM32F407微控制器的ADC结构

11.4STM32F407 微控制器的ADC功能

11.4.1ADC使能和启动

11.4.2时钟配置

11.4.3转换模式

11.4.4DMA控制

11.4.5STM32的ADC应用特征

11.5STM32的ADC库函数

11.6STM32 ADC应用实例

11.6.1STM32的ADC配置流程

11.6.2STM32 ADC应用的硬件设计

11.6.3STM32 ADC应用的软件设计

第12章STM32 DMA控制器

12.1STM32 DMA的基本概念

12.1.1DMA的定义

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

12.1.3DMA传输的基本要素

12.1.4DMA传输过程

12.1.5DMA的特点与应用

12.2STM32 DMA的结构和主要特征

12.3STM32 DMA的功能描述

12.3.1DMA处理

12.3.2仲裁器

12.3.3DMA通道

12.3.4DMA中断

12.4STM32的DMA库函数

12.5STM32 DMA应用实例

12.5.1STM32的DMA配置流程

12.5.2DMA应用的硬件设计

12.5.3DMA应用的软件设计

第13章嵌入式实时操作系统FreeRTOS

13.1FreeRTOS系统概述

13.1.1FreeRTOS的特点

13.1.2FreeRTOS的商业许可

13.1.3选择FreeRTOS的理由

13.1.4FreeRTOS的发展历史

13.1.5FreeRTOS的功能

13.1.6FreeRTOS的一些概念和术语

13.1.7为什么要使用RTOS

13.2FreeRTOS的源代码和相应官方手册获取

13.3FreeRTOS系统移植

13.4FreeRTOS的文件组成

13.5FreeRTOS的编码规则及配置和功能裁剪

13.6FreeRTOS的任务管理

13.6.1任务相关的一些概念

13.6.2FreeRTOS的任务调度

13.6.3任务管理相关函数

13.7进程间通信与消息队列

13.7.1进程间通信

13.7.2队列的特点和基本操作

13.8信号量和互斥量

13.8.1二值信号量

13.8.2计数信号量

13.8.3优先级翻转问题

13.8.4互斥量

13.8.5递归互斥量

13.8.6相关函数概述

13.9事件组

13.9.1事件组的功能和原理

13.9.2事件组相关函数

13.10软件定时器

13.10.1软件定时器概述

13.10.2软件定时器相关函数

13.11FreeRTOS任务管理应用实例

参考文献