《轻松玩转ARM CORTEX-M3微控制器:基于LPC1788系列》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:刘波文编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2015
  • ISBN:9787512414198
  • 页数:815 页
图书介绍:全书以TI LM4F232微处理器系列为写作平台,通过大量实例,深入浅出介绍了TI LM4F232微处理器开发的方法与技巧。全书共分16章,第1~3章为基础知识,简要介绍了TI LM4F232微处理器与实验平台及开发环境,使读者掌握必要的基础知识,实现技术入门;第二篇为应用实例,通过14个实例,详细阐述了TI LM4F232微处理器与μC/OS-II嵌入式结合开发的原理与典型实例,具体包括:实时电子时钟、串行Flash存储器、GPIO接口、ADC转换、LCD与触摸屏、SDIO接口应用、I2C接口应用、CAN总线应用、以太网应用、NRF24L01无线、Zigbee无线模块等实例。实例全部来自于工程实践,代表性和指导性强,读者通过学习后举一反三,设计水平将得到快速提高,步入高级工程师的行列。

基础篇 3

第1章 LPC178x系列微控制器概述 3

1.1 Cortex-M3处理器概述 3

1.1.1 Cortex-M3配置选项 3

1.1.2 LPC178x/177x系列微控制器型号与分类 4

1.1.3 LPC178x/177x系列微控制器主要特点 5

1.1.4 LPC178x/177x系列微控制器结构概述 7

1.1.5 LPC178x/177x系列微控制器存储器映射 9

1.1.6 片上存储器 10

1.1.7 片上外设及基址 10

1.2 CMSIS软件接口标准 12

1.2.1 CMSIS层与软件架构 13

1.2.2 CMSIS文件结构 14

第2章 开发工具概述 22

2.1 常用开发工具概览 22

2.1.1 RealView MDK开发环境 22

2.1.2 IAR EWARM开发环境 23

2.1.3 J-Link仿真器 24

2.1.4 ULINK2仿真器 25

2.2 LPC1788评估板简述 26

2.2.1 开发板概览 26

2.2.2 开发板外设接口I/O分配 29

2.3 RealView MDK开发环境快速入门 31

2.3.1 工程项目的建立 31

2.3.2 工程项目的配置 33

2.3.3 编写演示代码 35

2.3.4 工程项目的编译 36

2.3.5 程序下载与调试 37

2.4 IAR开发环境快速入门 40

2.4.1 IAR工程项目的快速建立 40

2.4.2 编译和链接应用程序 46

2.4.3 仿真调试 48

入门篇 55

第3章 GPIO端口应用 55

3.1 I/O端口配置概述 55

3.1.1 I/O端口配置描述 55

3.1.2 I/O端口控制寄存器功能描述 58

3.2 GPIO端口概述 62

3.2.1 引脚描述 63

3.2.2 GPIO寄存器描述 63

3.3 GPIO及I/O配置常用库函数 72

3.3.1 GPIO端口库函数功能详解 72

3.3.2 引脚连接配置库函数功能详解 82

3.4 GPIO端口应用实例 88

3.4.1 设计目标 88

3.4.2 硬件电路设计 88

3.4.3 实例软件设计 89

3.5 实例总结 96

第4章 实时时钟应用 97

4.1 实时时钟(RTC)概述 97

4.1.1 RTC基本配置 98

4.1.2 RTC引脚描述 99

4.2 RTC寄存器描述 99

4.2.1 RTC中断 100

4.2.2 混合寄存器组 101

4.2.3 完整时间寄存器组 103

4.2.4 时间计数器组 104

4.2.5 通用寄存器组 106

4.2.6 报警寄存器组 106

4.3 RTC常用库函数 107

4.4 RTC应用实例 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.2 Timer寄存器描述 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~3 131

5.2.8 捕获寄存器0~1 131

5.2.9 捕获控制寄存器 131

5.2.10 外部匹配寄存器 132

