轻松玩转ARM Cortex-M3微控制器:基于LPC1788系列

轻松玩转ARM Cortex-M3微控制器:基于LPC1788系列
作 者: 刘波文
出版社: 北京航空航天大学出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 计算机/网络 软件工程/开发项目管理
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《轻松玩转ARM Cortex-M3微控制器:基于LPC1788系列》作者简介

内容简介

本书以ARM Cortex M3内核LPC1788微控制器为讲述对象,分成基础篇、入门篇、进阶篇,覆盖了LPC1788微控制器基本外设应用、嵌入式实时操作系统μC/OS II、μC/OS III、FreeRTOS、TCP/IP协议栈LwIP、μIP,以及嵌入式图形系统μC/GUI的应用,软件与硬件兼顾,涉及理论但更偏重于实践。全书共分为20章,所讲述的18个实例涵盖了最常用的外设以及典型的应用,实例设计中软件架构清晰,层次分明,跨平台可移植性强。本书可作为高等院校计算机、电子信息工程、自动控制等专业本科生、研究生的嵌入式系统教材,也可供从事ARM和嵌入式软件开发的科研人员、从业人员和高等院校师生使用。

图书目录

基础篇

第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实例总结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

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

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

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

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

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

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时间管理

16.1.5任务之间的通信与同步

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