嵌入式系统设计(基于STM32F4)

嵌入式系统设计(基于STM32F4)
作 者: 徐灵飞
出版社: 电子工业出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  徐灵飞,嵌入式系统设计”精品课程负责人,教授嵌入式系统设计”课程多年,承担民办高校重点特色专业质量提升计划”的专业建设工作等。

内容简介

本书主要以STM32F429微控制器为对象讲解嵌入式系统设计方法、实例。全书分为17章,主要对嵌入式系统,ARM Cortex-M体系架构,STM32F429微控制器内部构造及其常用的片上外设结构、应用实例、程序开发方法进行了讲解。书中对常用的应用进行了实例讲解,给出了清晰的系统应用设计思路,并明确了每个应用的设计步骤,提供了每个应用的程序源代码,使初学者在学习了相关基本知识后能够对具体的设计一看即懂。本书设计了适量习题,习题内容紧贴各章核心内容,涵盖基本概念及相关应用,能够起到巩固重要知识点的作用。本书适用于电子、通信、电气、测控、计算机、物联网等专业的在校生和嵌入式系统设计的爱好者。

图书目录

第1章 嵌入式系统\t1

1.1 嵌入式系统概述\t1

1.1.1 嵌入式系统的定义\t1

1.1.2 嵌入式系统的特点\t1

1.1.3 嵌入式系统的应用\t2

1.2 嵌入式系统的体系\t2

1.2.1 硬件架构\t3

1.2.2 软件层次\t3

1.3 嵌入式硬件系统\t6

1.3.1 嵌入式处理器分类\t6

1.3.2 典型嵌入式处理器\t7

1.3.3 存储系统\t9

1.3.4 I/O接口\t10

1.3.5 人机接口\t10

1.3.6 电源及其他设备\t10

1.4 嵌入式操作系统\t10

1.4.1 嵌入式操作系统的发展\t10

1.4.2 嵌入式操作系统的分类\t11

1.4.3 嵌入式实时操作系统的功能\t12

1.4.4 常用的嵌入式操作系统\t13

1.5 嵌入式系统的设计\t14

1.5.1 嵌入式系统设计流程\t14

1.5.2 嵌入式系统开发环境搭建\t15

习题\t16

第2章 ARM Cortex-M体系架构\t18

2.1 ARM Cortex体系架构概述\t18

2.1.1 CISC和RISC\t18

2.1.2 ARM架构发展史\t20

2.1.3 ARM处理器的类型\t20

2.1.4 Cortex-M系列处理器\t22

2.2 Cortex-M4内核基础\t23

2.2.1 寄存器组\t24

2.2.2 堆栈操作\t26

2.2.3 特殊功能寄存器组\t27

2.2.4 操作模式\t28

2.3 存储器系统\t30

2.3.1 数据类型\t30

2.3.2 存储形式\t30

2.3.3 存储器映射\t31

2.3.4 位带区\t32

2.4 异常和中断\t33

2.4.1 向量表\t34

2.4.2 优先级\t35

2.4.3 响应过程\t36

2.4.4 复位\t38

习题\t39

第3章 STM32F429微控制器\t40

3.1 STM32系列微控制器\t40

3.1.1 STM32系列微控制器概述\t40

3.1.2 芯片命名规则\t41

3.1.3 开发工具\t41

3.1.4 STM32标准函数库介绍\t46

3.2 STM32F429微控制器结构\t51

3.2.1 芯片资源\t51

3.2.2 芯片内部结构\t52

3.2.3 芯片引脚和功能\t55

3.2.4 电源系统\t57

3.2.5 复位系统\t60

3.3 STM32F4系列微控制器存储器映射和寄存器\t61

3.3.1 存储器映射\t61

3.3.2 自举配置\t63

3.3.3 寄存器映射\t63

习题\t67

第4章 启动文件和SysTick\t69

4.1 启动文件\t69

4.1.1 启动文件概述\t69

4.1.2 启动步骤\t69

4.2 启动文件代码讲解\t70

4.3 SysTick\t75

4.3.1 SysTick概述\t75

4.3.2 SysTick的库函数\t76

4.3.3 应用实例\t78

习题\t79

第5章 GPIO\t80

5.1 GPIO结构原理\t80

5.1.1 GPIO功能描述\t80

5.1.2 GPIO输入配置\t81

5.1.3 GPIO输出配置\t82

5.1.4 GPIO复用功能配置\t84

5.1.5 GPIO模拟功能配置\t85

5.2 GPIO相关寄存器\t86

5.2.1 模式寄存器\t86

5.2.2 输出类型寄存器\t86