5.2.11 计数控制寄存器 132

5.2.12 DMA操作 133

5.3 Timer常用库函数 134

5.4 Timer应用实例 142

5.4.1 设计目标 142

5.4.2 硬件电路设计 142

5.4.3 实例软件设计 143

5.5 实例总结 151

第6章 模/数转换器应用 152

6.1 模/数转换器(ADC)概述 152

6.1.1 ADC的基本配置 153

6.1.2 ADC的引脚描述 153

6.1.3 ADC的操作 153

6.2 ADC寄存器描述 154

6.2.1 ADC控制寄存器 155

6.2.2 ADC全局数据寄存器 156

6.2.3 ADC中断使能寄存器 157

6.2.4 ADC数据寄存器0~7 158

6.2.5 ADC状态寄存器 159

6.2.6 ADC调节寄存器 159

6.3 ADC常用库函数 160

6.4 ADC应用实例 165

6.4.1 设计目标 165

6.4.2 硬件电路设计 165

6.4.3 实例软件设计 166

6.5 实例总结 173

第7章 数/模转换器应用 174

7.1 数/模转换器(DAC)概述 174

7.1.1 DAC的基本配置 175

7.1.2 DAC的引脚描述 175

7.1.3 DAC的操作 175

7.2 DAC寄存器描述 176

7.2.1 D/A转换器寄存器 176

7.2.2 D/A转换器控制寄存器 177

7.2.3 D/A转换器计数器值寄存器 177

7.3 常用库函数 178

7.3.1 DAC驱动库 178

7.3.2 通用DMA控制器常用库函数 180

7.4 DAC应用实例 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.2 PWM寄存器描述 197

8.2.1 PWM中断寄存器 197

8.2.2 PWM定时器控制寄存器 198

8.2.3 PWM计数控制寄存器 199

8.2.4 PWM定时器/计数器 199

8.2.5 PWM预分频寄存器 200

8.2.6 PWM预分频计数器寄存器 200

8.2.7 PWM匹配控制寄存器 200

8.2.8 PWM匹配寄存器 202

8.2.9 PWM捕获控制寄存器 202

8.2.10 PWM捕获寄存器 203

8.2.11 PWM控制寄存器 203

8.2.12 PWM锁存使能寄存器 204

8.3 PWM常用库函数 205

8.4 PWM应用实例 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.1 MCPWM控制寄存器 223

9.2.2 MCPWM捕获控制寄存器 225

9.2.3 MCPWM中断寄存器 227

9.2.4 MCPWM计数控制寄存器 229

9.2.5 MCPWM定时器/计数器0~2寄存器 231

9.2.6 MCPWM界限0~2寄存器 231

9.2.7 MCPWM匹配0~2寄存器 232

9.2.8 MCPWM死区时间寄存器 233

9.2.9 MCPWM通信格式寄存器 234

9.2.10 MCPWM捕获寄存器 234

9.3 MCPWM的应用操作 235

9.3.1 脉宽调制 236

9.3.2 映射寄存器和同时更新 238

9.3.3 快速中止(ABORT) 238

9.3.4 捕获事件 238

9.3.5 外部事件计数(计数器模式) 238

9.3.6 三相直流模式 239

9.3.7 三相交流模式 240

9.3.8 中断源 240

9.4 MCPWM常用库函数 241

9.5 MCPWM应用实例 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.2 UART寄存器描述 262

10.2.1 UARTn接收缓冲寄存器(RBR) 263

10.2.2 UARTn发送保持寄存器(THR) 263

10.2.3 UARTn除数锁存器LSB/MSB寄存器(DLL,DLM) 264

10.2.4 UARTn中断使能寄存器(IER) 264

10.2.5 UARTn中断标识寄存器(IIR) 265

10.2.6 UARTnFIFO控制寄存器(FCR) 266

10.2.7 UARTn线控制寄存器(LCR) 267

10.2.8 UARTnModem控制寄存器(MCR) 268

