嵌入式微处理器程序设计——从Arduino到ARM

嵌入式微处理器“程序设计”领域精品教材,将Arduino编程与ARM编程有机结合,系统讲解微处理器编程开发的方法和流程,富含大量实例以供练习与实践,且配套丰富的教辅资源。
分享 推荐 3 收藏 62 阅读 3.7K
唐光义、高俊锋、张晓晶 (作者) 978-7-115-59398-6

关于本书的内容有任何问题,请联系 人邮社 王宣

本书特色
(1)本书将 Arduino 编程与 ARM 编程有机地结合起来,有效发挥二者的优势,扬长避短。
(2)无论是 ARM 编程还是 Arduino 编程,本书都为读者设计了大量的实例以供练习与实践。
(3)本书中的 Arduino 实例与 ARM 实例是互通的,这有利于读者对照学习,了解 Arduino 编程的实现过程。
(4)本书综合了 ARM 微处理器的两种编程模式,且过渡自然。
(5)本书提供PPT、教案、教学大纲、源代码等教辅资源,助力高校教师高效教学。

特别说明

1. 嵌入式系统开发直接上来就讲解ARM编程,难度过大,读者很难接受,特别是二本、三本院校的学生。本书则是先介绍Arduino编程,然后介绍ARM编程,这样有利于读者逐步深入学习;而且本书将2种编程模式紧密结合,过渡自然。
2. 嵌入式系统开发课程具有较强的操作实践性,为此,本书针对每章的知识点都设计了操作实例以服务案例教学。
3. 本书中的Arduino编程实例与ARM编程实例是互通的,有利于读者对照学习,了解Arduino的实现过程并掌握ARM的实现原理。

内容摘要

本书以开源硬件平台Arduino Due为教学实验平台,以ARM芯片SAM3X8E为对象,介绍了ARM微处理器编程的方法和流程。本书内容包括ARM微处理器的发展历史、应用领域、分类以及ARM微处理器的软件开发工具和硬件开发工具,涵盖了ARM微处理器的两种编程模式:Arduino编程和ARM编程。本书内容由易到难,讲解循序渐进,并且提供了大量翔实的应用实例供读者参考,所有实例都给出了完整的程序。
本书取材新颖、内容丰富、重点突出、深入浅出、富有启发性和可操作性,便于教学,可为初学者提供学习参考。本书既可以作为高等院校电子、通信、自动化以及计算机等相关专业的教材,也可以作为相关领域工程技术人员的培训用书或参考手册。

目录

【章名目录】
01 初识ARM微处理器 1
02 Arduino Due简介 17
03 Arduino编程基础 32
04 基于Arduino的应用开发 53
05 ARM编程基础 76
06 Cortex-M3微处理器 96
07 Thumb-2指令集 114
08 PIO接口 141
09 异常处理 157
10 定时/计数器TC 182
11 UART 199
12 ADC 216
13 DAC 237

【详细目录】
01 初识ARM微处理器 1
1.1 ARM微处理器概述 1
1.1.1 ARM公司的发展历史 2
1.1.2 ARM微处理器的架构 3
1.1.3 ARM微处理器的特点 6
1.1.4 ARM微处理器的应用领域 6
1.2 ARM微处理器的开发工具 8
1.2.1 交叉编译环境 8
1.2.2 软件开发工具 9
1.2.3 硬件开发工具 12
1.3 ARM微处理器的开发方法简介 13
1.3.1 基于Arduino的应用开发 13
1.3.2 基于CMSIS的应用开发 14
思考与练习 16

02 Arduino Due简介 17
2.1 Arduino Due概述 17
2.2 功能特点 18
2.3 参数规格 19
2.4 硬件平台的结构 20
2.4.1 元件布局 20
2.4.2 连接器 20
2.4.3 跳线器 21
2.5 硬件电路的设计原理 21
2.5.1 微处理器电路 21
2.5.2 电源电路 23
2.5.3 复位电路 25
2.5.4 时钟源电路 25
2.5.5 LED显示电路 25
2.5.6 JTAG接口电路 26
2.5.7 SWD接口电路 26
2.5.8 电源扩展接口电路 27
2.5.9 I/O扩展接口电路 27
2.5.10 USB接口电路 28
2.5.11 USB转串口电路 29
2.5.12 擦除按键接口电路 30
2.5.13 TWI电路 30
2.5.14 SPI电路 30
思考与练习 31

