基础篇
第1章LPC178x系列微控制器概述3
1.1CortexM3处理器概述3
1.1.1CortexM3配置选项3
1.1.2LPC178x/177x系列微控制器型号与分类4
1.1.3LPC178x/177x系列微控制器主要特点5
1.1.4LPC178x/177x系列微控制器结构概述7
1.1.5LPC178x/177x系列微控制器存储器映射9
1.1.6片上存储器10
1.1.7片上外设及基址10
1.2CMSIS软件接口标准12
1.2.1CMSIS层与软件架构13
1.2.2CMSIS文件结构14
第2章开发工具概述22
2.1常用开发工具概览22
2.1.1RealView MDK开发环境22
2.1.2IAR EWARM开发环境23
2.1.3JLink仿真器24
2.1.4ULINK2仿真器25
2.2LPC1788评估板简述26
2.2.1开发板概览26
2.2.2开发板外设接口I/O分配29
2.3RealView MDK开发环境快速入门31
2.3.1工程项目的建立31
2.3.2工程项目的配置33
2.3.3编写演示代码35
2.3.4工程项目的编译36
2.3.5程序下载与调试37
2.4IAR开发环境快速入门40
2.4.1IAR工程项目的快速建立40
2.4.2编译和链接应用程序46
2.4.3仿真调试48
入门篇
第3章GPIO端口应用55
3.1I/O端口配置概述55
3.1.1I/O端口配置描述55
3.1.2I/O端口控制寄存器功能描述58
3.2GPIO端口概述62
3.2.1引脚描述63
3.2.2GPIO寄存器描述63
3.3GPIO及I/O配置常用库函数72
3.3.1GPIO端口库函数功能详解72
3.3.2引脚连接配置库函数功能详解82
3.4GPIO端口应用实例88
3.4.1设计目标88
3.4.2硬件电路设计88
3.4.3实例软件设计89
3.5实例总结96
第4章实时时钟应用97
4.1实时时钟(RTC)概述97
4.1.1RTC基本配置98
4.1.2RTC引脚描述99
4.2RTC寄存器描述99
4.2.1RTC中断100
4.2.2混合寄存器组101
4.2.3完整时间寄存器组103
4.2.4时间计数器组104
4.2.5通用寄存器组106
4.2.6报警寄存器组106
4.3RTC常用库函数107
4.4RTC应用实例118
4.4.1设计目标118
4.4.2硬件电路设计119
4.4.3实例软件设计119
4.5实例总结124
第5章定时器应用125
5.1定时器(Timer)概述125
5.1.1定时器的基本配置126
5.1.2定时器的引脚描述127
5.2Timer寄存器描述127
5.2.1中断寄存器128
5.2.2定时器控制寄存器129
5.2.3定时器/计数器129
5.2.4预分频寄存器129
5.2.5预分频计数器129
5.2.6匹配控制寄存器130
5.2.7匹配寄存器0~3131
5.2.8捕获寄存器0~1131
5.2.9捕获控制寄存器131
5.2.10外部匹配寄存器132
5.2.11计数控制寄存器132
5.2.12DMA操作133
5.3Timer常用库函数134
5.4Timer应用实例142
5.4.1设计目标142
5.4.2硬件电路设计142
5.4.3实例软件设计143
5. 5实例总结151
第6章模/数转换器应用152
6.1模/数转换器(ADC)概述152
6.1.1ADC的基本配置153
6.1.2ADC的引脚描述153
6.1.3ADC的操作153
6.2ADC寄存器描述154
6.2.1ADC控制寄存器155
6.2.2ADC全局数据寄存器156
6.2.3ADC中断使能寄存器157
6.2.4ADC数据寄存器0~7158
6.2.5ADC状态寄存器159
6.2.6ADC调节寄存器159
6.3ADC常用库函数160
6.4ADC应用实例165
6.4.1设计目标165
6.4.2硬件电路设计165
6.4.3实例软件设计166
6. 5实例总结173
第7章数/模转换器应用174
7.1数/模转换器(DAC)概述174
7.1.1DAC的基本配置175
7.1.2DAC的引脚描述175
7.1.3DAC的操作175
7.2DAC寄存器描述176
7.2.1D/A转换器寄存器176
7.2.2D/A转换器控制寄存器177
7.2.3D/A转换器计数器值寄存器177
7.3常用库函数178
7.3.1DAC驱动库178
7.3.2通用DMA控制器常用库函数180
7.4DAC应用实例183
7.4.1设计目标183
7.4.2硬件电路设计184
7.4.3实例软件设计184
7. 5实例总结191
第8章脉宽调制器应用192
8.1脉宽调制器(PWM)概述192
8.1.1脉宽调制器的基本配置194
8.1.2脉宽调制器的引脚描述195
8.1.3单沿和双沿控制规则的采样波形195
8.2PWM寄存器描述197
8.2.1PWM中断寄存器197
8.2.2PWM定时器控制寄存器198
8.2.3PWM计数控制寄存器199
8.2.4PWM定时器/计数器199
8.2.5PWM预分频寄存器200
8.2.6PWM预分频计数器寄存器200
8.2.7PWM匹配控制寄存器200
8.2.8PWM匹配寄存器202
8.2.9PWM捕获控制寄存器202
8.2.10PWM捕获寄存器203
8.2.11PWM控制寄存器203
8.2.12PWM锁存使能寄存器204
8.3PWM常用库函数205
8.4PWM应用实例211
8.4.1设计目标211
8.4.2硬件电路设计211
8.4.3实例软件设计212
8. 5实例总结219
第9章电机控制脉宽调制器应用220
9.1电机控制脉宽调制器概述220
9.1.1电机控制脉宽调制器的基本配置220
9.1.2电机控制脉宽调制器的引脚描述222
9.2电机控制脉宽调制器寄存器描述222
9.2.1MCPWM控制寄存器223
9.2.2MCPWM捕获控制寄存器225
9.2.3MCPWM中断寄存器227
9.2.4MCPWM计数控制寄存器229
9.2.5MCPWM定时器/计数器0~2寄存器231
9.2.6MCPWM界限0~2寄存器231
9.2.7MCPWM匹配0~2寄存器232
9.2.8MCPWM死区时间寄存器233
9.2.9MCPWM通信格式寄存器234
9.2.10MCPWM捕获寄存器234
9.3MCPWM的应用操作235
9.3.1脉宽调制236
9.3.2映射寄存器和同时更新238
9.3.3快速中止(ABORT)238
9.3.4捕获事件238
9.3.5外部事件计数(计数器模式)239
9.3.6三相直流模式239
9.3.7三相交流模式240
9.3.8中断源240
9.4MCPWM常用库函数241
9.5MCPWM应用实例248
9.5.1设计目标248
9.5.2硬件电路设计248
9.5.3实例软件设计249
9. 6实例总结255
第10章通用异步收发器应用256
10.1通用异步收发器(UART)概述256
10.1.1通用异步收发器的基本配置260
10.1.2通用异步收发器的引脚描述261
10.2UART寄存器描述262
10.2.1UARTn接收缓冲寄存器(RBR)263
10.2.2UARTn发送保持寄存器(THR)263
10.2.3UARTn除数锁存器LSB/MSB寄存器(DLL,DLM)264
10.2.4UARTn中断使能寄存器(IER)264
10.2.5UARTn中断标识寄存器(IIR)265
10.2.6UARTn FIFO控制寄存器(FCR)266
10.2.7UARTn线控制寄存器(LCR)267
10.2.8UARTn Modem控制寄存器(MCR)268
10.2.9UARTn线状态寄存器(LSR)268
10.2.10UARTn Modem状态寄存器(MSR)270
10.2.11UARTn高速缓存寄存器(SCR)271
10.2.12UARTn自动波特率控制寄存器(ACR)271
10.2.13UARTn分数分频器寄存器(FDR)271
10.2.14UARTn发送使能寄存器(TER)272
10.2.15UARTn的RS485控制寄存器(RS485CTRL)273
10.2.16UARTn的RS485地址匹配寄存器(RS485ADRMATCH)274
10.2.17UARTn的RS485延时值寄存器(RS485DLY)274
10.2.18UART4过采样寄存器OSR274
10.2.19UART4智能卡接口控制寄存器SCICTRL275
10.2.20UART4同步模式控制寄存器(SYNCCTRL)276
10.2.21UART4 IrDA控制寄存器276
10.3UART常用库函数277
10.4UART应用实例289
10.4.1设计目标289
10.4.2硬件电路设计289
10.4.3实例软件设计291
10.5实例总结298
第11章串行同步端口控制器应用299
11.1串行同步端口概述299
11.1.1串行同步端口基本配置299
11.1.2串行同步端口的引脚描述300
11.2SSP寄存器描述300
11.2.1SSPn 控制寄存器0(CR0)301
11.2.2SSPn 控制寄存器1(CR1)301
11.2.3SSPn数据寄存器(DR)302
11.2.4SSPn状态寄存器(SR)302
11.2.5SSPn时钟预分频寄存器(CPSR)303
11.2.6SSPn中断使能置位/清零寄存器(IMSC)303
11.2.7SSPn原始中断状态寄存器(RIS)304
11.2.8SSPn 使能中断状态寄存器(MIS)304
11.2.9 SSPn中断清零寄存器(ICR)304
11.2.10SSPn DMA控制寄存器(CMACR)305
11.3SSP常用库函数305
11.4SSP外设应用实例312
11.4.1设计目标312
11.4.2硬件电路设计312
11.4.3实例软件设计315
11. 5实例总结318
第12章I2S数字音频接口应用319
12.1I2S总线接口概述319
12.1.1I2S总线接口的基本配置321
12.1.2I2S接口的引脚描述321
12.2I2S寄存器描述322
12.2.1数字音频输出寄存器(I2SDAO)322
12.2.2数字音频输入寄存器(I2SDAI)323
12.2.3发送缓冲寄存器(I2STXFFO)324
12.2.4接收缓冲寄存器(I2SRXFIFO)324
12.2.5状态反馈寄存器(I2SSTATE)324
12.2.6DMA配置寄存器1(I2SDMAI)324
12.2.7DMA配置寄存器2(I2SDMA2)325
12.2.8中断请求控制寄存器(I2SIRQ)325
12.2.9发送时钟速率寄存器(I2STXRATE)326
12.2.10接收时钟速率寄存器(I2SRXRATE)326
12.2.11发送时钟位速率寄存器(I2STXBITRATE)327
12.2.12接收时钟位速率寄存器(I2SRXBITRATE)327
12.2.13发送模式控制寄存器(I2STXMODE)327
12.2.14接收模式控制寄存器(I2SRXM0DE)328
12.3I2S常用库函数328
12.4I2S数字音频接口播放器应用实例337
12.4.1设计目标337
12.4.2硬件电路设计337
12.4.3实例软件设计343
12.5实例总结351
第13章SD卡接口应用352
13.1SD卡接口概述352
13.1.1SD卡接口的基本配置353
13.1.2SD卡接口的引脚描述353
13.2SD卡接口寄存器描述353
13.2.1电源控制寄存器(MCOPower)354
13.2.2时钟控制寄存器(MCIClock)355
13.2.3参数寄存器(MCIArgument)355
13.2.4命令寄存器(MCICommand)356
13.2.5命令响应寄存器(MCIRespCommand)356
13.2.6响应寄存器0~3(MCIResponse0~3)357
13.2.7数据定时器寄存器357
13.2.8数据长度寄存器(MCIDataLength)357
13.2.9数据控制寄存器(MCIDataCtrl)358
13.2.10数据计数器寄存器(MCIDataCnt)358
13.2.11状态寄存器(MCIStatus)359
13.2.12清零寄存器(MCIClear)360
13.2.13中断屏蔽寄存器(MCIMask)360
13.2.14FIFO计数器寄存器(MCIFifoCnt)361
13.2.15数据FIFO寄存器(MCIFIFO)361
13.3SD卡接口的常用库函数361
13.4基于SD卡接口的文件系统实例373
13.4.1设计目标373
13.4.2硬件电路设计373
13.4.3实例软件设计374
13. 5实例总结400
第14章LCD控制器与触摸应用401
14.1LCD控制器概述401
14.1.1LCD上电与掉电顺序403
14.1.2LCD控制器的基本配置404
14.1.3LCD控制器的引脚描述404
14.2LCD控制器寄存器描述404
14.2.1LCD配置和计时控制寄存器(LCD_CFG)405
14.2.2水平时序控制寄存器(LCD_TIMH)405
14.2.3垂直时序控制寄存器(LCD_TIMV)406
14.2.4时钟与信号极性控制寄存器(LCD_POL)407
14.2.5线端控制寄存器(LCD_LE)408
14.2.6上面板帧基址寄存器(LCD_UPBASE)409
14.2.7下面板帧基址寄存器(LCD_LPBASE)409
14.2.8LCD控制寄存器(LCD_CTRL)409
14.2.9中断屏蔽寄存器(LCD_INTMSK)411
14.2.10原始中断屏蔽寄存器(LCD_INTRAW)411
14.2.11中断屏蔽状态寄存器(LCD_INTSTAT)412
14.2.12中断清零寄存器(LCD_INTCLR)412
14.2.13上面板当前地址寄存器(LCD_UPCURR)413
14.2.14下面板当前地址寄存器(LCD_LPCURR)413
14.2.15彩色调色板寄存器(LCD_PAL)413
14.2.16光标图像寄存器(CRSR_IMG)414
14.2.17光标控制寄存器(CRSR_CTRL)414
14.2.18光标配置寄存器(CRSR_CFG)415
14.2.19光标调色板寄存器0(CRSR_PAL0)415
14.2.20光标调色板寄存器1(CRSR_PAL1)416
14.2.21光标XY位置寄存器(CRSR_XY)416
14.2.22光标剪裁位置寄存器416
14.2.23光标中断屏蔽寄存器(CRSR_INTMSK)417
14.2.24光标中断清零寄存器(CRSR_INTCLR)417
14.2.25光标原始中断状态寄存器(CRSR_INTRAW)417
14.2.26光标中断屏蔽状态寄存器(CRSR_INTSTAT)418
14.3LCD控制器的常用库函数418
14.4LCD控制器应用实例422
14.4.1设计目标422
14.4.2硬件电路设计422
14.4.3文字显示实例软件设计427
14.4.4触摸屏校准实例软件设计435
14.5实例总结440
第15章以太网接口应用441
15.1以太网接口概述441
15.1.1以太网模块的内部结构与特性441
15.1.2以太网数据包443
15.1.3以太网接口的基本配置444
15.1.4以太网接口的引脚描述445
15.2以太网接口寄存器描述446
15.2.1MAC寄存器组447
15.2.2控制寄存器组454
15.2.3接收过滤寄存器组461
15.2.4模块控制寄存器组463
15.2.5描述符与状态465
15.3以太网接口的常用库函数471
15.4以太网接口应用实例479
15.4.1设计目标480
15.4.2硬件电路设计480
15.4.3简易网页浏览实例软件设计492
15.4.4μIP实例软件设计505
15.5实例总结523
进阶篇
第16章嵌入式实时操作系统μC/OSII的移植与应用527
16.1嵌入式系统μC/OSII概述527
16.1.1μC/OSII系统特点527
16.1.2μC/OSII系统内核529
16.1.3任务管理538
16.1.4时间管理 540
16.1.5任务之间的通信与同步 540
16.1.6内存管理542
16.2如何在LPC1788微处理器上移植μC/OSII系统543
16.2.1移植μC/OSII系统必须满足的条件543
16.2.2初识μC/OSII嵌入式系统544
16.2.3重提μC/OSII嵌入式系统移植要点559
16.3应用实例560
16.3.1设计目标560
16.3.2硬件电路设计560
16.3.3μC/OSII系统软件设计560
16.4实例总结564
第17章LwIP移植与应用实例565
17.1以太网概述565
17.1.1以太网的网络传输介质565
17.1.2以太网数据帧格式568
17.1.3嵌入式系统的以太网协议570
17.2LwIP协议栈概述572
17.2.1LwIP协议栈的整体架构和进程模型572
17.2.2LwIP协议栈的API接口573
17.2.3LwIP内存管理591
17.3LwIP协议栈基于μC/OSII系统的移植592
17.3.1LwIP协议栈的源文件结构593
17.3.2LwIP协议栈的移植593
17.4应用实例607
17.4.1设计目标607
17.4.2系统软件设计607
17.5实例总结613
第18章嵌入式实时操作系统FreeRTOS应用614
18.1嵌入式系统FreeRTOS概述614
18.1.1FreeRTOS系统的特点614
18.1.2FreeRTOS系统的任务管理615
18.1.3FreeRTOS系统的队列管理626
18.1.4FreeRTOS系统的信号量629
18.1.5FreeRTOS系统的资源管理633
18.1.6FreeRTOS系统的内存管理635
18.1.7联合程序638
18.2如何在LPC1788微控制上器移植FreeRTOS系统644
18.2.1初识FreeRTOS嵌入式系统645
18.2.2FreeRTOS系统的移植646
18.2.3FreeRTOS系统的可配置参数项654
18.3FreeRTOS应用实例657
18.4实例总结660
第19章嵌入式图形系统μC/GUI的移植与应用661
19.1嵌入式图形系统μC/GUI661
19.1.1μC/GUI系统的软件结构661
19.1.2文本显示662
19.1.3数值显示664
19.1.42D图形库666
19.1.5字体671
19.1.6颜色672
19.1.7存储设备674
19.1.8视窗管理器674
19.1.9窗口对象676
19.1.10对话框687
19.1.11抗锯齿688
19.1.12输入设备690
19.1.13时间函数692
19.2μC/GUI系统的移植692
19.2.1初识μC/GUI系统692
19.2.2细说μC/GUI系统的移植701
19.2.3μC/GUI系统的触摸屏驱动704
19.2.4μC/OSII系统环境下支持μC/GUI系统705
19.3设计目标708
19.4系统软件设计708
19.5实例总结719
第20章嵌入式实时操作系统μC/OSIII的移植与应用720
20.1嵌入式系统μC/OSIII概述720
20.1.1μC/OSIII系统的特点720
20.1.2代码的临界段725
20.1.3任务管理726
20.1.4任务就绪表740
20.1.5任务调度742
20.1.6上下文切换748
20.1.7时间管理749
20.1.8资源管理750
20.1.9信号量754
20.1.10事件标志组765
20.1.11消息传递772
20.1.12内存管理782
20.2如何在LPC1788处理器上移植μC/OSIII系统784
20.2.1移植μC/OSIII系统必须满足的条件784
20.2.2初识μC/OSIII嵌入式系统785
20.3设计目标808
20.4μC/OSIII系统软件设计808
20.5实例总结814
参考文献815