10.2.9 UARTn线状态寄存器(LSR) 268

10.2.10 UARTnModem状态寄存器(MSR) 270

10.2.11 UARTn高速缓存寄存器(SCR) 271

10.2.12 UARTn自动波特率控制寄存器(ACR) 271

10.2.13 UARTn分数分频器寄存器(FDR) 271

10.2.14 UARTn发送使能寄存器(TER) 272

10.2.15 UARTn的RS-485控制寄存器(RS485CTRL) 273

10.2.16 UARTN的RS-485地址匹配寄存器(RS485ADRMATCH) 274

10.2.17 UARTn的RS-485延时值寄存器(RS485DLY) 274

10.2.18 UART4过采样寄存器(OSR) 274

10.2.19 UART4智能卡接口控制寄存器(SCICTRL) 275

10.2.20 UART4同步模式控制寄存器(SYNCCTRL) 276

10.2.21 UART4 IrDA控制寄存器(ICR) 276

10.3 UART常用库函数 277

10.4 UART应用实例 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.2 SSP寄存器描述 300

11.2.1 SSPn控制寄存器0(CR0) 301

11.2.2 SSPn控制寄存器1(CR1) 301

11.2.3 SSPn数据寄存器(DR) 302

11.2.4 SSPn状态寄存器(SR) 302

11.2.5 SSPn时钟预分频寄存器(CPSR) 303

11.2.6 SSPn中断使能置位/清零寄存器(IMSC) 303

11.2.7 SSPn原始中断状态寄存器(RIS) 304

11.2.8 SSPn使能中断状态寄存器(MIS) 304

11.2.9 SSPn中断清零寄存器(ICR) 304

11.2.10 SSPn DMA控制寄存器(DMACR) 305

11.3 SSP常用库函数 305

11.4 SSP外设应用实例 312

11.4.1 设计目标 312

11.4.2 硬件电路设计 312

11.4.3 实例软件设计 315

11.5 实例总结 318

第12章 I2S数字音频接口应用 319

12.1 I2S总线接口概述 319

12.1.1 I2S总线接口的基本配置 321

12.1.2 I2S接口的引脚描述 321

12.2 I2S寄存器描述 322

12.2.1 数字音频输出寄存器(I2SDAO) 322

12.2.2 数字音频输入寄存器(I2SDAI) 323

12.2.3 发送缓冲寄存器(I2STXFIFO) 324

12.2.4 接收缓冲寄存器(I2SRXFIFO) 324

12.2.5 状态反馈寄存器(I2SSTATE) 324

12.2.6 DMA配置寄存器1(I2SDMA1) 324

12.2.7 DMA配置寄存器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 接收模式控制寄存器(I2SRXMODE) 328

12.3 I2S常用库函数 328

12.4 I2S数字音频接口播放器应用实例 337

12.4.1 设计目标 337

12.4.2 硬件电路设计 337

12.4.3 实例软件设计 343

12.5 实例总结 351

第13章 SD卡接口应用 352

13.1 SD卡接口概述 352

13.1.1 SD卡接口的基本配置 353

13.1.2 SD卡接口的引脚描述 353

13.2 SD卡接口寄存器描述 353

13.2.1 电源控制寄存器(MCIPower) 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 数据定时器寄存器(MCIData Timer) 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.14 FIFO计数器寄存器(MCIFifoCnt) 361

13.2.15 数据FIFO寄存器(MCIFIFO) 361

13.3 SD卡接口的常用库函数 361

13.4 基于SD卡接口的文件系统实例 373

13.4.1 设计目标 373

13.4.2 硬件电路设计 373

13.4.3 实例软件设计 374

13.5 实例总结 400

第14章 LCD控制器与触摸应用 401

14.1 LCD控制器概述 401

14.1.1 LCD上电与掉电时序 403

14.1.2 LCD控制器的基本配置 404

14.1.3 LCD控制器的引脚描述 404