03 Arduino编程基础 32
3.1 搭建Arduino开发环境 32
3.1.1 安装Arduino IDE 32
3.1.2 Arduino IDE结构 34
3.1.3 Arduino IDE的主界面 35
3.2 Arduino编程语言基础 39
3.2.1 语法符号 40
3.2.2 数据类型 41
3.2.3 常量与变量 42
3.2.4 控制结构 44
3.3 Arduino程序的结构 47
3.4 Arduino入门项目——Blink 48
3.4.1 实验材料 48
3.4.2 硬件电路 48
3.4.3 连接硬件电路并安装驱动 48
3.4.4 编辑程序 50
3.4.5 设置开发板及串行通信接口 50
3.4.6 编译程序 51
3.4.7 下载并运行程序 51
思考与练习 52

04 基于Arduino的应用开发 53
4.1 数字量I/O 53
4.1.1 数字量I/O函数 53
4.1.2 编程实验:键控流水灯 54
4.2 模拟量I/O 56
4.2.1 模拟量输入函数 56
4.2.2 编程实验:光强度自动报警系统 57
4.2.3 模拟量输出函数 58
4.2.4 编程实验:简易调色LED灯 59
4.2.5 编程实验:三角波发生器 61
4.3 串行通信 61
4.3.1 串行通信接口函数 62
4.3.2 编程实验:回音壁 66
4.4 中断处理 67
4.4.1 中断处理函数 67
4.4.2 编程实验:键控LED灯 68
4.4.3 编程实验:中断方式的回音壁 69
4.4.4 编程实验:控制中断 70
4.5 其他功能函数 72
4.5.1 时间函数 72
4.5.2 高级I/O操作函数 72
4.5.3 编程实验:测量程序的执行时间 73
4.5.4 编程实验:74HC595芯片驱动多路LED灯 74
思考与练习 75

05 ARM编程基础 76
5.1 ARM编程与Arduino编程的比较 76
5.1.1 Arduino编程的局限性 76
5.1.2 Arduino引脚 77
5.2 ARM开发工具概述 78
5.2.1 MDK概述 78
5.2.2 ULINK 2概述 81
5.3 ARM编程入门向导 81
5.3.1 MDK环境简介 81
5.3.2 简单工程示例 86
思考与练习 95

06 Cortex-M3微处理器 96
6.1 Cortex-M3微处理器内核 96
6.1.1 Cortex-M3微处理器内核简介 98
6.1.2 三级流水线 99
6.1.3 总线系统 100
6.2 Cortex-M3微处理器工作模式和访问级别 101
6.3 Cortex-M3寄存器组成 103
6.3.1 通用寄存器R0~R12 103
6.3.2 通用寄存器R13 104
6.3.3 通用寄存器R14 104
6.3.4 通用寄存器R15 105
6.3.5 特殊功能寄存器 105
6.4 存储器系统 109
6.4.1 存储器映射 109
6.4.2 位带操作 110
6.4.3 非对齐数据传送 113
思考与练习 113

07 Thumb-2指令集 114
7.1 Thumb-2指令集概述 114
7.2 寻址方式 116
7.3 Thumb-2指令集分类 121
7.4 Thumb-2常用指令详细介绍 122
7.4.1 数据传送指令 122
7.4.2 存储器访问指令 123
7.4.3 算术运算指令 126
7.4.4 逻辑运算指令 130
7.4.5 比较和测试指令 131
7.4.6 子程序调用与无条件转移指令 132
7.4.7 移位指令 134
7.4.8 符号扩展指令 134
7.4.9 字节调序指令 135
7.4.10 位操作指令 136
7.4.11 饱和运算指令 137
7.4.12 隔离指令 139
7.4.13 If-Then指令 140
思考与练习 140

