热搜关键词: matlab人工智能算法嵌入式雷达电机驱动

pdf

ARM快速嵌入式系统原型设计-基于开源硬件mbed

  • 1星
  • 2021-02-25
  • 61.81MB
  • 需要2积分
  • 25次下载
标签: arm

arm

ARM快速嵌入式系统原型设计:基于开源硬件mbed,    英文原版书名:  Fast  and  Effective  Embedded  Systems  Design  Applying  the  ARM  Mbed,机械工业出版社出版,作者:托尔森  (Rob  Toulson),  威尔姆斯特  (Tim  Wilmshurst)  著,  韩德强  译。《ARM快速嵌入式系统原型设计:基于开源硬件mbed》旨在通过mbed介绍嵌入式系统设计的所有主要议题,便于读者快速掌握嵌入式系统的设计方法。《ARM快速嵌入式系统原型设计:基于开源硬件mbed》共15章。第1~10章从基本的原理和简单的项目入手,使用mbed项目示例提供一套完整的嵌入式系统设计入门课程,旨在揭示如何使用mbed快速地设计嵌入式系统。第11~15章逐渐深入到更专业的领域,阐述嵌入式系统的设计精髓,为读者进一步阅读或学习更高级的课程打基础。

第一部分  嵌入式系统概述与玩转mbed

第1章  嵌入式系统、微控制器与ARM  2

1.1  嵌入式系统简介  2

1.1.1  什么是嵌入式系统  2

1.1.2  嵌入式系统示例  3

1.2  微处理器与微控制器  4

1.2.1  计算机主要组件  5

1.2.2  微控制器  6

1.3  嵌入式系统的开发流程  7

1.3.1  程序语言:C/C++有什么特别之处  7

1.3.2  开发周期  7

1.4  进入ARM世界  8

1.4.1  关于ARM的历史  8

1.4.2  技术细节:RISC的意义  9

1.4.3  Cortex内核  10

本章回顾  11

习题  11

参考文献  11

第2章  mbed开发板  12

2.1  mbed简介  12

2.1.1  mbed体系结构  14

2.1.2  LPC1768微控制器  15

2.2  mbed入门教程  16

2.2.1  步骤1:连接mbed到PC  17

2.2.2  步骤2:创建mbed账户  17

2.2.3  步骤3:运行程序  17

2.2.4  步骤4:编译程序  18

2.2.5  步骤5:下载程序二进制代码  19

2.2.6  步骤6:修改程序代码  19

2.3  开发环境  19

2.3.1  mbed编译器和API  19

2.3.2  C/C++的使用  20

本章回顾  20

习题  20

参考文献  21

第3章  数字输入和输出  22

3.1  开始编写程序  22

3.1.1  思考第一个程序  22

3.1.2  了解mbed的API函数  25

3.1.3  分析while循环  25

3.2  用电压表示逻辑值  27

3.3  mbed数字输出  27

3.3.1  发光二极管的使用  28

3.3.2  mbed外部引脚的使用  29

3.4  mbed数字输入  30

3.4.1  开关与数字系统的连接  30

3.4.2  Digital  In  API  31

3.4.3  用if语句响应开关输入  31

3.5  简单的光电设备接口  33

3.5.1  光敏反射和透射传感器  33

3.5.2  光敏传感器与mbed开发板的连接  34

3.5.3  七段数码管显示  35

3.5.4  七段数码管与mbed开发板的连接  36

3.6  驱动大型直流负载  39

3.6.1  使用晶体管驱动  39

3.6.2  用mbed进行电机驱动控制  40

3.6.3  驱动多个七段数码管  41

3.7  小项目:字母计数器  42

本章回顾  42

习题  43

参考文献  44

第4章  模拟输出  45

4.1  数据转换简介  45

4.2  mbed开发板上的模拟输出  46

4.2.1  产生恒定的输出电压  47

4.2.2  锯齿波  47

4.2.3  测试DAC分辨率  50

4.2.4  产生正弦波  50

4.3  另一种形式的模拟量输出:脉冲宽度调制  51

4.4  mbed开发板上的脉冲宽度调制  52

4.4.1  使用mbed的PWM信号源  52

4.4.2  一些PWM输出实验  53

4.4.3  控制小电机的速度  55

4.4.4  用软件方式产生PWM  55

4.4.5  伺服控制  56

4.4.6  输出到一个压电转换器  57

本章回顾  59

习题  60

参考文献  60

第5章  模拟输入  61

5.1  数模转换  61

5.1.1  模—数转换器  61

5.1.2  范围、分辨率和量化  62

5.1.3  采样频率  64

5.1.4  mbed开发板上的模拟输入  64

5.2  模拟输入和输出混合应用  65

5.2.1  用可变电压控制LED亮度  65