14.2 LCD控制器寄存器描述 404

14.2.1 LCD配置和计时控制寄存器(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.8 LCD控制寄存器(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 光标剪裁位置寄存器(CRSR_CLIP) 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.3 LCD控制器的常用库函数 418

14.4 LCD控制器应用实例 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.1 MAC寄存器组 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

进阶篇 527

第16章 嵌入式实时操作系统μC/OS-Ⅱ的移植与应用 527

16.1 嵌入式系统μC/OS-Ⅱ概述 527

16.1.1 μC/OS-Ⅱ系统特点 527

16.1.2 μC/OS-Ⅱ系统内核 529

16.1.3 任务管理 538

16.1.4 时间管理 540

16.1.5 任务之间的通信与同步 540

16.1.6 内存管理 542

16.2 如何在LPC1788微处理器上移植μC/OS-Ⅱ系统 543

16.2.1 移植μC/OS-Ⅱ系统必须满足的条件 543

16.2.2 初识μC/OS-Ⅱ嵌入式系统 544

16.2.3 重提μC/OS-Ⅱ嵌入式系统移植要点 559

16.3 应用实例 560

16.3.1 设计目标 560

16.3.2 硬件电路设计 560

16.3.3 μC/OS-Ⅱ系统软件设计 560

16.4 实例总结 564

第17章 LwIP移植与应用实例 565

17.1 以太网概述 565

17.1.1 以太网的网络传输介质 565

17.1.2 以太网数据帧格式 568

17.1.3 嵌入式系统的以太网协议 570

17.2 LwIP协议栈概述 572

17.2.1 LwIP协议栈的整体架构和进程模型 572

17.2.2 LwIP协议栈的API接口 573

17.2.3 LwIP内存管理 591

17.3 LwIP协议栈基于μC/OS-Ⅱ系统的移植 592

17.3.1 LwIP协议栈的源文件结构 593

17.3.2 LwIP协议栈的移植 593

17.4 应用实例 607

17.4.1 设计目标 607

17.4.2 系统软件设计 607

17.5 实例总结 613

第18章 嵌入式实时操作系统FreeRTOS应用 614

18.1 嵌入式系统FreeRTOS概述 614

18.1.1 FreeRTOS系统的特点 614

18.1.2 FreeRTOS系统的任务管理 615

18.1.3 FreeRTOS系统的队列管理 626

18.1.4 FreeRTOS系统的信号量 629

18.1.5 FreeRTOS系统的资源管理 633

18.1.6 FreeRTOS系统的内存管理 635

18.1.7 联合程序 638

18.2 如何在LPC1788微控制器上移植FreeRTOS系统 644

18.2.1 初识FreeRTOS嵌入式系统 645

18.2.2 FreeRTOS系统的移植 646

18.2.3 FreeRTOS系统的可配置参数项 654

18.3 FreeRTOS应用实例 657

18.4 实例总结 660

第19章 嵌入式图形系统μC/GUI的移植与应用 661

19.1 嵌入式图形系统μC/GUI 661

19.1.1 μC/GUI系统的软件结构 661

19.1.2 文本显示 662

19.1.3 数值显示 664

19.1.4 2D图形库 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/OS-Ⅱ系统环境下支持μC/GUI系统 705

19.3 设计目标 708

19.4 系统软件设计 708

19.5 实例总结 719

第20章 嵌入式实时操作系统μC/OS-Ⅲ的移植与应用 720

20.1 嵌入式系统μC/OS-Ⅲ概述 720

20.1.1 μC/OS-Ⅲ系统的特点 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/OS-Ⅲ系统 784

20.2.1 移植μC/OS-Ⅲ系统必须满足的条件 784

20.2.2 初识μC/OS-Ⅲ嵌入式系统 785

20.3 设计目标 808

20.4 μC/OS-Ⅲ系统软件设计 808

20.5 实例总结 814

参考文献 815