当前位置:首页 > 工业技术
51菜鸟到ARM(STM32)高手进阶之旅
51菜鸟到ARM(STM32)高手进阶之旅

51菜鸟到ARM(STM32)高手进阶之旅PDF电子书下载

工业技术

  • 电子书积分:17 积分如何计算积分?
  • 作 者:彭震编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2014
  • ISBN:9787512415416
  • 页数:568 页
图书介绍:第一部分主要是51与ARM外部资源例程,第二部分主要侧重与51不同特点相关的接口资源。对没有入门的初学者来说,要直接上升到ARM的级别是非常之困难的,经常遇到很多初学者说,我有51基础,能学ARM吗?没有人为他们打开一条直升的道路。学懂51或许是容易,但51如何过渡到ARM是至关重要的,这个部分目前国内是一个空缺层。
《51菜鸟到ARM(STM32)高手进阶之旅》目录

第1章 从零开始动手制作51单片机小项目 1

1.1 我的单片机自学经历 1

1.2 我眼中的单片机 2

1.3 零基础搭建一个最小电路 3

1.3.1 搭建电路的地盘 3

1.3.2 单片机运行的最简单条件 4

1.3.3 动手搭建最简单的电路——点亮1个LED灯 5

1.3.4 点亮多个LED灯 11

1.4 单片机怎样下载程序 12

1.4.1 了解串口 12

1.4.2 自己制作串口下载线 13

1.5 制作USB下载线 21

1.5.1 关于USB下载的概念 21

1.5.2 用USB转TTL模块接口下载程序 21

1.6 自己搭建流水灯 24

1.6.1 实验说明 24

1.6.2 实验原理图 25

1.6.3 器件清单与连接方法 25

1.6.4 程序下载 27

1.6.5 代码分析 28

1.6.6 实验现象 29

1.7 按键控制LED灯 29

1.7.1 实验说明 29

1.7.2 实验原理图 30

1.7.3 器件清单与操作步骤 32

1.7.4 程序下载 33

1.7.5 代码分析 33

1.7.6 实验现象 36

1.8 按键控制蜂鸣器 36

1.8.1 实验说明 36

1.8.2 实验原理图 37

1.8.3 器件清单与连接方法 37

1.8.4 程序下载 38

1.8.5 代码分析 39

1.8.6 实验现象 39

1.9 动手搭建电路点亮1602液晶屏 40

1.9.1 实验说明 40

1.9.2 实验原理图 40

1.9.3 器件清单与连接方法 40

1.9.4 程序下载 41

1.9.5 代码分析 42

1.9.6 实验现象 46

第2章 51单片机理论深入 48

2.1 怎样学好单片机 48

2.1.1 初学者的困难 48

2.1.2 学习单片机的四个步骤 48

2.1.3 学习单片机的准备工作 49

2.2 单片机芯片入门理解 50

2.2.1 处理器如何控制一个智能产品 50

2.2.2 处理器芯片引脚的理解 50

2.2.3 处理器是怎么认识下载进去的程序代码的 51

2.2.4 为什么采用二进制,而不采用三进制、四进制 52

2.2.5 处理器硬件上如何实现存储二进制数 53

2.2.6 单片机芯片的选型 53

2.3 51单片机资料阅读方法 54

2.3.1 如何阅读51单片机的芯片手册 54

2.3.2 51单片机的引脚是如何被控制的 56

2.4 从零开始搭建51编程环境 61

2.4.1 环境搭建 61

2.4.2 实验现象 66

2.4.3 main.c源代码(可以直接运行) 66

2.4.4 硬件原理图说明 66

2.4.5 软件架构和代码分析(只有一个main.c文件) 67

2.4.6 while语句 72

2.4.7 for语句 73

2.5 KEIL仿真及延时语句的精确计算 75

2.6 不带参数函数的写法及调用 81

2.7 带参数函数的写法及调用 83

2.8 利用C51库函数实现流水灯 84

2.9 硬件基础 87

2.9.1 电磁干扰 88

2.9.2 去耦电容 88

2.9.3 三极管 91

