华信教育资源网
嵌入式系统设计(基于STM32F4)
丛   书   名: 普通高等教育“十三五”规划教材  工业和信息产业科技与教育专著出版资金资助出版
作   译   者:徐灵飞 出 版 日 期:2020-08-01
出   版   社:电子工业出版社 维   护   人:戴晨辰 
书   代   号:G0388590 I S B N:9787121388590

编辑推荐:

内容讲解深入浅出从嵌入式基本概念、ARM Cortex-M4体系架构和具体的微控制器结构入手,介绍嵌入式系统设计的重要知识点,且图文并茂,适合初学者学习。 注重理论与实践相结合针对特定应用场景,结合对应知识点,设计应用实例,方便读者理解。 配套资源丰富、翔实本书提供配套PPT讲义、实例源代码、课后习题答案等,方便教师教学、学生自学。
定价 65.0
您的专属联系人更多
关注 评论(1) 分享
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源
  • 图 书 内 容

    内容简介

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

    图书详情

    ISBN:9787121388590
    开 本:16(185*260)
    页 数:344
    字 数:621

    本书目录

    第1章 嵌入式系统	1
    1.1 嵌入式系统概述	1
    1.1.1 嵌入式系统的定义	1
    1.1.2 嵌入式系统的特点	1
    1.1.3 嵌入式系统的应用	2
    1.2 嵌入式系统的体系	2
    1.2.1 硬件架构	3
    1.2.2 软件层次	3
    1.3 嵌入式硬件系统	6
    1.3.1 嵌入式处理器分类	6
    1.3.2 典型嵌入式处理器	7
    1.3.3 存储系统	9
    1.3.4 I/O接口	10
    1.3.5 人机接口	10
    1.3.6 电源及其他设备	10
    1.4 嵌入式操作系统	10
    1.4.1 嵌入式操作系统的发展	10
    1.4.2 嵌入式操作系统的分类	11
    1.4.3 嵌入式实时操作系统的功能	12
    1.4.4 常用的嵌入式操作系统	13
    1.5 嵌入式系统的设计	14
    1.5.1 嵌入式系统设计流程	14
    1.5.2 嵌入式系统开发环境搭建	15
    习题	16
    第2章 ARM Cortex-M体系架构	18
    2.1 ARM Cortex体系架构概述	18
    2.1.1 CISC和RISC	18
    2.1.2 ARM架构发展史	20
    2.1.3 ARM处理器的类型	20
    2.1.4 Cortex-M系列处理器	22
    2.2 Cortex-M4内核基础	23
    2.2.1 寄存器组	24
    2.2.2 堆栈操作	26
    2.2.3 特殊功能寄存器组	27
    2.2.4 操作模式	28
    2.3 存储器系统	30
    2.3.1 数据类型	30
    2.3.2 存储形式	30
    2.3.3 存储器映射	31
    2.3.4 位带区	32
    2.4 异常和中断	33
    2.4.1 向量表	34
    2.4.2 优先级	35
    2.4.3 响应过程	36
    2.4.4 复位	38
    习题	39
    第3章 STM32F429微控制器	40
    3.1 STM32系列微控制器	40
    3.1.1 STM32系列微控制器概述	40
    3.1.2 芯片命名规则	41
    3.1.3 开发工具	41
    3.1.4 STM32标准函数库介绍	46
    3.2 STM32F429微控制器结构	51
    3.2.1 芯片资源	51
    3.2.2 芯片内部结构	52
    3.2.3 芯片引脚和功能	55
    3.2.4 电源系统	57
    3.2.5 复位系统	60
    3.3 STM32F4系列微控制器存储器映射和寄存器	61
    3.3.1 存储器映射	61
    3.3.2 自举配置	63
    3.3.3 寄存器映射	63
    习题	67
    第4章 启动文件和SysTick	69
    4.1 启动文件	69
    4.1.1 启动文件概述	69
    4.1.2 启动步骤	69
    4.2 启动文件代码讲解	70
    4.3 SysTick	75
    4.3.1 SysTick概述	75
    4.3.2 SysTick的库函数	76
    4.3.3 应用实例	78
    习题	79
    第5章 GPIO	80
    5.1 GPIO结构原理	80
    5.1.1 GPIO功能描述	80
    5.1.2 GPIO输入配置	81
    5.1.3 GPIO输出配置	82
    5.1.4 GPIO复用功能配置	84
    5.1.5 GPIO模拟功能配置	85
    5.2 GPIO相关寄存器	86
    5.2.1 模式寄存器	86
    5.2.2 输出类型寄存器	86
    5.2.3 输出速度寄存器	87
    5.2.4 上拉/下拉寄存器	87
    5.2.5 输入数据寄存器	88
    5.2.6 输出数据寄存器	88
    5.2.7 置位/复位寄存器	89
    5.2.8 配置锁存寄存器	90
    5.2.9 复用功能寄存器	90
    5.3 GPIO典型应用步骤及常用库函数	92
    5.3.1 GPIO典型应用步骤	92
    5.3.2 常用库函数	93
    5.4 应用实例	97
    5.4.1 GPIO输出应用实例	97
    5.4.2 GPIO输入应用实例	99
    5.4.3 GPIO复用应用实例	101
    5.4.4 矩阵按键应用	102
    习题	106
    第6章 NVIC	108
    6.1 NVIC的中断类型及中断管理方法	108
    6.1.1 中断类型	108
    6.1.2 中断管理方法	109
    6.2 常用库函数	110
    6.3 应用实例	112
    习题	113
    第7章 EXTI	114
    7.1 EXTI概述	114
    7.1.1  EXTI结构	114
    7.1.2 GPIO相关EXTI线	116
    7.2 EXTI典型应用步骤及常用库函数	116
    7.2.1 EXTI典型应用步骤	116
    7.2.2 常用库函数	117
    7.3 应用实例	119
    习题	121
    第8章  时钟系统	122
    8.1 时钟系统结构	122
    8.1.1 时钟源	124
    8.1.2 HSE时钟	124
    8.1.3 PLL配置	125
    8.1.4 LSE 时钟	126
    8.1.5 LSI时钟	126
    8.1.6 时钟输出功能	126
    8.2 PLL时钟系统配置步骤及常用库函数	126
    8.2.1 PLL时钟系统配置步骤	127
    8.2.2 常用库函数	127
    8.3 应用实例	130
    习题	132
    第9章  定时器系统	133
    9.1 定时器系统概述	133
    9.1.1  定时器结构	134
    9.1.2  时钟源	134
    9.2  基本定时功能	137
    9.2.1  时基单元	137
    9.2.2  计数模式	138
    9.3  捕抓/比较功能	141
    9.3.1  输入捕抓/比较输出通道	141
    9.3.2  输入捕抓模式	143
    9.3.3  输出模式	144
    9.3.4  编码器接口模式	147
    9.4  定时器典型应用步骤及常用库函数	150
    9.4.1  基本定时功能应用步骤	150
    9.4.2  输入捕抓模式应用步骤	150
    9.4.3  PWM输出应用步骤	152
    9.4.4  编码器接口应用步骤	153
    9.4.5  常用库函数	155
    9.5  应用实例	159
    9.5.1  定时器控制实现灯闪烁	159
    9.5.2  直流电机调速控制	161
    9.5.3  测量外部输入脉冲频率	164
    9.5.4 测量电机转速和方向	167
    习题	170
    第10章  DMA控制器	171
    10.1 DMA控制器概述	171
    10.1.1 DMA控制器主要特性	171
    10.1.2 DMA控制器结构	172
    10.2 DMA控制器功能	173
    10.2.1 DMA事务	173
    10.2.2 数据流	174
    10.2.3 通道	174
    10.2.4 仲裁	175
    10.2.5 循环模式	176
    10.2.6 单次和突发模式	176
    10.2.7  FIFO	176
    10.2.8 DMA中断	177
    10.2.9 DMA数据流配置过程	177
    10.3 DMA典型应用步骤及常用库函数	178
    10.3.1 DMA典型应用步骤	178
    10.3.2 常用库函数	179
    10.4  应用实例	181
    习题	183
    第11章  通用同步异步收发器(USART)	184
    11.1 通信概述	184
    11.1.1 并行通信和串行通信	184
    11.1.2 单工通信、半双工通信、全双工通信	185
    11.1.3 同步通信和异步通信	185
    11.1.4 RS-232	186
    11.2  STM32F429微控制器的USART结构	188
    11.2.1  USART概述	188
    11.2.2 波特率设置	192
    11.2.3  USART中断	193
    11.2.4 DMA控制	193
    11.3 USART典型应用步骤及常用库函数	194
    11.3.1 USART典型应用步骤	194
    11.3.2 常用库函数	194
    11.4 应用实例	197
    11.4.1 通过串口向计算机传输100个字节	197
    11.4.2 串口与计算机回显功能实现	199
    11.4.3 利用DMA通过串口向计算机传输1000个字节	202
    习题	204
    第12章  模数转换器(ADC)	205
    12.1 ADC概述	205
    12.1.1 A/D转换过程	205
    12.1.2 ADC原理	206
    12.2  STM32F429微控制器的ADC结构	208
    12.3  STM32F429微控制器的ADC功能	212
    12.3.1  ADC使能和启动	212
    12.3.2  时钟配置	213
    12.3.3  转换模式	213
    12.3.4  DMA控制	214
    12.4  ADC典型应用步骤及常用库函数	215
    12.4.1  ADC典型应用步骤	215
    12.4.2  常用库函数	216
    12.5  应用实例	220
    12.5.1  规则组单通道采集外部电压	220
    12.5.2  使用DMA和规则组通道实现多路模拟信号采集	222
    习题	227
    第13章  数模转换器(DAC)	228
    13.1  DAC概述	228
    13.1.1  基本概念	228
    13.1.2  DAC原理	229
    13.2  STM32F429微控制器的DAC结构	230
    13.3  STM32F429微控制器的DAC功能	231
    13.4  DAC典型应用步骤及常用库函数	234
    13.4.1  DAC典型应用步骤	234
    13.4.2  常用库函数	235
    13.5  应用实例	236
    习题	239
    第14章  I2C控制器	240
    14.1  I2C协议	240
    14.1.1  I2C物理层	240
    14.1.2  I2C协议层	241
    14.2  软件模拟I2C协议程序分析	244
    14.2.1  I2C引脚配置	244
    14.2.2  软件模拟开始信号和结束信号	246
    14.2.3  软件模拟检测ACK信号	246
    14.2.4  软件模拟产生ACK信号和NACK信号	247
    14.2.5  软件模拟发送一个字节数据	247
    14.2.6  软件模拟接收一个字节数据	248
    14.2.7  软件模拟I2C完整写操作	248
    14.2.8  软件模拟I2C完整读操作	249
    14.3  模拟I2C总线协议读写AT24CXX系列EEPROM实验	250
    14.4  I2C控制器概述	254
    14.4.1  I2C控制器主要特性	254
    14.4.2  I2C控制器结构	254
    14.4.3  I2C控制器主模式	255
    14.4.4  I2C控制器从模式	256
    14.4.5  I2C控制器中断	257
    14.5  I2C典型应用步骤及常用库函数	258
    14.5.1  I2C典型应用步骤	258
    14.5.2  常用库函数	258
    14.6  应用实例	261
    14.6.1  I2C控制器主模式测试	261
    14.6.2  I2C控制器从模式测试	266
    习题	269
    第15章  SPI控制器	270
    15.1  SPI协议	270
    15.1.1  SPI数据传输	270
    15.1.2  SPI通信的时钟极性和时钟相位	271
    15.1.3  4种SPI模式	271
    15.2  SPI控制器概述	273
    15.2.1  SPI控制器主要特性	273
    15.2.2  SPI控制器结构	273
    15.2.3  SPI主机配置	274
    15.2.4  SPI从机配置	275
    15.2.5  主模式的全双工发送和接收过程	275
    15.2.6  SPI状态标志	276
    15.2.7  SPI中断	276
    15.3  SPI典型应用步骤及常用库函数	277
    15.3.1  SPI典型应用步骤	277
    15.3.2  常用库函数	277
    15.4  应用实例	279
    习题	289
    第16章  外部存储控制器	290
    16.1  FMC概述	290
    16.1.1  FMC主要特性	290
    16.1.2  FMC结构	291
    16.1.3  SDRAM简介	292
    16.1.4  SDRAM初始化	294
    16.2  FMC扩展SDRAM典型应用步骤及常用库函数	295
    16.2.1  FMC扩展SDRAM典型应用步骤	295
    16.2.2  常用库函数	296
    16.3  应用实例	299
    习题	302
    第17章  LCD控制器	303
    17.1  液晶显示技术及液晶显示器控制原理	303
    17.1.1  液晶显示技术	303
    17.1.2  液晶显示器控制原理	304
    17.2  LTDC控制器概述	307
    17.2.1  LTDC控制器主要特性	307
    17.2.2  LTDC控制器结构	308
    17.3  DMA2D控制器概述	310
    17.3.1  DMA2D控制器结构	310
    17.3.2  DMA2D控制器事务	311
    17.3.3  DMA2D控制器配置	312
    17.4  字符显示	312
    17.4.1  字符编码	312
    17.4.2  字模的生成	313
    17.5  LTDC典型应用步骤及常用库函数	317
    17.5.1  LTDC典型应用步骤	317
    17.5.2  常用库函数	318
    17.6  应用实例	323
    习题	332
    参考文献	334
    展开

    前     言

    前    言
    在当今的信息社会中,嵌入式系统的应用无处不在,随着人工智能等先进技术渗入各个领域,嵌入式系统的应用将会更加广泛和深入。微控制器也经历了从最初的8位、16位到现在32位的演变,嵌入式系统设计离不开微控制器。无论是从芯片性能、设计资源还是从性价比上来讲,ARM架构的微控制器可以说都优于其他微控制器,它已经占据了当前嵌入式微控制器应用领域的绝大多数市场。ARM系列微控制器在国内的广泛应用,应该是从ARM7系列微控制器开始的,可以说它就是当时嵌入式微控制器的代名词,各大公司都设计了以ARM7内核为核心的微控制器,时至今日,在一些产品中仍然能看到它的身影。之后,ARM公司推出了全新的ARMv7版本的Cortex系列内核,因其优秀的性能,迅速被市场接受,各大半导体公司都推出了相关的处理器。
    Cortex-M系列内核是ARM公司针对微控制器应用设计的内核,与其相关的微控制器芯片迅速替代了大部分其他型号的8位、16位及32位微控制器。意法半导体公司具有优秀的配套程序库和丰富的参考设计资源,其设计的STM32F系列微控制器的入门学习更容易,被嵌入式系统设计者广泛应用和推广,可以说是国内应用最为广泛的Cortex-M系列微控制器。在Cortex-M系列微控制器中,Cortex-M4微控制器综合了控制和DSP信号处理功能,并具有很高的性价比,在各种复杂的嵌入式控制领域得到广泛应用。意法半导体公司的STM32F4系列微控制器内部集成了几乎所有的常用嵌入式片上外设,在软件库的基础上,让初学者能够轻松入门。各种开发社区和开发者积累的丰富应用资源,给设计者的实际系统设计提供了很好的参考。
    本书主要以STM32F429微控制器为对象讲解嵌入式系统设计方法、实例。全书分为17章,主要对实际应用中常见的内容进行了讲解,包括嵌入式系统、ARM Cortex-M体系架构、STM32F429微控制器内部构造及其常用的片上外设结构、应用实例、程序开发方法。书中对常见的应用进行了实例讲解,给出了清晰的系统应用设计思路,并明确了每个应用的设计步骤,提供了每个应用的程序源代码,使初学者在学习了相关基本知识后能够对具体的设计一看即懂。本书设计适量习题,紧贴各章核心内容,涵盖基本概念及相关应用,能够起到巩固重要知识点的作用。
    第1章,介绍了嵌入式系统的概念、体系、硬件系统、操作系统及设计等。
    第2章,介绍了ARM Cortex-M体系架构,主要对内核寄存器、操作模式、存储器系统、异常和中断进行了阐述。
    第3章,介绍了STM32F429微控制器的内部构造和芯片资源,对I/O引脚类型、存储系统和寄存器操作进行描述。
    第4章,介绍了启动文件和SysTick的应用,SysTick一般可以作为延时函数或系统驱动时钟使用。
    第5~9章,分别介绍了GPIO、NVIC、EXTI、时钟系统和定时器系统。这部分是微控制器入门的基本要求部分,相对来讲比较简单,在实际使用中使用得比较多,特别是GPIO的结构和编程,初学者需要详细、深入地学习和实践练习,争取做到熟练应用,因为所有嵌入式设计都离不开GPIO。定时器的应用仅次于GPIO,常用于定时、电机驱动、检测等,初学者需要熟练掌握基本定时,理解和掌握书中介绍的各种应用实例。同时,NVIC也非常重要,只要使用到中断就离不开NVIC,初学者需要理解中断通道、中断组、抢占优先级和响应优先级等概念及编程设置方法。
    第10~15章,分别介绍了DMA控制器、USART、ADC、DAC、I2C控制器和SPI控制器。这部分是微控制器学习进阶部分,在理解和熟练掌握了这部分内容后,基本就可以处理嵌入式系统设计中遇到的大部分问题了。USART使用最为广泛,在理解了其基本数据帧格式和电气、电路定义后,编程发送和接收数据都比较简单,一般发送数据使用查询方式,接收数据使用中断方式,在涉及大量数据传输时,会用到DMA控制器。I2C的控制时序稍显复杂,其通信功能可以使用软件模拟方式或使用STM32F429微控制器集成的片上I2C控制器实现,这些在书中都有介绍。在实际使用中一定要注意电路接口为开漏形式,并连接上拉电阻。因I2C电路接口简单,它在实际使用中也较为广泛。SPI是一个全双工的串口,时序形式比I2C简单,但是,在电路连线上比USART和I2C至少多一根信号线,因此,在实际使用中SPI应用不如前两种广泛。但是,它的通信速度是三种通信方法中最快的。ADC和DAC实现模数和数模转换功能,在数模混合的领域得到应用。其中,DAC使用较为简单,ADC的所有规则组转换通道共用一个数据寄存器,常需要配合DMA控制器使用,因此略显复杂。但是,一旦配置成功运转起来之后,DMA控制器又可以极大地减小程序干预程度,使用非常方便。整体上讲,STM32F429微控制器为开发者提供了性能适中的ADC和DAC。DMA控制器更多作为一种辅助设备,配合其他片上外设实现无CPU干预的数据传输,初学者理解起来可能会有些困难,一旦熟悉之后,就会觉得其使用方便了。
    第16~17章,分别介绍了外部存储控制器和LCD控制器。SDRAM作为FMC的一种外扩存储器,使用更为广泛,主要用于扩展系统的数据存储空间。LTDC控制器是STM32F429微控制器内部集成的一个液晶控制器,SDRAM作为显存,结合DMA2D控制器可以实现性能不错的液晶显示功能。
    除第16~17章介绍的SDRAM和LTDC控制器外,其他章节的内容都适用于STM32F4系列的微控制器,如STM32F407微控制器。本书所有设计程序均已在Keil MDK 5.20环境下测试通过,读者可以放心使用。
    本书包含配套资源,读者可登录华信教育资源网(www.hxedu.com.cn)免费下载。
    特别感谢电子工业出版社的编辑在本书的出版过程中给予作者的指导和大力支持。
    由于本书涉及的知识面广,时间又仓促,以及作者的水平和经验有限,书中的疏漏之处在所难免,恳请专家和读者批评指正。
    作  者
    展开

    作者简介

    徐灵飞,"嵌入式系统设计”精品课程负责人,教授"嵌入式系统设计”课程多年,承担"民办高校重点特色专业质量提升计划”的专业建设工作等。
  • 样 章 试 读
  • 图 书 评 价 我要评论
华信教育资源网