目录 1
第1章 LPC2141/2142/2144/2146/2148概述 1
1.1 简介 1
1.1.1 特性 2
1.1.2 应用 3
1.1.3 器件信息 3
1.2 引脚和结构 4
1.2.1 LPC2141/2142/2144/2146/2148的引脚分布 4
1.2.2 LPC2141/2142/2144/2146/2148的引脚描述 4
第5章 移植μC/OS-II到ARM 7
1.2.3 结构概述 14
1.3 外部中断输入 15
1.5 锁相环(PLL) 17
1.4 其他系统控制 17
1.6 功率控制 24
1.7 向量中断控制器 27
1.8 引脚连接模块 27
1.8.1 描述 27
1.8.2 寄存器描述 28
2.1 实验平台介绍 35
2.1.1 LPC214x CPU PACK板介绍 35
第2章 功能部件和基础实验 35
2.1.2 LPC214x工程模板 37
2.2 GPIO 37
2.2.1 特性 37
2.2.2 应用 38
2.2.3 引脚描述 38
2.2.4 慢速GPIO 39
2.2.5 快速GPIO 42
2.2.6 GPIO使用注意事项 55
2.2.7 操作方法 57
2.2.8 基础实验 58
2.3 UART1 62
2.3.1 特性 63
2.3.2 引脚描述 63
2.3.3 结构 64
2.3.4 寄存器描述 66
2.3.5 基础实验 85
2.4 SPI0 90
2.4.1 寄存器描述 91
2.4.2 使用示例 92
2.5 ADC 96
2.5.1 特性 96
2.5.2 描述 96
2.5.3 引脚描述 96
2.5.4 寄存器描述 97
2.5.5 基础实验 105
2.6 DAC 106
2.6.1 特性 106
2.6.2 引脚描述 107
2.6.3 DAC寄存器 107
2.6.4 操作 108
2.6.5 基础实验 108
2.7 实时时钟 109
第3章 LPC214x USB设备控制器固件编程 110
3.1 LPC214x USB设备控制器简介 110
3.1.1 特性 110
3.1.2 结构 111
3.1.3 端点配置 112
3.1.4 USB数据流 113
3.1.5 USB设备控制器寄存器 115
3.2 LPC214x USB硬件电路设计 117
3.3 LPC214x USB固件程序设计思想 118
3.5 USB设备硬件抽象层 121
3.4 USB固件程序配置头文件 121
3.6 USB设备接口命令层 123
3.6.1 USB器件中断寄存器 123
3.6.2 USB端点中断寄存器 126
3.6.3 USB端点使用寄存器 129
3.6.4 USB数据传输寄存器 131
3.6.5 从机模式下端点的数据传输 133
3.6.6 USB命令寄存器 137
3.6.7 USB协议引擎命令描述 140
3.6.8 USB协议引擎命令的实现 141
3.7 应用层的实现 152
3.7.1 初始化LPC214x USB控制器 152
3.7.2 USB设备控制器中断服务 154
3.7.3 USB低优先级中断服务程序 156
3.7.4 USB事件处理 158
3.7.5 控制传输处理 159
3.7.6 端点数据收发 160
3.8 协议层 164
3.8.1 USB标准设备请求 164
3.8.2 USB标准设备请求的实现 165
3.9 USB设备控制器DMA功能的实现 181
3.9.1 USB DMA工作原理 181
3.9.2 DMA相关的中断 186
3.9.3 DMA相关寄存器 188
3.9.4 USB DMA编程要点 190
3.9.5 DMA引擎初始化 191
3.9.6 DMA中断服务程序 195
3.9.7 DMA操作相关的API函数 198
3.10 使用LPC214x USB固件程序需要注意的问题 201
4.1 EasyUSB214x.dll动态库 202
第4章 LPC214x USB固件程序的应用 202
4.2 一个最简单的例子 203
4.2.1 要求 203
4.2.2 硬件配置 203
4.2.3 程序的编写 203
4.2.4 程序的运行 205
4.3 收发大量数据例子 207
4.3.1 要求 207
4.3.2 硬件配置 207
4.3.3 实现的方法 207
4.3.4 程序的编写 207
4.3.5 程序的运行 213
4.4 利用LPC214x USB固件程序实现HID类 214
4.4.2 硬件配置 215
4.4.3 程序的编写 215
4.4.1 要求 215
4.4.4 程序的运行 225
4.5 DMA使用例子 225
4.5.1 要求 225
4.5.2 硬件配置 225
4.5.3 程序的编写 226
4.5.4 程序的运行 228
5.1 μC/OS-II简介 230
5.1.1 概述 230
5.1.2 μC/OS-II的特点 230
5.2.1 编译器的选择 231
5.2.2 任务模式的取舍 231
5.2 移植规划 231
5.2.3 支持的指令集 232
5.3 移植μC/OS-II 232
5.3.1 概述 232
5.3.2 关于头文件includes.h和config.h 233
5.3.3 编写OS_CPU.H 234
5.3.4 编写Os_cpu_c.c文件 236
5.3.5 编写Os_cpu_a.s 241
5.3.6 关于中断与时钟节拍 245
5.4 移植代码应用到LPC2100 247
5.4.1 编写或获取启动代码 247
5.4.2 挂接SWI软件中断 248
5.4.3 中断与时钟节拍中断 248
5.4.4 μC/OS-II移植目录结构 249
5.4.5 编写应用程序 250
第6章 μC/OS-II基础实验 253
6.1 概述 253
6.2 GPIO实验 253
6.2.1 GPIO输出实验1 253
6.2.2 GPIO输出实验2 256
6.2.3 GPIO输入实验 257
6.3 定时器实验 260
6.4 PWM实验 261
6.5 RTC实验 265
6.6 信号量使用 270
第7章 μC/OS-II中间件 274
7.1 数据队列 274
7.1.1 简介 274
7.1.2 配置选项 274
7.1.3 API函数集 275
7.1.4 使用范例 279
7.2 串口驱动 283
7.2.1 简介 283
7.2.2 配置选项 283
7.2.3 API函数集 284
7.2.4 使用范例 285
7.3 Modem接口模块 291
7.3.1 简介 291
7.3.2 Modem的状态 291
7.3.3 API函数集 291
7.3.4 使用范例 293
7.4 I2C总线模块 297
7.4.1 简介 297
7.4.2 API函数集 297
7.4.3 使用范例 299
7.5 SPI总线模块 303
7.5.1 简介 303
7.5.2 API函数集 303
7.5.3 使用范例 306
7.6 ZLG/FS文件系统 309
7.6.1 概述 309
7.6.2 关于ZLG/FS V1.1 311
7.6.3 ZLG/FS V1.0 API函数集 311
7.6.4 使用范例 319
第8章 ZLG/USB214x软件包的开发与应用 322
8.1 软件包运行的硬件条件 322
8.2 ZLG/USB214x软件包总体设计思想 322
8.3 软件包应用层的实现 323
8.3.1 初始化USB设备控制器 324
8.3.2 USB总中断服务程序 327
8.3.3 USB低优先级中断 329
8.3.4 控制传输的实现 330
8.3.5 端点数据收发设计思想 331
8.3.6 非DMA模式下从端点接收数据 334
8.3.7 非DMA模式下向USB主机发送数据 340
8.3.8 DMA模式下从USB接收数据 345
8.3.9 μC/OS-II中的DMA中断服务程序 347
8.3.10 DMA模式下向USB主机发送数据 352
8.4 ZLG/USB214x软件包的使用 356
8.4.1 ZLG/USB214x软件包的配置方法 357
8.4.2 ZLG/USB214x软件包API函数 357
8.5 ZLG/USB214x软件包的使用实验 360
8.5.1 实验内容 360
8.5.2 硬件配置 360
8.5.4 实验步骤 361
8.5.3 原理分析 361
8.5.5 实验参考程序 363
第9章 ZLG/GUI应用实例 369
9.1 概述 369
9.2 ZLG/GUI的文件 369
9.3 ZLG/GUI的配置 370
9.4 ZLG/GUI函数手册 371
9.5 ZLG/GUI的移植 379
9.5.1 移植相关说明 379
9.5.2 移植相关接口函数 380
9.5.3 移植实例 383
9.6 应用举例 400
9.6.1 关于CONFIG.H文件 400
9.6.2 使用ZLG/GUI的一般操作步骤 402
9.6.3 ZLG/GUI在多任务中的使用说明 402
9.6.4 Hello程序 404
9.6.5 汉字显示演示 407
9.6.6 窗口显示演示 417
9.6.7 图形显示演示 419
9.6.8 菜单功能演示 424
第10章 SD/MMC卡读/写模块 440
10.1 SD/MMC卡的外部物理接口 440
10.1.1 SD模式 441
10.1.2 SPI模式 443
10.2 访问SD/MMC卡的SPI模式硬件电路设计 444
10.2.1 SPI总线 445
10.2.2 卡供电控制 445
10.2.3 卡检测电路 445
10.3 SD/MMC卡读/写模块的文件结构及整体构架 446
10.3.1 SD/MMC卡读/写模块的文件组成 446
10.3.2 SD/MMC卡读/写模块整体框架 446
10.4.1 SD/MMC卡读/写模块的硬件配置 447
10.4 SD/MMC卡读/写模块的使用说明 447
10.4.2 SD/MMC卡读/写模块提供的API函数 450
10.5 SD/MMC卡读/写模块的使用例子 453
10.5.1 硬件连接与配置 453
10.5.2 实现方法 454
10.5.3 例子建立与运行步骤 456
10.5.4 参考程序 461
附录A 上位机软件EasyARM.exe介绍 465
A.1 EasyARM软件窗口介绍 465
A.2 EasyARM软件通信协议 467
附录B USB分析仪USB Analyser简介 469
B.1 实物和软件界面 469
B.2 主要功能 470
B.3 技术参数 471
B.4 使用方法 471