2.9.4 晶振电路 93

2.9.5 复位电路 93

2.9.6 单片机I/O口的状态 94

2.9.7 上下拉电阻 96

第3章 51单片机全方位实战 98

3.1 如何下载第一个程序到单片机里 98

3.1.1 什么是冷启动 98

3.1.2 环境搭建 98

3.1.3 开始下载第一个程序 100

3.2 如何驱动发光二极管 103

3.2.1 发光二极管的介绍 103

3.2.2 发光二极管的发光原理 104

3.2.3 硬件原理图连接 105

3.2.4 例程01 单片机I/O输出——点亮1个LED灯方法1 107

3.2.5 例程02 单片机I/O输出——点亮1个LED灯方法2 111

3.2.6 例程03 单片机I/O输出——点亮1个LED灯方法3 112

3.2.7 更多LED的例程 116

3.3 按键 116

3.3.1 按键的介绍 116

3.3.2 单片机检测小弹性按键的原理 117

3.3.3 硬件连接原理图 118

3.3.4 例程01 一个独立按键控制LED(无消抖) 119

3.3.5 例程02 一个独立按键控制LED(消抖动) 120

3.3.6 更多按键的例程 122

3.4 共阳数码管 123

3.4.1 共阳数码管的介绍 123

3.4.2 共阳数码管的内部原理 123

3.4.3 共阳数码管的硬件连接原理 124

3.4.4 例程01 共阳数码管静态显示数字8 125

3.4.5 例程02 共阳数码管静态显示数字0 126

3.4.6 例程03 共阳数码管循环显示数字0~9 127

3.4.7 更多共阳数码管的例程 128

3.5 共阴数码管 129

3.5.1 8位共阴数码管简介 129

3.5.2 8位共阴数码管的工作方式 130

3.5.3 硬件原理图连接 131

3.5.4 例程01 8位数码管显示其中之一 132

3.5.5 更多有关共阴数码管的例程 133

3.6 定时器 134

3.6.1 定时器的由来 134

3.6.2 定时器实现原理与作用 134

3.6.3 时钟周期、机器周期、指令周期、总线周期的区别 134

3.6.4 单片机的定时器响应方式 135

3.6.5 定时器的4种不同工作模式 136

3.6.6 例程01 用定时器使得LED灯闪烁 139

3.6.7 更多有关定时器的例程 145

3.7 外部中断 145

3.7.1 什么是中断 145

3.7.2 什么是单片机的中断 146

3.7.3 什么是中断的来源 146

3.7.4 什么是中断的优先级 147

3.7.5 单个中断的响应过程 147

3.7.6 多个中断的嵌套响应过程 148

3.7.7 单片机中的中断如何被管理 149

3.7.8 硬件原理说明 150

3.7.9 例程01 外部中断0电平触发 150

3.7.10 更多有关外部中断的例程 153

3.8 蜂鸣器(喇叭) 154

3.8.1 蜂鸣器简介 154

3.8.2 无源电磁式蜂鸣器的工作原理 155

3.8.3 硬件原理与连接 155

3.8.4 例程01 喇叭发声原理 156

3.8.5 更多蜂鸣器的例程 157

3.9 看门狗 157

3.9.1 看门狗简介 157

3.9.2 看门狗的原理和软件设计思想 157

3.9.3 例程01 看门狗溢出复位实验 158

3.9.4 更多看门狗的例程 162

3.10 红绿双色点阵 163

3.10.1 对LED点阵的初步了解 163

3.10.2 红绿双色LED点阵的内部结构 163

3.10.3 红绿双色LED点阵的显示原理 164

3.10.4 硬件原理图描述 165

3.10.5 例程01 双色点阵1种颜色显示1 166

3.10.6 更多红绿双色点阵的例程 167

3.11 串口通信的收与发 168

3.11.1 什么是串口通信 168

3.11.2 串口通信的属性 168

3.11.3 什么是单片机的TTL电平 173

3.11.4 NPN和PNP三极管的基础知识 175

3.11.5 RS232电平与TTL电平的转换 176