5.2.3 输出速度寄存器\t87

5.2.4 上拉/下拉寄存器\t87

5.2.5 输入数据寄存器\t88

5.2.6 输出数据寄存器\t88

5.2.7 置位/复位寄存器\t89

5.2.8 配置锁存寄存器\t90

5.2.9 复用功能寄存器\t90

5.3 GPIO典型应用步骤及常用库函数\t92

5.3.1 GPIO典型应用步骤\t92

5.3.2 常用库函数\t93

5.4 应用实例\t97

5.4.1 GPIO输出应用实例\t97

5.4.2 GPIO输入应用实例\t99

5.4.3 GPIO复用应用实例\t101

5.4.4 矩阵按键应用\t102

习题\t106

第6章 NVIC\t108

6.1 NVIC的中断类型及中断管理方法\t108

6.1.1 中断类型\t108

6.1.2 中断管理方法\t109

6.2 常用库函数\t110

6.3 应用实例\t112

习题\t113

第7章 EXTI\t114

7.1 EXTI概述\t114

7.1.1 EXTI结构\t114

7.1.2 GPIO相关EXTI线\t116

7.2 EXTI典型应用步骤及常用库函数\t116

7.2.1 EXTI典型应用步骤\t116

7.2.2 常用库函数\t117

7.3 应用实例\t119

习题\t121

第8章 时钟系统\t122

8.1 时钟系统结构\t122

8.1.1 时钟源\t124

8.1.2 HSE时钟\t124

8.1.3 PLL配置\t125

8.1.4 LSE 时钟\t126

8.1.5 LSI时钟\t126

8.1.6 时钟输出功能\t126

8.2 PLL时钟系统配置步骤及常用库函数\t126

8.2.1 PLL时钟系统配置步骤\t127

8.2.2 常用库函数\t127

8.3 应用实例\t130

习题\t132

第9章 定时器系统\t133

9.1 定时器系统概述\t133

9.1.1 定时器结构\t134

9.1.2 时钟源\t134

9.2 基本定时功能\t137

9.2.1 时基单元\t137

9.2.2 计数模式\t138

9.3 捕抓/比较功能\t141

9.3.1 输入捕抓/比较输出通道\t141

9.3.2 输入捕抓模式\t143

9.3.3 输出模式\t144

9.3.4 编码器接口模式\t147

9.4 定时器典型应用步骤及常用库函数\t150

9.4.1 基本定时功能应用步骤\t150

9.4.2 输入捕抓模式应用步骤\t150

9.4.3 PWM输出应用步骤\t152

9.4.4 编码器接口应用步骤\t153

9.4.5 常用库函数\t155

9.5 应用实例\t159

9.5.1 定时器控制实现灯闪烁\t159

9.5.2 直流电机调速控制\t161

9.5.3 测量外部输入脉冲频率\t164

9.5.4 测量电机转速和方向\t167

习题\t170

第10章 DMA控制器\t171

10.1 DMA控制器概述\t171

10.1.1 DMA控制器主要特性\t171

10.1.2 DMA控制器结构\t172

10.2 DMA控制器功能\t173

10.2.1 DMA事务\t173

10.2.2 数据流\t174

10.2.3 通道\t174

10.2.4 仲裁\t175

10.2.5 循环模式\t176

10.2.6 单次和突发模式\t176

10.2.7 FIFO\t176

10.2.8 DMA中断\t177

10.2.9 DMA数据流配置过程\t177

10.3 DMA典型应用步骤及常用库函数\t178

10.3.1 DMA典型应用步骤\t178

10.3.2 常用库函数\t179

10.4 应用实例\t181

习题\t183

第11章 通用同步异步收发器(USART)\t184

11.1 通信概述\t184

11.1.1 并行通信和串行通信\t184

11.1.2 单工通信、半双工通信、全双工通信\t185

11.1.3 同步通信和异步通信\t185

11.1.4 RS-232\t186

11.2 STM32F429微控制器的USART结构\t188

11.2.1 USART概述\t188

11.2.2 波特率设置\t192

11.2.3 USART中断\t193

11.2.4 DMA控制\t193

11.3 USART典型应用步骤及常用库函数\t194

11.3.1 USART典型应用步骤\t194

11.3.2 常用库函数\t194

11.4 应用实例\t197

11.4.1 通过串口向计算机传输100个字节\t197

11.4.2 串口与计算机回显功能实现\t199

11.4.3 利用DMA通过串口向计算机传输1000个字节\t202

习题\t204

第12章 模数转换器(ADC)\t205

12.1 ADC概述\t205

