新書推薦:
《
津轻:日本无赖派文学代表太宰治自传性随笔集
》
售價:HK$
66.7
《
河流之齿
》
售價:HK$
59.8
《
新经济史革命:计量学派与新制度学派
》
售價:HK$
89.7
《
盗墓笔记之秦岭神树4
》
售價:HK$
57.3
《
战胜人格障碍
》
售價:HK$
66.7
《
逃不开的科技创新战争
》
售價:HK$
103.3
《
漫画三国一百年
》
售價:HK$
55.2
《
希腊文明3000年(古希腊的科学精神,成就了现代科学之源)
》
售價:HK$
82.8
|
編輯推薦: |
本书呈现了以下嵌入式系统、STM32F103开发平台和外设及应用实例:
嵌入式系统的定义;
嵌入式微处理器;
STM32 系列微控制器;
嵌入式开发平台的搭建;
STM32中断;
STM32 GPIO;
STM32定时器;
STM32 通用同步异步收发器;
STM32 SPI串行总线;
STM32 I2C串行总线;
STM32 A/D转换器 ;
STM32 DMA控制器。
【教学资源】
微课视频
程序代码
教学大纲
教学课件
电子教案
测验试卷
官方手册
|
內容簡介: |
本书秉承“新工科”理念,从科研、教学和工程实际应用出发,理论联系实际,全面系统地讲述了 基于 STM32F103 的嵌入式系统原理与应用。 全书共 12 章,主要内容包括绪论、嵌入式微处理器、STM32 系列微控制器、嵌入式开发环境的搭 建、STM32 中断、STM32 GPIO、STM32 定时器、STM32 通用同步/异步收发器、STM32 SPI 串行总线、 STM32 I2C 串行总线、STM32 A/D 转换器和 STM32 DMA 控制器。全书内容丰富,体系先进,结构合理, 理论与实践相结合,尤其注重工程应用技术。 本书可作为高等院校各类自动化、软件工程、机器人、自动检测、机电一体化、人工智能、电子与 电气工程、计算机应用、信息工程、物联网等相关专业的本科生、研究生的教材,也可作为广大从事嵌 入式系统开发的工程技术人员的参考用书。
|
關於作者: |
李正军:山东大学教授,1984.7山东大学数学系毕业,同年留原山东大学数学系任教;担任“211工程”重点建设项目“现场总线技术实验室”负责人、控制科学与工程学院微机课程负责人,硕士研究生导师,山东大学优秀教师。中国电气工业协会设备网现场总线分会理事、中华人民共和国机械行业标准《低压电气通信规约》审稿人,全国电器设备网络通信接口标准化委员会委员。设计的产品在国内外市场具有很大的影响,所指导的学生在国内外各大公司担任重要岗位,并具有丰厚的待遇。发表科研与教学论文50余篇,出版著作12部,承担省部级与企业科研课题30余项,主要研究方向为:嵌入式系统、计算机控制、现场总线应用技术、电力网络监测仪表、电力电子技术、家用呼吸机等。
|
目錄:
|
第1章绪论1
1.1嵌入式系统1
1.1.1嵌入式系统概述2
1.1.2嵌入式系统和通用计算机系统比较3
1.1.3嵌入式系统的特点4
1.2嵌入式系统的组成6
1.3实时操作系统8
1.3.1实时系统的概念8
1.3.2实时操作系统的基本特征9
1.3.3实时操作系统性能的衡量指标10
1.3.4实时操作系统的分类10
1.3.5POSIX标准11
1.3.6实时操作系统的典型应用12
1.4嵌入式系统的软件12
1.4.1无操作系统的嵌入式软件12
1.4.2带操作系统的嵌入式软件12
1.4.3嵌入式操作系统的分类13
1.4.4嵌入式实时操作系统的功能14
1.4.5典型的嵌入式操作系统15
1.4.6软件架构选择建议22
1.5嵌入式系统的分类22
1.5.1按应用对象分类23
1.5.2按功能和性能分类23
1.5.3按结构复杂度分类23
1.6嵌入式系统的应用领域24
1.7嵌入式系统的体系25
1.7.1硬件架构26
1.7.2软件层次26
全书.indd52024/3/715:46:49VIArm嵌入式系统原理及应用——STM32F103微控制器架构、编程与开发
1.8嵌入式系统的设计方法29
1.8.1嵌入式系统的总体结构29
1.8.2嵌入式系统设计流程30
1.8.3嵌入式系统的软/硬件协同设计技术32
第2章嵌入式微处理器34
2.1Arm嵌入式微处理器简介34
2.1.1Arm处理器的特点34
2.1.2Arm体系结构的版本和系列35
2.1.3Arm的RISC结构特性38
2.1.4Arm处理器系列38
2.1.5ArmCortex-M处理器41
2.2嵌入式处理器的分类和特点42
2.3Cortex-M3嵌入式微处理器45
2.3.1Arm概述45
2.3.2CISC和RISC48
2.3.3Arm架构的演变50
2.3.4Arm体系结构与特点52
2.3.5Cortex-M系列处理器54
2.3.6Cortex-M3处理器的主要特性56
2.3.7Cortex-M3处理器结构57
2.3.8存储器系统59
第3章STM32系列微控制器62
3.1STM32微控制器概述62
3.1.1STM32微控制器产品介绍63
3.1.2STM32系统性能分析67
3.1.3STM32微控制器的命名规则68
3.1.4STM32微控制器的选型72
3.2STM32F1系列产品系统架构和STM32F103ZET6内部架构73
3.2.1STM32F1系列产品系统架构74
3.2.2STM32F103ZET6内部架构76
3.3STM32F103ZET6的存储器映像79
3.3.1STM32F103ZET6内置外设的地址范围81
3.3.2嵌入式SRAM82
全书.indd62024/3/715:46:49目录VII
3.3.3嵌入式Flash83
3.4STM32F103ZET6的时钟结构84
3.5STM32F103VET6的引脚87
3.6STM32F103VET6最小系统设计92
第4章嵌入式开发环境的搭建95
4.1KeilMDK5安装配置95
4.1.1KeilMDK简介95
4.1.2KeilMDK下载98
4.1.3KeilMDK安装99
4.1.4安装库文件101
4.2KeilMDK新工程的创建102
4.2.1建立文件夹102
4.2.2打开KeilμVision102
4.2.3新建工程103
4.3Cortex-M3微控制器软件接口标准CMSIS104
4.3.1CMSIS介绍105
4.3.2STM32F10x标准外设库106
4.4STM32F103开发板的选择110
4.5STM32仿真器的选择110
第5章STM32中断113
5.1中断概述113
5.1.1中断114
5.1.2中断的功能114
5.1.3中断源与中断屏蔽115
5.1.4中断处理过程116
5.1.5中断优先级与中断嵌套118
5.2STM32F1中断系统119
5.2.1STM32F1嵌套向量中断控制器119
5.2.2STM32F1中断优先级120
5.2.3STM32F1中断向量表121
5.2.4STM32F1中断服务函数124
5.3STM32F1外部中断/事件控制器EXTI125
5.3.1STM32F1的EXTI内部结构125
全书.indd72024/3/715:46:49VIIIArm嵌入式系统原理及应用——STM32F103微控制器架构、编程与开发
5.3.2STM32F1的EXTI工作原理128
5.3.3STM32F1的EXTI主要特性129
5.4STM32F1的中断系统库函数129
5.4.1STM32F1的NVIC相关库函数130
5.4.2STM32F1的EXTI相关库函数133
5.4.3STM32F1的EXTI中断线GPIO引脚映射库函数137
5.5STM32F1外部中断设计流程137
5.5.1NVIC设置137
5.5.2中断端口配置138
5.5.3中断处理139
5.6STM32F1外部中断设计实例140
5.6.1STM32F1外部中断硬件设计140
5.6.2STM32F1外部中断软件设计140
第6章STM32GPIO146
6.1STM32通用输入输出接口概述146
6.1.1输入通道148
6.1.2输出通道149
6.2STM32的GPIO功能150
6.2.1普通I/O功能150
6.2.2单独的位设置或位清除150
6.2.3外部中断/唤醒线150
6.2.4复用功能151
6.2.5软件重新映射I/O复用功能151
6.2.6GPIO锁定机制151
6.2.7输入配置151
6.2.8输出配置152
6.2.9复用功能配置153
6.2.10模拟输入配置153
6.2.11STM32的GPIO操作154
6.2.12外部中断映射和事件输出156
6.2.13GPIO的主要特性156
6.3STM32的GPIO常用库函数157
6.4STM32的GPIO使用流程165
6.4.1普通GPIO配置165
全书.indd82024/3/715:46:50目录IX
6.4.2I/O复用功能AFIO配置165
6.5STM32的GPIO输出应用实例165
6.5.1STM32的GPIO输出应用硬件设计165
6.5.2STM32的GPIO输出应用软件设计166
6.6STM32的GPIO输入应用实例172
6.6.1STM32的GPIO输入应用硬件设计172
6.6.2STM32的GPIO输入应用软件设计172
第7章STM32定时器176
7.1STM32定时器概述176
7.2STM32基本定时器179
7.2.1基本定时器介绍179
7.2.2基本定时器的功能180
7.2.3STM32基本定时器的寄存器182
7.3STM32通用定时器183
7.3.1通用定时器介绍183
7.3.2通用定时器的功能描述183
7.3.3通用定时器的工作模式188
7.3.4通用定时器的寄存器192
7.4STM32定时器库函数192
7.5STM32定时器应用实例205
7.5.1STM32的通用定时器配置流程205
7.5.2定时器应用的硬件设计207
7.5.3定时器应用的软件设计207
7.6SysTick系统滴答定时器211
7.6.1SysTick功能综述211
7.6.2SysTick配置例程213
第8章STM32通用同步/异步收发器215
8.1串行通信基础215
8.1.1串行异步通信数据格式215
8.1.2串行同步通信数据格式216
8.2STM32的USART工作原理216
8.2.1USART介绍217
8.2.2USART的主要特性217
全书.indd92024/3/715:46:50XArm嵌入式系统原理及应用——STM32F103微控制器架构、编程与开发
8.2.3USART的功能218
8.2.4USART的通信时序221
8.2.5USART的中断222
8.2.6USART的相关寄存器222
8.3STM32的USART库函数223
8.4STM32的USART串行通信应用实例231
8.4.1STM32的USART基本配置流程231
8.4.2USART串行通信应用的硬件设计232
8.4.3USART串行通信应用的软件设计233
第9章STM32SPI串行总线241
9.1STM32的SPI通信原理241
9.1.1SPI串行总线概述242
9.1.2SPI串行总线互连方式244
9.2STM32F1SPI串行总线的工作原理245
9.2.1SPI串行总线的特征245
9.2.2SPI串行总线的内部结构.246
9.2.3SPI串行总线时钟信号的相位和极性248
9.2.4STM32的SPI配置249
9.2.5STM32的SPI数据发送与接收过程251
9.3STM32的SPI库函数253
9.4STM32SPI与Flash存储器接口的应用实例256
9.4.1STM32的SPI配置流程256
9.4.2SPI与Flash存储器接口的硬件设计257
9.4.3SPI与Flash存储器接口的软件设计257
第10章STM32I2C串行总线265
10.1STM32I2C串行总线的通信原理265
10.1.1STM32I2C串行总线概述265
10.1.2STM32I2C串行总线的数据传输268
10.2STM32I2C串行总线接口270
10.2.1STM32I2C串行总线的主要特性270
10.2.2STM32I2C串行总线的内部结构271
10.2.3STM32I2C串行总线的功能描述272
10.3STM32F103的I2C库函数273
全书.indd102024/3/715:46:50目录XI
10.4STM32I2C与EEPROM接口的应用实例279
10.4.1STM32的I2C配置流程279
10.4.2STM32I2C与EEPROM接口的硬件设计280
10.4.3STM32I2C与EEPROM接口的软件设计280
第11章STM32A/D转换器287
11.1模拟量输入通道287
11.1.1模拟量输入通道的组成287
11.1.2A/D转换器简介287
11.2模拟量输入信号类型与量程自动转换288
11.2.1模拟量输入信号类型288
11.2.2量程自动转换288
11.3STM32F103ZET6集成的ADC模块.289
11.3.1STM32的ADC主要特征289
11.3.2STM32的ADC模块结构290
11.3.3STM32的ADC功能294
11.3.4STM32的ADC应用特征298
11.4STM32的ADC库函数302
11.5STM32的模数转换器应用实例311
11.5.1STM32的ADC配置流程311
11.5.2ADC应用的硬件设计312
11.5.3ADC应用的软件设计312
第12章STM32DMA控制器319
12.1STM32DMA的基本概念319
12.1.1DMA的定义319
12.1.2DMA在嵌入式实时系统中的价值320
12.1.3DMA传输的基本要素321
12.1.4DMA传输过程321
12.1.5DMA的优点与应用321
12.2STM32DMA的结构和主要特征322
12.3STM32DMA的功能描述324
12.3.1DMA处理324
12.3.2仲裁器324
12.3.3DMA通道324
全书.indd112024/3/715:46:50XIIArm嵌入式系统原理及应用——STM32F103微控制器架构、编程与开发
12.3.4DMA中断326
12.4STM32的DMA库函数326
12.5STM32的DMA应用实例333
12.5.1STM32的DMA配置流程333
12.5.2DMA应用的硬件设计334
12.5.3DMA应用的软件设计334
参考文献340
|
內容試閱:
|
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可以裁剪,对性能、成本、体积、功耗及可靠性有严格要求的专用计算机系统。在现实生活中,凡是涉及计算机控制的电子产品绝大多数都用到了嵌入式计算机系统,特别是在目前热门的人工智能、无人驾驶、机器人、无人机、汽车电子、航空航天、海洋监测、智能监控、智慧健康等领域。嵌入式技术与人们日常生活方方面面的关系越来越紧密,如消费电子、计算机、通信一体化趋势日益明显。作为计算机领域的一个重要组成部分,嵌入式系统已成为教学、研究与应用的热点。
由于嵌入式系统的专用性和多样性,以及新技术、新工艺、新需求的不断涌现,嵌入式系统设计面临巨大挑战。在微电子技术、处理器性能、操作系统、通信技术、接口技术和封装技术的推动下,涌现出大量新的系统和应用。随着相关技术的迅速发展,嵌入式技术不断演化和更新,对嵌入式系统新技术的学习也跨入了一个新阶段。
计算机是20世纪人类最伟大的发明之一,由此带来的信息化改变了人们的生活方式,也推动了人类社会的变革。嵌入式系统是应用最广泛的计算机系统之一,随着物联网、信息物理融合系统的发展,嵌入式系统技术已经得到飞速发展。
嵌入式系统的发展确实超乎了我们的想象。从早期的8位单片机,到目前主流的32位单片机,其应用已深深渗透于生产、生活的各个方面。作为Arm的一个典型系列,STM32以其较高的性能和优越的性价比,毫无疑问地成为32位单片机市场的主流。把STM32引入大学的培养体系,已经成为广大高校师生的普遍共识和共同实践。32位微控制器时代已经到来。32位微控制器性能优越,功能强大但结构复杂,使很多嵌入式工程师望而却步。读者对一本好的嵌入式系统入门教材的需求越来越迫切。正是基于市场需求,Arm公司率先推出了一款基于ArmV7架构的32位ArmCortex-M微控制器内核。Cortex-M系列内核支持两种运行模式,即线程模式(ThreadMode)与处理者模式(HandlerMode)。这两种模式都有各自独立的堆栈,使得内核更加支持实时操作系统,并且Cortex-M系列内核支持Thumb-2指令集。因此,基于Cortex-M系列内核的微控制器的开发和应用可以在C语言环境中完成。ArmCortex-M3是采用哈佛结构、拥有独立指令总线和数据总线的32位处理器内核,指令总线和数据总线共享同一个存储器空间(一个统一的存储器系统),为系统资源的分配和管理提供了很好的支持。继Cortex-M系列内核诞生之后,意法半导体公司积极响应当今嵌入式产品市场的新要求和新挑战,推出了基于Cortex-M系列内核的STM32微控制器。它具有出色的微控制器内核和完善的系统结构设计,以及易于开发、性能高、兼容性好、功耗低、实时处理能力和数字信号处理能力强等优点,这使得STM32微控制器一上市就迅速占领了中低端微控制器市场。STM32微控制器不仅完美地适应了当前市场的需求,还使意法半导体公司在低价位和高性能两条产品主线上取得了巨大进步。正因为如此,基于ArmCortex-M3的STM32系列MCU以其高性能、低功耗、高可靠性和低价格的特点,逐渐成为高校师生与工程师学习和使用的主要MCU类型。
因此,本书以意法半导体公司的基于32位Arm内核的STM32F103为背景机型,介绍嵌入式系统原理与应用。由于STM32的网上资源非常丰富,因此便于读者学习参考。
本书的特点如下。
(1)采用流行的STM32F103系列嵌入式微控制器讲述嵌入式系统原理与应用。
(2)内容精练,图文并茂,循序渐进,重点突出。
(3)不讲述烦琐的STM32寄存器,重点讲述STM32的库函数。
(4)以理论为基础,以应用为主导,章节内容安排逻辑性强,层次分明,易教易学。
(5)结合国内主流硬件开发板(野火STM32开发板F103-霸道),书中给出了各个外设模块的硬件设计和软件设计实例,其代码均在开发板上调试通过,并通过TFTLCD或串口调试助手查看调试结果,可以很好地培养学生的硬件理解能力和软件编程能力,起到举一反三的效果。
(6)所选开发板的价格在500元左右,且容易买到,方便学校实验教学。
全书共12章。第1章对嵌入式系统进行概述,介绍嵌入式系统的组成、实时操作系统、嵌入式系统的软件、嵌入式系统的分类、嵌入式系统的应用领域、嵌入式系统的体系和嵌入式系统的设计方法;第2章对嵌入式微处理器进行概述,介绍Arm嵌入式微处理器、嵌入式微处理器的分类和特点、Cortex-M3嵌入式微处理器;第3章对STM32系列微控制器进行概述,介绍STM32F1系列产品系统架构和STM32F103ZET6内部架构、STM32F103ZET6的存储器映像、STM32F103ZET6的时钟结构、STM32F103VET6的引脚、STM32F103VET6最小系统设计;第4章讲述嵌入式开发环境的搭建,包括KeilMDK5安装配置、KeilMDK新工程的创建、Cortex-M3微控制器软件接口标准CMSIS、STM32F103开发板的选择和STM32仿真器的选择;第5章讲述STM32中断,包括中断概述、STM32F1中断系统、STM32F1外部中断/事件控制器EXTI、STM32F1的中断系统库函数、STM32F1外部中断设计流程和STM32F1外部中断设计实例;第6章讲述STM32GPIO,包括STM32通用输入输出接口概述、GPIO功能、GPIO常用库函数、GPIO使用流程、GPIO输出应用实例和GPIO输入应用实例;第7章讲述STM32定时器,包括STM32定时器概述、基本定时器、通用定时器、定时器库函数、定时器应用实例和SysTick系统滴答定时器;第8章讲述STM32通用同步/异步收发器,包括串行通信基础、STM32的USART工作原理、USART库函数和USART串行通信应用实例;第9章讲述STM32SPI串行总线,包括STM32的SPI通信原理、STM32F1SPI串行总线的工作原理、STM32的SPI库函数、STM32SPI与Flash存储器接口的应用实例;第10章讲述STM32I2C串行总线,包括STM32I2C串行总线的通信原理、STM32I2C串行总线接口、STM32F103的I2C库函数和STM32I2C与EEPROM接口的应用实例;第11章讲述STM32A/D转换器,包括模拟量输入通道、模拟量输入信号类型与量程自动转换、STM32F103VET6集成的ADC模块、ADC库函数和A/D转换器应用实例;第12章讲述STM32DMA控制器,包括STM32DMA的基本概念、DMA的结构和主要特征、DMA的功能描述、DMA库函数和DMA应用实例。
本书结合编者多年的科研和教学经验,遵循“循序渐进,理论与实践并重,共性与个性兼顾”的原则,将理论实践一体化的教学方式融入其中。书中实例开发过程用到的是目前使用最广泛的野火STM32F103-霸道开发板,由此开发各种功能,书中实例均进行了调试。读者也可以结合实际或手里现有的开发板开展实验,均能获得实验结果。书中实例由浅入深,层层递进,在帮助读者快速掌握某一外设功能的同时,有效融合其他外部设备,如按键、LED显示、USART串行通信、ADC和各类传感器等,设计嵌入式系统,体现学习的系统性。
本书数字资源丰富,配有电子课件、教学大纲、习题及答案等电子配套资源。
本书引用了大量参考文献,在此一并向这些参考文献的作者表示真诚的感谢。由于编者水平有限,加上时间仓促,书中不妥之处在所难免,敬请广大读者不吝指正。
编者
2024年1月
|
|