5.2.2  用PWM控制LED亮度  66

5.2.3  PWM频率控制  67

5.3  模拟输入数据的处理  68

5.3.1  在计算机屏幕上显示数值  68

5.3.2  将ADC输出调整到识别范围内  69

5.3.3  采用平均值降低噪声  69

5.4  一些简单的模拟传感器  70

5.4.1  光敏电阻  70

5.4.2  集成电路温度传感器  71

5.5  分析数据转换时间  71

5.6  小项目:二维光跟踪  73

本章回顾  73

习题  74

参考文献  74

第6章  高级编程技术  75

6.1  思考程序设计和程序结构带来的好处  75

6.2  函数  75

6.3  程序设计  76

6.3.1  使用流程图定义代码结构  76

6.3.2  伪代码  77

6.4  在mbed开发板上使用函数  78

6.4.1  实现七段数码管计数器  79

6.4.2  函数重用  80

6.4.3  一个使用函数且更复杂的程序  81

6.5  在C/C++中使用多个文件  83

6.5.1  C/C++程序编译过程概述  83

6.5.2  C/C++预处理器和预处理器指令  84

6.5.3  #ifndef伪指令  85

6.5.4  全局地使用mbed对象  86

6.6  模块化程序示例  86

本章回顾  89

习题  90

第7章  串行通信  91

7.1  同步串行通信简介  91

7.2  串行外围接口  92

7.2.1  SPI简介  93

7.2.2  mbed开发板上的SPI  94

7.2.3  设置mbed  SPI主设备  94

7.2.4  创建SPI数据链路  95

7.3  智能仪表和SPI加速器  99

7.3.1  ADXL345加速器简介  99

7.3.2  简单ADXL345程序开发  100

7.4  SPI评估  102

7.5  I2C总线  103

7.5.1  I2C总线简介  103

7.5.2  mbed开发板上的I2C总线  105

7.5.3  设置I2C数据链路  105

7.6  用I2C总线标准的温度传感器通信  108

7.7  SRF08超声波测距仪的使用  110

7.8  I2C总线评估  112

7.9  异步串行数据通信  112

7.9.1  异步串行通信简介  113

7.9.2  mbed开发板上的异步串行通信应用  113

7.9.3  同宿主计算机的同步串行通信应用  116

7.10  小项目:多节点I2C总线  116

本章回顾  116

习题  116

参考文献  117

第8章  液晶显示器  118

8.1  显示技术  118

8.1.1  液晶技术简介  118

8.1.2  液晶字符显示  119

8.2  使用PC1602F  LCD  120

8.2.1  PC1602F显示器简介  121

8.2.2  连接PC1602F到mbed开发板  121

8.2.3  LCD接口的模块化编程  122

8.2.4  初始化显示  123

8.2.5  向LCD发送显示数据  124

8.2.6  完整的LCP.cpp定义  125

8.2.7  使用LCD函数  126

8.2.8  向指定位置添加数据  127

8.3  使用mbed开发板的TextLCD库  128

8.4  在LCD上显示模拟输入数据  130

8.5  更先进的LCD  131

8.5.1  彩色LCD  131

8.5.2  控制SPI标准的LCD手机显示屏  132

8.6  小项目:数字水平仪  134

本章回顾  134

习题  135

参考文献  135

第9章  中断、定时器和任务  136

9.1  嵌入式系统中的定时和任务  136

9.1.1  定时器和中断  136

9.1.2  任务  136

9.1.3  事件触发任务和时间触发任务  137

9.2  响应事件触发的事件  137

9.2.1  轮询  137

9.2.2  中断简介  138

9.3  简单的mbed中断  139

9.4  深入理解中断  140

9.4.1  LPC1768中断  142

9.4.2  测试中断延迟  142

9.4.3  禁用中断  143

9.4.4  模拟输入中断  144

9.4.5  中断总结  145

9.5  定时器  145

9.5.1  数字计数器  145

9.5.2  使用计数器作为定时器  146

9.5.3  mbed上的定时器  146

9.6  使用mbed定时器  146

9.6.1  使用多个mbed定时器  147

9.6.2  测试定时器延迟  148

9.7  使用mbed超时  150

9.7.1  超时应用简单示例  150

9.7.2  超时进阶应用  151

9.7.3  用超时测试反应时间  152

9.8  使用mbed断续装置  153

9.8.1  节拍器中使用断续装置  154

9.8.2  思考多任务节拍器程序  156

9.9  实时时钟  157

9.10  开关去除抖动  157

9.11  小项目  159

9.11.1  独立节拍器  159

9.11.2  加速度计阈值中断  159

本章回顾  160

习题  160

第10章  存储器与数据管理  161

10.1  存储器综述  161