3.11.6 神舟51+ARM独特的USB转串口的TTL电平模块设计 180

3.11.7 串口波特率的理解 181

3.11.8 51单片机内部的UART串口简介 181

3.11.9 单片机串口硬件连接原理 185

3.11.10 例程01 DB9串口输出一个字符 187

3.11.11 更多串口通信的例程 189

3.12 555脉冲发生器 190

3.12.1 555脉冲发生器简介 190

3.12.2 555定时器的工作原理 190

3.12.3 硬件原理及连接 191

3.12.4 例程01 555多谐振荡器蜂鸣实验 192

3.12.5 更多555脉冲发生器的例程 193

3.13 矩阵键盘 194

3.13.1 矩阵按键简介 194

3.13.2 矩阵按键的原理与识别 194

3.13.3 矩阵按键的几种扫描方法 195

3.13.4 硬件原理图 195

3.13.5 例程01 矩阵键盘实现 195

3.13.6 更多矩阵键盘的例程 198

3.14 串转并扩展(74HC595) 199

3.14.1 74HC595简介 199

3.14.2 串转并扩展(74HC595)的工作原理 199

3.14.3 硬件原理与连接 201

3.14.4 例程01 74HC595控制多个LED灯点亮 202

3.15 并转串扩展(74HC165) 205

3.15.1 并转串扩展74HC165简介 205

3.15.2 并转串扩展(74HC165)的工作原理 205

3.15.3 硬件原理与连接 206

3.15.4 例程01 74HC165读按键功能1 207

3.16 译码实验(74HC138) 210

3.16.1 什么是译码器 210

3.16.2 译码器的实现原理 211

3.16.3 74HC138译码器芯片介绍 211

3.16.4 硬件原理与连接 212

3.16.5 例程01 3-8译码器点亮1个LED灯 213

3.16.6 更多74HC138译码器的例程 216

3.17 锁存器(74HC573) 217

3.17.1 什么是锁存器 217

3.17.2 锁存器的实现原理 217

3.17.3 锁存器74HC573芯片介绍 218

3.17.4 硬件原理与连接 219

3.17.5 例程01 I/O口高低电平控制点亮1个LED灯 220

3.17.6 更多74HC573锁存器的例程 222

3.18 PS/2键盘输入 223

3.18.1 PS/2接口简介 223

3.18.2 PS/2键盘鼠标的硬件接口 223

3.18.3 PS/2的协议 224

3.18.4 键盘与PS/2协议实例分析 225

3.18.5 单片机与PS/2设备连接的硬件原理图 227

3.18.6 例程01 PS/2键盘输入在LED数码管上显示 227

3.18.7 更多PS/2的例程 235

3.19 A/D和D/A(PCF8591) 235

3.19.1 名词解释 235

3.19.2 A/D和D/A的产生背景 235

3.19.3 A/D转换原理 236

3.19.4 D/A转换原理 238

3.19.5 A/D与D/A的主要指标 238

3.19.6 A/D与D/A芯片PCF8591介绍 240

3.19.7 硬件原理图说明 241

3.19.8 例程01 PCF8591第1路A/D转换值数码管显示 242

3.19.9 更多A/D和D/A的例程 247

3.20 RTC实时时钟(DS1 302) 247

3.20.1 RTC实时时钟简介 247

3.20.2 DS1302时钟芯片简介 247

3.20.3 DS1302时钟芯片工作原理 248

3.20.4 DS1302硬件连接原理 251

3.20.5 例程01 DS1302数码管显示实时时钟 251

3.20.6 更多DS1302实时时钟的例程 257

3.21 1602液晶屏 258

3.21.1 1602字符型液晶屏简介 258

3.21.2 1602液晶屏显示的基本原理 260

3.21.3 如何控制1602液晶屏(寄存器的介绍) 261

3.21.4 硬件连接原理 270

3.21.5 例程01 1602液晶屏静态显示实验 271

3.21.6 更多1602液晶屏的例程 275

3.22 红外遥控器收发 276

3.22.1 红外收发简介 276

3.22.2 红外收发的特点与用途 277