08 PIO接口 141
8.1 PIO接口概述 141
8.2 PIO接口结构 143
8.3 PIO接口的基本功能 144
8.3.1 输出控制 145
8.3.2 输入控制 146
8.4 PIO接口的寄存器描述 147
8.5 PIO接口的输入/输出操作 152
8.5.1 PIO接口的数据结构 152
8.5.2 PIO接口的操作步骤 154
8.5.3 编程实验:键控灯 154
思考与练习 156

09 异常处理 157
9.1 异常类型 158
9.2 异常优先级 164
9.2.1 优先级的定义 164
9.2.2 优先级分组 165
9.3 异常向量表 166
9.4 异常处理过程 167
9.4.1 异常响应过程 167
9.4.2 异常处理返回过程 169
9.4.3 特殊情况的处理 169
9.5 NVIC 171
9.6 异常处理的基本操作 178
9.6.1 异常处理的数据结构 178
9.6.2 异常处理的操作步骤 179
9.6.3 编程实验:定时闪烁灯 179
思考与练习 181

10 定时/计数器TC 182
10.1 定时/计数器概述 182
10.2 定时/计数器的工作原理 184
10.2.1 定时/计数器工作模式 184
10.2.2 时钟的选择和控制 185
10.2.3 触发器 187
10.2.4 捕获模式 187
10.2.5 波形模式 188
10.3 定时/计数器的寄存器描述 194
10.4 定时/计数器的基本操作 195
10.4.1 定时/计数器的数据结构 195
10.4.2 定时/计数器的操作步骤 196
10.4.3 编程实验:呼吸灯 196
思考与练习 198

11 UART 199
11.1 UART概述 199
11.2 UART的基本功能 200
11.3 UART的寄存器描述 206
11.4 UART通信的基本操作 212
11.4.1 UART的数据结构 212
11.4.2 UART的操作步骤 212
11.4.3 编程实验:回音壁 213
思考与练习 215

12 ADC 216
12.1 ADC概述 216
12.1.1 ADC的工作原理 216
12.1.2 ADC的分类和特点 217
12.1.3 ADC的主要技术指标 218
12.2 ADC的结构 219
12.2.1 内部结构图 219
12.2.2 ADC的主要特性 220
12.2.3 基本信号描述 220
12.3 ADC的基本功能 221
12.3.1 模数转换过程 221
12.3.2 分辨率设置 222
12.3.3 转换结果 222
12.3.4 触发转换的类型 222
12.3.5 睡眠模式和序列转换器 222
12.4 ADC的寄存器描述 223
12.5 ADC的基本操作 231
12.5.1 ADC的数据结构 231
12.5.2 ADC的操作步骤 232
12.5.3 编程实验:电压表 233
思考与练习 236

13 DAC 237
13.1 DAC概述 237
13.1.1 DAC的工作原理 237
13.1.2 DAC的分类 238
13.1.3 DAC的主要技术指标 239
13.2 DAC的结构 239
13.2.1 内部结构图 239
13.2.2 DAC的主要特性 240
13.2.3 基本信号描述 240
13.3 DAC的基本功能 241
13.3.1 数模转换过程 241
13.3.2 工作时序 242
13.4 DAC的寄存器描述 243
13.5 DAC的基本操作 250
13.5.1 DAC的数据结构 250
13.5.2 DAC的操作步骤 250
13.5.3 编程实验:方波发生器 251
思考与练习 252

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

唐光义:
男,副教授,任教于哈尔滨理工大学计算机科学与技术学院,主持并完成多个省级和校级的教学改革项目,主持并完成多个横向科研项目,出版教材一部,公开发表学术论文20余篇;具有多年从事嵌入式系统开发、分布式系统开发的实战经验,一直在一线教学岗位任教,对于当前学校的教学状态、学生能力素质培养和学生学习兴趣激发有比较全面的了解。

推荐用户

购买本书用户

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部