10.1.1  存储器功能类型  161

10.1.2  基本电子存储器类型  161

10.2  使用mbed的数据文件  163

10.2.1  回顾部分所需的C/C++库函数  164

10.2.2  定义mbed的本地文件系统  164

10.2.3  打开和关闭文件  164

10.2.4  写入和读取文件数据  165

10.3  mbed数据文件存取示例  165

10.3.1  文件存取  165

10.3.2  字符串文件存取  166

10.3.3  使用格式化数据  167

10.4  使用mbed的外部存储器  168

10.5  指针简介  170

10.6  小项目:加速度计阈值的记录  172

本章回顾  173

习题  173

参考文献  173

第二部分  高级和专家级应用

第11章  数字信号处理  176

11.1  数字信号处理器简介  176

11.2  数字滤波示例  176

11.3  mbed  DSP示例  178

11.3.1  数字数据的输入和输出  178

11.3.2  信号重构  180

11.3.3  添加一个数字低通滤波器  182

11.3.4  添加一个激活按钮  183

11.3.5  数字高通滤波器  184

11.4  延迟/回声效果  184

11.5  使用wave音频文件  187

11.5.1  波形信息的头部  187

11.5.2  用mbed读取wave文件的头部  189

11.5.3  读取、输出单声道wave数据  191

11.6  DSP小结  194

11.7  小项目:立体声播放器  194

11.7.1  基本功能的立体声播放器  194

11.7.2  拥有PC接口的立体声播放器  194

11.7.3  拥有手机显示接口的便携式立体声播放器  194

本章回顾  194

习题  195

参考文献  195

第12章  高级串行通信  196

12.1  高级串行通信协议简介  196

12.2  蓝牙串行通信  196

12.2.1  蓝牙简介  196

12.2.2  蓝牙模块RN—41和RN—42的接口  197

12.2.3  通过蓝牙发送mbed数据  197

12.2.4  从主机终端应用程序接收的蓝牙数据  199

12.2.5  两个mbed之间通过蓝牙通信  199

12.3  USB简介  202

12.3.1  使用mbed模拟USB鼠标  203

12.3.2  从mbed端发送USB  MIDI数据  203

12.4  以太网简介  206

12.4.1  以太网概述  206

12.4.2  实现简单的mbed以太网通信  207

12.4.3  mbed之间的以太网通信  209

12.5  用mbed进行本地网络和Internet通信  211

12.5.1  用mbed作为HTTP客户端  211

12.5.2  用mbed作为HTTP文件服务器  213

12.5.3  用远程过程调用修改mbed输出  214

12.5.4  用远程JavaScript接口控制mbed  216

本章回顾  218

习题  219

参考文献  219

第13章  控制系统  220

13.1  控制系统简介  220

13.1.1  闭环和开环控制系统  220

13.1.2  闭环巡航控制示例  221

13.1.3  比例控制  223

13.1.4  PID控制  224

13.2  闭环数字罗盘示例  225

13.2.1  HMC6352数字罗盘的使用  225

13.2.2360°旋转伺服系统的实现  227

13.2.3  闭环控制算法的实现  229

13.3  基于控制器局域网控制数据通信  231

13.3.1  控制器局域网  231

13.3.2  mbed上的CAN总线  232

本章回顾  237

习题  237

参考文献  237

第14章  mbed库函数入门  238

14.1  简介  238

14.2  控制寄存器概念  238

14.3  数字输入/输出  240

14.3.1  mbed数字输入/输出控制寄存器  240

14.3.2  数字输出的应用  241

14.3.3  添加第二个数字输出  242

14.3.4  数字输入  243

14.4  深入了解控制寄存器  244

14.4.1  引脚功能选择寄存器和引脚模式寄存器  245

14.4.2  功率控制寄存器和时钟选择寄存器  246

14.5  使用DAC  248

14.5.1  mbed  DAC控制寄存器  248

14.5.2  DAC的应用  249

14.6  使用ADC  250

14.6.1  mbed  ADC控制寄存器  250

14.6.2  ADC应用  251

14.6.3  改变ADC转换速度  253

14.7  控制寄存器使用小结  255

本章回顾  255

习题  256

参考文献  256

第15章  项目扩展  257

15.1  去往何方  257

15.2  mbed  Pololu机器人  257

15.3  高级音频项目  258

15.4  物联网  258

15.5  mbed  LPC11U24简介  259

15.6  从mbed到实际生产  260

15.7  结束语  262

参考文献  263

附录A  数制系统  264

附录B  C语言基础  269

附录C  mbed技术资料  286

附录D  配件清单  290

附录E  Tera  Term终端模拟器  292

展开预览

评论

登录/注册

意见反馈

求资源

回顶部

推荐内容

热门活动

热门器件

随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
×