3.22.3 红外发送的工作原理 277

3.22.4 红外接收头的物理结构 279

3.22.5 红外接收头的工作原理 281

3.22.6 红外接收的过程描述 281

3.22.7 硬件原理图与连接 282

3.22.8 例程01 红外控制LED灯闪烁 283

3.22.9 更多红外遥控器的例程 285

3.23 热敏、光敏电阻 285

3.23.1 为什么会有热敏、光敏电阻出现 285

3.23.2 热敏电阻的工作和制造原理 286

3.23.3 光敏电阻的工作和制造原理 286

3.23.4 硬件电路原理图 287

3.23.5 例程01 热敏电阻数码管显示 287

3.23.6 例程02 光敏电阻数码管显示 289

3.24 RS485通信 293

3.24.1 串行通信 293

3.24.2 RS485串行通信介绍 293

3.24.3 RS485串行通信结构 294

3.24.4 RS485串行通信原理 295

3.24.5 MAX485收发器芯片介绍 296

3.24.6 硬件原理图说明 297

3.24.7 例程01 RS485通信实验 297

3.25 DS18B20温度传感器 300

3.25.1 为什么会有温度传感器出现 300

3.25.2 什么是温度传感器 301

3.25.3 DS18B20温度传感器的特性 302

3.25.4 DS18B20温度传感器的实现原理 302

3.25.5 DS18B20硬件原理图分析 305

3.25.6 例程01 DS18B20初始化程序 306

3.25.7 更多DS18B20温度传感器的例程 308

3.26 直流电机 309

3.26.1 直流电机的介绍 309

3.26.2 直流电机的内部结构 309

3.26.3 直流电机和步进电机的区别 310

3.26.4 直流电机的分类 311

3.26.5 直流电机的工作原理 312

3.26.6 直流电机的控制原理 313

3.26.7 直流电机的控制电路 313

3.26.8 硬件原理图与连接 314

3.26.9 例程01 直流电机恒速转动 315

3.27 步进电机 317

3.27.1 什么是步进电机 317

3.27.2 步进电机和普通直流电机的区别 318

3.27.3 步进电机的分类 318

3.27.4 步进电机的转动 318

3.27.5 步进电机驱动器件的介绍 319

3.27.6 硬件原理与连接 321

3.27.7 例程01 步进电机转动原理1 323

3.27.8 更多步进电机的例程 325

3.28 继电器 325

3.28.1 继电器简介 325

3.28.2 电磁继电器的工作原理 325

3.28.3 硬件原理 326

3.28.4 例程01 继电器1s切换一次 326

3.28.5 更多继电器的例程 328

3.29 315M无线模块 329

3.29.1 无线模块简介 329

3.29.2 315M无线模块的特点 329

3.29.3 315M无线模块内部架构实现 330

3.29.4 例程01 315M无线模块任意按键控制LED实验 331

3.29.5 更多315M无线模块的例程 333

3.30 2.4G无线模块 333

3.30.1 2.4G无线模块简介 333

3.30.2 nRF24L01无线模块的工作原理 334

3.30.3 单片机串口硬件连接原理 341

3.30.4 例程01 两块2.4G无线模块测试实验 344

3.30.5 例程02 两块2.4G无线模块通信实验 344

3.31 5110液晶屏 345

3.31.1 5110液晶屏简介 345

3.31.2 5110液晶屏的原理和特点 345

3.31.3 5110液晶屏连接方式 347

3.31.4 5110液晶屏引脚分析 347

3.31.5 5110液晶屏字模生成方法 348

3.31.6 如何控制5110液晶屏 352

3.31.7 硬件连接原理 355

3.31.8 例程01 NOKIA5110液晶屏显示英文 355

3.31.9 更多5110液晶屏显示等的例程 360

3.32 TFT彩色液晶屏 360

3.32.1 术语解释 360

3.32.2 TFT彩屏硬件原理简介 361

3.32.3 液晶显示原理剖析 362

3.32.4 控制器命令分析 363

3.32.5 TFT硬件设计 368

3.32.6 例程01 TFT彩屏显示红色 369

