第1篇 入 门
第1 章 认识车型机器人...... 2
1.1 嵌入式智能车型机器人简介.....2
1.2 嵌入式智能车型机器人的功能单元......................3
1.2.1 嵌入式智能车型机器人的神经中枢...........3
1.2.2 嵌入式智能车型机器人的感觉器官...........4
1.2.3 嵌入式智能车型机器人的心脏...................4
1.2.4 嵌入式智能车型机器人的行动器官...........4
1.2.5 嵌入式智能车型机器人的视觉器官...........5
本章小结................... 5
强化练习................... 5
第2 章 嵌入式智能车型机器人的连线............... 7
2.1 电动机与驱动板的连线方式.....7
2.2 循迹板与任务板的连线方式.....8
2.3 核心板与驱动板的连线方式.....8
2.4 核心板与任务板的连线方式.....9
本章小结................... 9
强化练习................... 9
第2 篇 STM32 基础应用
第3 章 了解STM32...........12
3.1 认识ARM Cortex-M3 .............. 12
3.2 认识STM32 .... 13
3.3 STM32 的特性 13
3.4 STM32 芯片命名规则.............. 14
本章小结.................15
强化练习.................15
第4 章 搭建STM32 开发环境.........................16
4.1 开发平台的选择...................... 16
4.2 Keil μ Vision4 安装.................. 17
4.3 新建一个工程. 19
4.4 开发前的软件设置.................. 21
4.5 程序编译........ 23
目 录 CONTENTS
2
基于移动机器人的嵌入式开发
4.6 程序下载........ 25
本章小结.................27
强化练习.................27
第5 章 STM32 总线结构和存储映射................28
5.1 系统总线构架. 28
5.2 存储器的组织与映射.............. 29
5.2.1 存储器组织.................. 29
5.2.2 STM32 微处理器存储器映射.................... 30
5.2.3 位段.... 31
5.2.4 启动配置...................... 32
本章小结.................32
强化练习.................32
第6 章 STM32 异常和中断处理......................33
6.1 异常的类型.... 33
6.2 异常的优先级. 34
6.2.1 优先级. 34
6.2.2 优先级分组.................. 34
6.2.3 优先级对异常处理的影响........................ 34
6.2.4 异常活动等级.............. 35
6.3 异常处理........ 36
6.3.1 异常处理的进入与处理............................ 36
6.3.2 异常处理的退出.......... 37
6.4 复位过程........ 38
6.4.1 向量表. 38
6.4.2 启动过程...................... 38
6.5 多堆栈的设置. 40
6.6 Abort 模式......41
6.6.1 硬故障. 41
6.6.2 Local 故障和升级......... 41
6.6.3 故障状态寄存器.......... 42
本章小结.................42
强化练习.................42
第7 章 STM32 常用方法....44
7.1 与底层硬件相关的设置函数... 44
7.1.1 IO 口位操作的实现...... 44
7.1.2 初始化系统时钟的实现............................ 45
7.1.3 软复位的实现.............. 47
7.1.4 睡眠模式...................... 48
7.1.5 中断管理函数.............. 49
7.2 延迟初始化.... 54
本章小结.................56
强化练习.................56
3
目 录
第8 章 STM32 中GPIO 的输入与输出配置.....58
8.1 GPIO 概述......58
8.1.1 GPIO 端口简介............. 58
8.1.2 GPIO 端口的工作模式. 58
8.2 GPIO 端口初始化配置............ 59
8.2.1 GPIO 端口初始化配置相关寄存器........... 59
8.2.2 GPIO 端口输出初始化配置....................... 62
8.2.3 GPIO 端口输入初始化配置....................... 63
8.3 跑马灯演示.... 64
8.3.1 项目概述...................... 64
8.3.2 项目要求...................... 64
8.3.3 项目框图...................... 64
8.3.4 电路连接...................... 64
8.3.5 程序设计...................... 65
8.3.6 程序实现...................... 65
8.3.7 运行结果...................... 66
8.4 控制LED 灯和蜂鸣器............. 66
8.4.1 项目概述...................... 66
8.4.2 项目要求...................... 67
8.4.3 项目框图...................... 67
8.4.4 电路连接...................... 67
8.4.5 程序设计...................... 68
8.4.6 程序实现...................... 68
8.4.7 运行结果...................... 71
本章小结.................71
强化练习.................72
第9 章 STM32 串口通信....73
9.1 串口通信概述. 73
9.1.1 并行通信...................... 73
9.1.2 串行通信...................... 74
9.1.3 STM32 串口特性.......... 74
9.2 STM32 串口初始化配置.......... 74
9.2.1 STM32 串口初始化配置相关寄存器......... 74
9.2.2 STM32 波特率计算...... 77
9.2.3 STM32 串口初始化配置程序设计............. 78
9.3 STM32 串口数据接收和发送的程序设计............ 79
9.3.1 STM32 串口数据接收中断响应实现......... 79
9.3.2 STM32 串口数据发送实现........................ 81
9.4 项目实战........ 82
9.4.1 项目概述...................... 82
9.4.2 项目要求...................... 82
9.4.3 项目框图...................... 82
4
基于移动机器人的嵌入式开发
9.4.4 电路连接...................... 82
9.4.5 通信协议定义.............. 83
9.4.6 程序设计...................... 83
9.4.7 程序实现...................... 83
9.4.8 运行结果...................... 88
本章小结.................90
强化练习.................90
第3 篇 Android 应用
第10章 Android 概述.........92
10.1 Android 简介. 92
10.1.1 Android 的发展和历史............................ 92
10.1.2 Android 版本.............. 93
10.1.3 Android 功能.............. 94
10.1.4 Android 系统架构....... 94
10.2 身边的Android 设备............. 95
本章小结.................97
强化练习.................97
第11章 Android 开发环境搭建.........................98
11.1 系统要求...... 98
11.2 Java JDK 下载和安装............ 98
11.3 Android 开发环境配置........ 101
11.4 新建一个Android 工程....... 102
11.4.1 创建第一个Android 项目..................... 102
11.4.2 编写第一个Android 程序..................... 103
11.4.3 运行第一个Android 程序..................... 103
11.4.4 导入一个项目.......... 104
本章小结............... 105
强化练习............... 105
第12章 Android UI 设计...106
12.1 UI 编辑器介绍..................... 106
12.2 创建布局.... 107
12.3 相对布局.... 108
12.4 线性布局.... 110
12.5 表格布局.... 112
12.6 帧布局........ 113
本章小结............... 114
强化练习............... 114
第13章 Android 常用控件.115
13.1 文本框........ 115
5
目 录
13.2 编辑文本框 117
13.3 按钮............ 121
本章小结............... 123
强化练习............... 123
第14章 颜色识别.............124
14.1 Android 颜色概述................ 124
14.1.1 Android 颜色值存储方式...................... 124
14.1.2 Android 颜色识别接口.......................... 124
14.2 Android 程序设计................ 124
14.2.1 Android UI 设计........ 124
14.2.2 Android 功能实现..... 125
本章小结............... 127
强化练习............... 127
第15章 NFC 识别............128
15.1 NFC 概述.... 128
15.1.1 NFC 技术简介.......... 128
15.1.2 NFC API 简介........... 129
15.2 Android 程序设计................ 130
15.2.1 Android UI 设计........ 130
15.2.2 Android 功能实现..... 131
本章小结............... 140
强化练习............... 140
第16章 二维码识别..........141
16.1 二维码概述 141
16.1.1 二维码简介.............. 141
16.1.2 二维码API 简介...... 141
16.2 Android 程序设计................ 143
16.2.1 Android UI 设计........ 143
16.2.2 Android 功能实现..... 144
本章小结............... 146
强化练习............... 146
第17章 Android 基本网络技术和编程实践.....147
17.1 计算机网络及其协议.......... 147
17.1.1 计算机网络概述....... 147
17.1.2 网络协议概述.......... 148
17.1.3 TCP/IP 和UDP 协议. 149
17.2 在Android 中使用TCP、UDP 协议................. 153
17.2.1 Socket 基础............... 153
17.2.2 使用TCP 通信.......... 155
17.2.3 使用UDP 通信......... 157
本章小结............... 159
6
基于移动机器人的嵌入式开发
强化练习............... 159
第18章 无线监控案例......160
18.1 无线监控概述...................... 160
18.1.1 无线监控简介.......... 160
18.1.2 无线监控知识点....... 160
18.2 Android 程序设计................ 161
18.2.1 Android UI 设计........ 161
18.2.2 Android 功能实现..... 164
本章小结............... 170
强化练习............... 170
第19章 嵌入式智能车型机器人......................171
19.1 项目概述.... 171
19.2 STM32 设计 172
19.2.1 Wi-Fi 转串口通信.... 172
19.2.2 电动机驱动.............. 173
19.2.3 循迹驱动.................. 176
19.2.4 红外发射驱动.......... 179
19.2.5 主要业务逻辑.......... 180
19.3 Android 软件设计................ 185
19.3.1 Android UI 设计........ 185
19.3.2 Android 功能实现..... 189
本章小结............... 196
强化练习............... 196
第20章 嵌入式车型机器人综合实现...............197
20.1 系统设计.... 197
20.1.1 知识点...................... 197
20.1.2 实现功能.................. 197
20.1.3 通信协议.................. 197
20.2 软件设计.... 198
20.2.1 全自动实现.............. 198
20.2.2 程序清单.................. 198
本章小结............... 223
强化练习............... 223
附录A 通信协议..............224
附录B Wi-Fi 配置............228