本书从电子信息类专业学生的基础知识出发,由浅入深地讲解ARM Cortex-M3内核和STM32的基本原理和硬件设计,以及STM32标准外设库的软件开发方法,并以工程实例的方式展示了STM32嵌入式系统的开发过程和设计思路。
本书共6章,主要介绍了嵌入式系统的概念、组成、分类及其发展,ARM Cortex-M3架构和指令集,STM32嵌入式处理器体系结构,嵌入式开发环境的搭建,以及STM32系列嵌入式处理器的片上外设的基本原理和开发方法。最后一章通过实例来展示STM32嵌入式系统在工业控制领域和信号处理领域的应用。
样章试读
目录
- 目录
第1章 嵌入式系统概述 1
1.1 嵌入式系统的概念与特点 1
1.1.1 嵌入式系统的概念 2
1.1.2 嵌入式系统的特点 3
1.2 嵌入式系统的组成 4
1.2.1 嵌入式处理器 6
1.2.2 嵌入式操作系统 10
1.3 嵌入式系统的分类 14
1.4 嵌入式系统的发展 16
1.4.1 嵌入式系统的发展历程 16
1.4.2 嵌入式系统的发展趋势 17
第2章 ARM嵌入式处理器 20
2.1 ARM嵌入式处理器简介 20
2.1.1 ARM处理器的特点 20
2.1.2 ARM体系结构的版本和系列 21
2.1.3 ARM处理器系列 24
2.1.4 ARM Cortex-M处理器 28
2.2 ARM Cortex-M3架构 29
2.2.1 概述 29
2.2.2 寄存器组 31
2.2.3 特殊功能寄存器组 33
2.2.4 操作模式和特权级别 35
2.2.5 存储器系统 36
2.2.6 中断和异常 43
2.2.7 ARM Cortex-M3的调试 44
2.2.8 低功耗和系统控制特性 45
2.3 ARM Cortex-M3指令集 45
2.3.1 汇编语言基础 45
2.3.2 ARM Cortex-M3指令集详解 47
2.3.3 汇编语言初步应用 52
第3章 STM32嵌入式处理器体系结构 63
3.1 STM32概述 63
3.1.1 STM32系列嵌入式处理器及其命名规则 63
3.1.2 STM32的片上资源 64
3.1.3 STM32的优势 66
3.2 总线结构和存储空间组织 67
3.2.1 总线结构 67
3.2.2 存储空间组织 68
3.2.3 启动配置 73
3.2.4 在Flash中运行程序 74
3.3 复位和时钟 76
3.3.1 STM32系列嵌入式处理器的复位电路 76
3.3.2 STM32系列嵌入式处理器的时钟系统 78
3.3.3 STM32的看门狗功能 82
3.4 中断和STM32的嵌套向量中断控制器 85
3.4.1 中断机制概述 85
3.4.2 STM32的NVIC 88
3.4.3 NVIC的配置和使用 91
3.5 电源管理 92
3.5.1 STM32的供电及电源监测功能 92
3.5.2 STM32F1系列嵌入式处理器的低功耗模式 95
第4章 嵌入式开发环境的搭建 98
4.1 嵌入式开发环境概述 98
4.1.1 嵌入式硬件开发环境 98
4.1.2 嵌入式软件开发环境 101
4.2 嵌入式集成开发环境 103
4.2.1 集成开发环境概述 103
4.2.2 Keil MDK集成开发环境 105
4.2.3 其他集成开发环境 114
4.3 开发调试工具 118
4.3.1 ARM处理器的JTAG调试工具 118
4.3.2 典型JTAG工具ST-LINK的安装和配置 122
4.4 基于标准外设库的软件开发 126
4.4.1 STM32开发库概述 127
4.4.2 STM32标准外设库 128
4.4.3 Keil MDK下STM32标准外设库应用开发环境的搭建 134
第5章 STM32系列嵌入式处理器的片上外设 150
5.1 通用输入输出口 150
5.1.1 STM32 GPIO的基本原理 150
5.1.2 标准外设库中的GPIO相关函数及其使用实例 161
5.1.3 外部中断和事件 164
5.2 DMA控制器 169
5.2.1 DMA的基本概念和原理 169
5.2.2 STM32上的DMA控制器及其控制方法 171
5.2.3 标准外设库中的DMA相关函数及其使用实例 174
5.3 通用同步/异步收发器 177
5.3.1 串行通信的基本概念 177
5.3.2 STM32上的USART及其控制方法 186
5.3.3 标准外设库中的USART相关函数及其使用实例 189
5.4 定时器TIM 193
5.4.1 STM32中定时器的分类和特点 194
5.4.2 系统定时器 195
5.4.3 通用定时器(TIM2~TIM5) 196
5.4.4 基本定时器(TIM6、TIM7) 208
5.5 SPI串行接口 209
5.5.1 SPI的基础知识 209
5.5.2 STM32上的SPI及其控制方法 213
5.5.3 标准外设库中的SPI相关函数及其使用实例 216
5.6 I2C总线接口 218
5.6.1 I2C总线的基础知识 218
5.6.2 STM32上的I2C总线接口及其控制方法 223
5.6.3 标准外设库中的I2C相关函数及其使用实例 225
5.7 FSMC并行接口 227
5.7.1 STM32系列嵌入式处理器上的FSMC并行接口 228
5.7.2 FSMC存储块1(标准静态随机存储器)的使用方法 232
5.7.3 标准外设库中的FSMC相关函数及其使用实例 234
5.8 A/D和D/A转换器 237
5.8.1 A/D转换器综述 238
5.8.2 STM32上的A/D转换模块 241
5.8.3 标准外设库中ADC相关函数及其使用实例 249
5.8.4 STM32上的D/A转换器及其使用方式 254
5.9 CAN总线接口 257
5.9.1 CAN通信模型及网络结构 258
5.9.2 CAN数据帧结构 258
5.9.3 STM32上的bxCAN及其控制方法 259
5.9.4 标准外设库中的bxCAN相关函数及其使用实例 268
第6章 STM32嵌入式系统开发实例 271
6.1 工业控制领域的应用实例 271
6.2 信号处理领域的应用实例 278
6.2.1 心电信号采集和处理系统 278
6.2.2 仪表总线主机数字解调器 288
参考文献 296