3.32.7 更多彩屏的例程 381

3.33 μC/OS-Ⅱ操作系统的基础理解 381

3.33.1 操作系统简介 381

3.33.2 理解操作系统的小例子 382

3.33.3 μC/OS-Ⅱ的任务及其状态 382

3.33.4 μC/OS-Ⅱ任务的控制块OS_TCB 383

3.33.5 μC/OS-Ⅱ的就绪表 383

3.33.6 μC/OS-Ⅱ的任务调度 384

3.33.7 μC/OS-Ⅱ的调度器上锁、开锁 384

3.33.8 μμC/OS-Ⅱ的空闲任务 384

3.33.9 μC/OS-Ⅱ中的中断 384

3.33.10 μC/OS-Ⅱ的时钟节拍 385

3.33.11 μC/OS-Ⅱ的初始化 385

3.33.12 μC/OS-Ⅱ的启动 385

3.33.13 例程01 μC/OS-Ⅱ单任务运行 385

3.33.14 例程02 μC/OS-Ⅱ多任务运行 387

第4章 ARM理论基础深入 391

4.1 51单片机与ARM处理器的区别 391

4.1.1 传统理念对51单片机和ARM的理解 391

4.1.2 51单片机与ARM芯片内部的真正区别 392

4.1.3 芯片的性价比与选型 393

4.2 从51到ARM的学习方法 395

4.2.1 精通51之后再来学习ARM 395

4.2.2 市场上的ARM种类 396

4.2.3 ARM是硬件还是软件 396

4.2.4 嵌入式开发需要的辅助调试工具 397

4.2.5 资深工程师眼中的嵌入式操作系统 397

4.2.6 资深工程师眼中的嵌入式产品的开发流程 398

4.2.7 ARM开发板的优点与缺点 399

4.3 ARM编程入门 400

4.3.1 如何阅读STM32的芯片手册 400

4.3.2 STM32芯片的单个引脚是如何被控制的 401

4.4 分析一个最简单的程序 406

4.4.1 硬件原理图说明 406

4.4.2 main.c源代码(可以直接运行) 408

4.4.3 环境搭建 410

4.4.4 实验现象 417

4.4.5 例程软件架构和代码分析(只有一个main.c文件) 417

4.4.6 代码剖析1——代码的定义如何与芯片内部资源挂钩 423

4.4.7 代码剖析2——代码如何映射到芯片内部的寄存器 425

4.4.8 代码剖析3——main函数寄存器级分析(重点) 425

4.4.9 代码下载方式1——通过J-Flash下载 431

4.4.10 代码下载方式2——通过KEIL软件直接下载 435

4.5 从零开始搭建一个最简单的模板 439

4.5.1 如何去官网下载最新的STM32资料 439

4.5.2 获取ST库源码 443

4.5.3 开始新建工程 443

4.5.4 MDK环境设置 450

4.5.5 使用JLINK V8仿真器硬件调试配置 455

4.6 通过程序的分析总结51和ARM的区别 459

第5章 ARM实战 460

5.1 神舟51+ARM模块如何使用 460

5.1.1 神舟51+ARM模块与最小系统的区别 460

5.1.2 如何把ARM模块扣在神舟51单片机板上 461

5.1.3 扣上ARM模块后51单片机板上的原理图怎么看 465

5.2 神舟51+ARM模块的硬件电路分析 467

5.2.1 神舟51+ARM的原理图 467

5.2.2 神舟51+ARM的功能特点 467

5.2.3 STM32F103C8T6处理器 469

5.2.4 LED指示灯 471

5.2.5 USART接口 471

5.2.6 复位系统 471

5.2.7 标准的JTAG/SWD仿真调试下载接口 472

5.2.8 USB全速接口 474

5.2.9 连接器的说明 475

5.3 通用输入/输出(GPIO) 477

5.3.1 引脚特性 477

5.3.2 GPIO应用领域 478

5.3.3 引脚分配 478

5.3.4 GPIO引脚内部硬件电路原理剖析 478

5.3.5 STM32的GPIO引脚深入分析 482