12.1.1 A/D转换过程\t205

12.1.2 ADC原理\t206

12.2 STM32F429微控制器的ADC结构\t208

12.3 STM32F429微控制器的ADC功能\t212

12.3.1 ADC使能和启动\t212

12.3.2 时钟配置\t213

12.3.3 转换模式\t213

12.3.4 DMA控制\t214

12.4 ADC典型应用步骤及常用库函数\t215

12.4.1 ADC典型应用步骤\t215

12.4.2 常用库函数\t216

12.5 应用实例\t220

12.5.1 规则组单通道采集外部电压\t220

12.5.2 使用DMA和规则组通道实现多路模拟信号采集\t222

习题\t227

第13章 数模转换器(DAC)\t228

13.1 DAC概述\t228

13.1.1 基本概念\t228

13.1.2 DAC原理\t229

13.2 STM32F429微控制器的DAC结构\t230

13.3 STM32F429微控制器的DAC功能\t231

13.4 DAC典型应用步骤及常用库函数\t234

13.4.1 DAC典型应用步骤\t234

13.4.2 常用库函数\t235

13.5 应用实例\t236

习题\t239

第14章 I2C控制器\t240

14.1 I2C协议\t240

14.1.1 I2C物理层\t240

14.1.2 I2C协议层\t241

14.2 软件模拟I2C协议程序分析\t244

14.2.1 I2C引脚配置\t244

14.2.2 软件模拟开始信号和结束信号\t246

14.2.3 软件模拟检测ACK信号\t246

14.2.4 软件模拟产生ACK信号和NACK信号\t247

14.2.5 软件模拟发送一个字节数据\t247

14.2.6 软件模拟接收一个字节数据\t248

14.2.7 软件模拟I2C完整写操作\t248

14.2.8 软件模拟I2C完整读操作\t249

14.3 模拟I2C总线协议读写AT24CXX系列EEPROM实验\t250

14.4 I2C控制器概述\t254

14.4.1 I2C控制器主要特性\t254

14.4.2 I2C控制器结构\t254

14.4.3 I2C控制器主模式\t255

14.4.4 I2C控制器从模式\t256

14.4.5 I2C控制器中断\t257

14.5 I2C典型应用步骤及常用库函数\t258

14.5.1 I2C典型应用步骤\t258

14.5.2 常用库函数\t258

14.6 应用实例\t261

14.6.1 I2C控制器主模式测试\t261

14.6.2 I2C控制器从模式测试\t266

习题\t269

第15章 SPI控制器\t270

15.1 SPI协议\t270

15.1.1 SPI数据传输\t270

15.1.2 SPI通信的时钟极性和时钟相位\t271

15.1.3 4种SPI模式\t271

15.2 SPI控制器概述\t273

15.2.1 SPI控制器主要特性\t273

15.2.2 SPI控制器结构\t273

15.2.3 SPI主机配置\t274

15.2.4 SPI从机配置\t275

15.2.5 主模式的全双工发送和接收过程\t275

15.2.6 SPI状态标志\t276

15.2.7 SPI中断\t276

15.3 SPI典型应用步骤及常用库函数\t277

15.3.1 SPI典型应用步骤\t277

15.3.2 常用库函数\t277

15.4 应用实例\t279

习题\t289

第16章 外部存储控制器\t290

16.1 FMC概述\t290

16.1.1 FMC主要特性\t290

16.1.2 FMC结构\t291

16.1.3 SDRAM简介\t292

16.1.4 SDRAM初始化\t294

16.2 FMC扩展SDRAM典型应用步骤及常用库函数\t295

16.2.1 FMC扩展SDRAM典型应用步骤\t295

16.2.2 常用库函数\t296

16.3 应用实例\t299

习题\t302

第17章 LCD控制器\t303

17.1 液晶显示技术及液晶显示器控制原理\t303

17.1.1 液晶显示技术\t303

17.1.2 液晶显示器控制原理\t304

17.2 LTDC控制器概述\t307

17.2.1 LTDC控制器主要特性\t307

17.2.2 LTDC控制器结构\t308

17.3 DMA2D控制器概述\t310

17.3.1 DMA2D控制器结构\t310

17.3.2 DMA2D控制器事务\t311

17.3.3 DMA2D控制器配置\t312

17.4 字符显示\t312

17.4.1 字符编码\t312

17.4.2 字模的生成\t313

17.5 LTDC典型应用步骤及常用库函数\t317

17.5.1 LTDC典型应用步骤\t317

17.5.2 常用库函数\t318

17.6 应用实例\t323

习题\t332

参考文献\t334