第1章 ARM Cortex-M3处理器内核结构概述 1
1.1嵌入式系统概述 1
1.1.1嵌入式系统概念 1
1.1.2嵌入式系统的应用 4
1.1.3嵌入式系统的分类及其发展 6
1.2 ARM Cortex-M3内核 7
1.2.1 ARM Cortex处理器技术特点 8
1.2.2 ARM Cortex-M3处理器技术特点 9
1.3 ARM Cortex-M3内核结构 10
1.4 Thumb-2指令集架构 13
1.5嵌套向量中断控制器(NVIC) 15
1.6存储器保护单元(MPU) 16
1.7调试和跟踪 17
1.8总线矩阵和接口 18
1.9 Luminary Micro的Stellaris系列LM3S811简介 19
1.9.1 Stellaris系列ARM Cortex-M3简介 19
1.9.2 LM3S811简介 20
1.9.3 1.M3S811内部结构图和引脚图 25
习题 29
第2章 ARM Cortex-M3 LM3S811的开发过程 30
2.1 Keil μVision4的安装和使用 30
2.1.1 Keil μVision4简介 30
2.1.2 Keil μVision4的安装 31
2.1.3 Keil μVision4的使用 33
2.2 ARM Cortex-M3 LM3S811实验工具及器材 38
2.2.1本书实例所用部分器件和模块介绍 38
2.2.2实验板电路原理 39
2.2.3驱动软件、工具软件和库软件简介 46
2.2.4 LM Flash Programmer的安装 49
2.2.5 Keil软件的设置 50
2.2.6基于ARM Cortex-M3微处理器的编程方法 54
2.3项目1:流水灯的实现 56
2.3.1功能实现 56
2.3.2硬件电路连接 56
2.3.3 C程序分析和设计 58
2.3.4 LM3S811程序调试快速入门 61
2.4项目2:对角灯的实现 63
2.4.1功能实现 63
2.4.2硬件电路连接 63
2.4.3 C程序分析和设计 63
2.4.4程序调试和运行 65
习题 65
第3章 LM3S811的存储器和系统控制 66
3.1 1.M3S811的存储器 66
3.1.1 SRAM存储器 67
3.1.2 ROM存储器 67
3.1.3 Flash存储器 67
3.1.4有关Flash存储器的常用库函数 69
3.2项目3: Flash存储器的简单擦写 71
3.2.1 Flash存储器简单擦写的功能 71
3.2.2程序分析 71
3.3 JTAG简介 76
3.3.1 1.M3S811的JTAG模块结构 76
3.3.2 J TAG口失效的可能原因 77
3.3.3预防JTAG口失效的解决方法 77
3.4系统控制(SysCtl) 78
3.4.1 LDO控制 78
3.4.2时钟控制系统结构 81
3.4.3主振荡器(MOSC)的晶体配置 82
3.4.4 PLL频率配置 82
3.4.5 PLL模式 82
3.5 PLL的初始化和配置 83
3.6 ARM Cortex-M3内核的工作模式 89
3.7复位控制 91
3.7.1 LM3S811的复位源 91
3.7.2复位控制库函数 92
3.8外设控制 94
3.9其他功能 98
3.10中断操作 101
3.11项目4:变调的蜂鸣器 102
3.11.1任务要求与分析 102
3.11.2硬件电路设计 102
3.11.3程序设计 104
3.11.4程序调试和运行 107
习题 108
第4章 通用输入/输出(GPIO)模块结构和使用 109
4.1项目5:按键控制LED灯亮灭 109
4.1.1任务要求和分析 109
4.1.2硬件电路设计 109
4.1.3程序设计 109
4.1.4程序调试和运行 113
4.2 LM3S811的GPIO口结构 115
4.2.1 GPIO概述 115
4.2.2 GPIO口结构 116
4.3 GPIO库函数及应用 118
4.3.1 GPIO库函数概述 118
4.3.2 GPIO端口的使用 119
4.3.3 GPIO库函数的使用方法 119
4.3.4 GPIO基本设置函数 120
4.3.5 GPIO引脚类型设置函数 122
4.3.6 GPIO引脚读/写函数 125
4.3.7 GPIO中断函数 126
4.4项目6:用GPIO端口驱动数码管 128
4.4.1任务要求和分析 128
4.4.2硬件电路设计 128
4.4.3程序设计 130
4.4.4程序调试和运行 133
习题 135
第5章 LM3S811的中断系统 136
5.1项目7:用按键控制LED灯闪烁花样 136
5.1.1任务要求和分析 136
5.1.2硬件电路设计 136
5.1.3程序设计 138
5.1.4程序调试和运行 140
5.2 LM3S811的中断系统概述 142
5.3 LM3S811的中断库函数 143
5.3.1中断使能与禁止函数 143
5.3.2中断优先级函数 145
5.3.3中断服务函数注册与注销函数 146
5.4中断函数的设置和使用 147
5.4.1中断函数的使能、配置和使用 147
5.4.2使用外部中断INT0的程序流程 149
5.5项目8:有等级高低的LED灯 149
5.5.1任务要求与分析 149
5.5.2硬件电路设计 149
5.5.3程序设计 151
5.5.4程序调试和运行 153
习题 154
第6章 通用定时器 155
6.1项目9:精确时钟信号发生器 155
6.1.1任务要求和分析 155
6.1.2硬件电路设计 155
6.1.3程序设计 157
6.1.4程序调试和运行 158
6.2通用定时器的功能和配置 160
6.2.1定时器的功能和工作模式 160
6.2.2定时器的设置和使能 162
6.3通用定时器库函数 163
6.3.1配置与控制函数 163
6.3.2计数值的装载与获取函数 167
6.3.3运行控制函数 168
6.3.4匹配与预分频函数 169
6.3.5中断控制函数 170
6.4项目10:按键控制的16位计数器 172
6.4.1任务要求和分析 172
6.4.2硬件电路设计 172
6.4.3程序设计 173
6.4.4程序调试和运行 174
习题 176
第7章 通用异步串行通信(UART)的结构和功能 177
7.1通用异步串行通信概述 177
7.1.1通信与串口的概念 177
7.1.2异步通信 178
7.1.3串行数据通信的波特率 178
7.2 LM3S811 UART的特性和内部结构原理 178
7.2.1 LM3S811 UART的特性 178
7.2.2 LM3S811 UART的内部结构原理和功能 179
7.3 LM3S811的UART与电脑COM端口连接 183
7.4 UART模块常用库函数 184
7.4.1配置与控制函数 184
7.4.2使能与禁止函数 187
7.4.3数据收/发函数 188
7.4.4中断控制函数 191
7.5项目11: LM3S811的RS - 232通信 193
7.5.1任务要求和分析 193
7.5.2硬件电路设计 193
7.5.3程序设计 193
7.5.4程序调试和运行 196
习题 197
第8章 同步串行通信接口(SSI)的结构和功能 198
8.1同步串行通信接口概述 198
8.1.1同步通信概念 198
8.1.2 LM3S811的同步串行通信接口的性能 198
8.2同步串行通信接口的通信协议 199
8.2.1 Texas Instruments同步串行帧格式 200
8.2.2 Freescale SPI帧格式 201
8.2.3 Micro Wire帧格式 205
8.3 SSI功能概述 206
8.3.1位速率和帧格式 207
8.3.2 FIFO操作 207
8.3.3 SSI中断 208
8.4 SSI库函数 208
8.4.1配置与控制函数 208
8.4.2数据收/发函数 210
8.4.3中断控制函数 211
8.5项目12:利用同步串口动态扫描8位数码管 212
8.5.1任务要求和分析 212
8.5.2硬件电路设计 212
8.5.3程序设计 215
8.5.4程序调试和运行 217
习题 217
第9章 I2C接口的结构和功能 218
9.1 I2 C通信概述 218
9.1.1 I2C总线特征和术语 218
9.1.2 I2C总线原理简介 219
9.2 I2C通信规则 220
9.2.1 I2 C总线的数据传输格式 220
9.2.2数据有效性(data validity) 222
9.2.3起始和停止条件(START and STOP conditions) 222
9.2.4 字节格式(byte format) 222
9.2.5应答(acknowledge) 223
9.2.6仲裁(arbitration) 223
9.3 LM3S811的I2 C功能 224
9.3.1 SCL时钟速率 224
9.3.2中断控制 224
9.3.3回环操作(loopback operation) 225
9.3.4 主机命令序列 225
9.3.5从机状态控制 225
9.4 I2 C库函数 226
9.4.1主机模式收/发控制函数 226
9.4.2主机模式中断控制函数 230
9.4.3从机模式收/发控制函数 231
9.4.4从机模式中断控制函数 232
9.4.5中断的注册与注销函数 233
9.5项目13:基于I2C总线的实时时钟控制系统 234
9.5.1任务要求和分析 234
9.5.2硬件电路设计 234
9.5.3程序设计 236
9.5.4程序调试和运行 243
习题 243
第10章 电压比较器(COMP)和模/数转换器(ADC) 244
10.1电压比较器概述 244
10.2电压比较器的功能 245
10.3常用电压比较器库函数 245
10.3.1配置与设置函数 246
10.3.2中断控制函数 248
10.4项目14:模拟比较器实验 251
10.4.1任务要求和分析 251
10.4.2硬件电路设计 251
10.4.3程序设计 253
10.4.4程序调试和运行 254
10.5模/数转换器概述 255
10.6 1.M3S811的ADC功能描述 256
10.6.1采样序列发生器 256
10.6.2模块控制 256
10.6.3中断 257
10.6.4优先级设置 257
10.6.5采样事件 257
10.6.6硬件采样平均电路 257
10.6.7模/数转换器 257
10.6.8差分采样 258
10.6.9测试模式 259
10.6.10内部温度传感器 259
10.7 ADC应用注意事项 260
10.8 ADC库函数 262
10.8.1 ADC采样序列操作函数 262
10.8.2 ADC处理器触发函数 267
10.8.3 ADC过采样函数 268
10.8.4 ADC中断控制函数 269
10.9项目15: CPU温度监测系统 271
10.9.1任务要求和分析 271
10.9.2硬件电路设计 271
10.9.3程序设计 273
10.9.4程序调试和运行 275
习题 276
第11章 看门狗定时器的结构和配置 277
11.1看门狗定时器概述 277
11.1.1看门狗定时器的概念 277
11.1.2看门狗定时器的工作原理 277
11.1.3看门狗定时器的应用和编程 277
11.2 LM3S811的看门狗 278
11.2.1 LM3S811看门狗的结构和特征 278
11.2.2 LM3S811看门狗的功能 278
11.2.3看门狗定时器的正确使用方法 280
11.3看门狗定时器库函数 280
11.3.1运行控制函数 280
11.3.2装载与锁定函数 281
11.3.3中断控制函数 283
11.4项目16:用信号灯演示LM3S811的看门狗功能 284
11.4.1任务要求和分析 284
11.4.2硬件电路设计 284
11.4.3程序设计 285
11.4.4程序调试和运行 286
习题 287
第12章 脉冲宽度调制(PWM)模块 288
12.1项目17:利用PWM调节LED灯的亮度 288
12.1.1任务要求和分析 288
12.1.2硬件电路设计 288
12.1.3程序设计 288
12.1.4程序调试和运行 291
12.2脉冲宽度调制概述 291
12.2.1脉冲宽度调制的特点 291
12.2.2脉冲宽度调制的基本原理 291
12.2.3脉冲宽度调制的具体过程 293
12.2.4脉冲宽度调制的方法 294
12.2.5脉冲宽度调制的应用 294
12.3 LM3S811的PWM模块 295
12.3.1 PWM模块结构 295
12.3.2 Stellaris系列单片机的PWM特性 296
12.3.3 LM3S811的PWM功能 296
12.4 PWM库函数 299
12.4.1 PWM发生器配置与控制函数 299
12.4.2死区控制函数 303
12.4.3同步控制函数 304
12.4.4输出控制函数 305
12.4.5 PWM发生器中断和触发函数 308
12.4.6故障管理函数 311
12.4.7故障中断函数 314
12.4.8总中断控制函数 315
12.5项目18:利用PWM演奏《化蝶》(梁祝)乐曲 317
12.5.1任务要求和分析 317
12.5.2硬件电路设计 317
12.5.3程序设计 317
12.5.4程序调试和运行 323
习题 323
第13章 LM3S811典型应用实例精讲 324
13.1项目19:矩阵式键盘和12864液晶驱动 324
13.1.1键盘概述 324
13.1.2 1CD12864液晶显示模块介绍 326
13.1.3任务要求和分析 332
13.1.4矩阵式键盘和液晶显示驱动电路 332
13.1.5程序设计 334
13.2项目20:按键控制步进电机正反向变速 341
13.2.1步进电机介绍 341
13.2.2任务要求和分析 346
13.2.3硬件电路设计 346
13.2.4程序设计 346
13.3项目21:基于DS18B20的测温系统 352
13.3.1 DS18B20简介 352
13.3.2硬件电路设计 354
13.3.3程序设计 356
13.4项目22:基于SHT21的温度/湿度测控与万年历系统 362
13.4.1温湿度传感器SHT21 362
13.4.2日历芯片DS1302 365
13.4.3硬件电路设计 368
13.4.4程序设计 368
13.5项目23:超声波测距和频率测定系统 388
13.5.1超声波测距介绍 388
13.5.2数字频率计的设计基础 390
13.5.3液晶显示模块LCD1602简介 391
13.5.4硬件电路设计 397
13.5.5程序设计 397
习题 404
第14章 LM3S811的μC /OS-Ⅱ的移植 405
14.1 μC/OS-Ⅱ介绍 405
14.1.1 μC/OS操作系统的特点 405
14.1.2 μC/OS内核介绍 406
14.1.3 μC/OS-Ⅱ内核结构 407
14.2 μC/OS-Ⅱ的移植代码说明 409
14.2.1 μC/OS-Ⅱ的移植条件 410
14.2.2移植模板的层次结构 410
14.2.3各层文件说明 411
14.3项目24: μC/OS - Ⅱ在LM3S811上的移植实例 413
14.3.1软件工程介绍 413
14.3.2 Target.c的编写 414
14.3.3 Main.c的编写 421
14.3.4下载HEX文件 423
习题 424
参考文献 425