5.3.6 在STM32中如何配置片内外设使用的I/O端口 489

5.3.7 例程01 单个LED点灯闪烁程序 489

5.3.8 例程02 LED双灯闪烁实验 493

5.3.9 例程03 LED三个灯同时亮同时灭 495

5.3.10 例程04 LED流水灯程序 496

5.4 时钟 498

5.4.1 什么是时钟 498

5.4.2 STM32的时钟 499

5.4.3 STM32时钟的深入分析 500

5.4.4 例程01 STM32芯片32 MHz频率下的跑马灯程序 504

5.4.5 例程02 STM32芯片40 MHz频率下的跑马灯程序 510

5.4.6 例程03 STM32芯片72 MHz频率下的跑马灯程序 512

5.5 独立按键 512

5.5.1 按键的分类 512

5.5.2 按键的属性 513

5.5.3 STM32的位带操作 514

5.5.4 例程01 STM32芯片按键点灯(无防抖) 519

5.5.5 例程02 STM32芯片按键点灯增加了防抖的代码 524

5.6 串口通信的收与发 525

5.6.1 串口通信 525

5.6.2 例程01 最简单的串口打印$字符 525

5.6.3 例程02 单串口打印www.armjishu.com字符(初级) 534

5.6.4 例程03 单串口打印www.armjishu.com字符(中级) 536

5.6.5 例程04 单串口打印www.armjishu.com字符(高级) 538

5.6.6 例程05 USART-COM1串口接收与发送实验(初级) 540

5.6.7 例程06 USART-COM1串口接收与发送实验(中级) 543

5.6.8 例程05 USART-COM1串口接收与发送实验(高级) 543

5.7 更多ARM例程(包括详细代码分析) 546

第6章 嵌入式高手进阶之路 548

6.1 各种角色搭配组成 548

6.1.1 产品经理 548

6.1.2 技术总监 548

6.1.3 研发部经理 549

6.1.4 普通研发人员 549

6.1.5 售前工程师 549

6.1.6 售后工程师 549

6.1.7 销售 549

6.2 硬件专家之STM32神舟团队20年工作经验心得总结 549

6.2.1 需求定义 550

6.2.2 处理器的选择之I/O引脚数量篇 552

6.2.3 处理器的选择之接口需求篇 552

6.2.4 处理器的选择之内存容量需求篇 553

6.2.5 处理器的选择之中断数量篇 554

6.2.6 处理器的选择之实时处理篇 554

6.2.7 处理器的选择之芯片厂商篇 554

6.2.8 处理器的选择之芯片速度篇 554

6.2.9 处理器的选择之只读存储器(ROM)选择篇 555

6.2.10 处理器的选择之电源要求篇 555

6.2.11 处理器的选择之设备工作环境要求篇 556

6.2.12 处理器的选择之芯片寿命篇 556

6.2.13 处理器的选择之资料获取篇 556

6.2.14 开发成本的预测和估计 557

6.2.15 产品开发设计文档之硬件文档撰写思路 557

6.2.16 产品开发设计文档之软件文档撰写思路 558

6.2.17 嵌入式高手对技术的理解(精华体验) 559

6.3 PCB设计建议 560

6.3.1 PCB设计干扰的相关基础知识 560

6.3.2 电磁干扰三要素 560

6.3.3 电磁干扰源分类 561

6.3.4 电磁干扰传播途径 561

6.3.5 印制电路板 562

6.3.6 器件位置 562

6.3.7 接地和供电(VSS、VDD) 562

6.3.8 数字电路与模拟电路的共地处理 562

6.3.9 信号线布在电源层或地层上 563

6.3.10 焊盘与产品质量的关系 563

6.3.11 应关注的其他信号 563

6.3.12 未用到的I/O引脚 564

6.4 软件领域专家 564

6.4.1 STM32库函数到底是什么 564

6.4.2 STM32库函数的好处 564

6.4.3 千人大项目如何分配工作 566

6.5 以人为本,从实际出发 566

参考文献 568

相关图书
作者其它书籍
返回顶部