内容简介
本书秉承“新工科”理念,从科研、教学和工程实际应用出发,理论联系实际,全面系统地讲述了基于STM32F407微控制器的嵌入式系统设计与应用实例,并讲述了FreeRTOS嵌入式实时操作系统。
全书共分13章,主要内容包括:绪论、嵌入式微处理器、STM32系列微控制器、嵌入式开发平台的搭建、STM32 GPIO、STM32中断、STM32定时器、STM32 通用同步异步收发器(USART)、STM32 SPI串行总线、STM32 I2C串行总线、STM32 A/D转换器、STM32 DMA控制器和嵌入式实时操作系统FreeRTOS。全书内容丰富,体系先进,结构合理,理论与实践相结合,尤其注重工程应用技术。
通过阅读本书,读者可以掌握STM32F4标准固件库的开发方式和工具软件的使用,掌握STM32F407的系统功能和常用外设的编程开发方法,通过FreeRTOS的学习,掌握嵌入式实时操作系统的应用方法。
本书是在作者教学与科研实践经验的基础上,结合近20年的STM32嵌入式系统的发展编写而成的。
本书可作为高等院校各类自动化、软件工程、机器人、自动检测、机电一体化、人工智能、电子与电气工程、计算机应用、信息工程、物联网等相关专业的本科生、研究生授课教材,也可作为广大从事嵌入式系统开发的工程技术人员的参考用书。
前言/序言
嵌入式系统在人工智能、无人驾驶、机器人、无人机、汽车电子、航空航天、海洋监测、智能监控、智慧健康等领域得到了广泛的应用。STM32作为Arm的一个典型系列,以其较高的性能和优越的性价比,毫无疑问地成为32位单片机市场的主流。把STM32 引入大学的培养体系,已经成为高校广大师生的普遍共识并被付诸实践。
32位微控制器时代已经到来。32位微控制器性能优越、功能强大但结构复杂,使很多嵌入式工程师望而却步。读者对一本好的嵌入式系统入门教材的需求越来越迫切。
意法半导体(ST)公司自推出Arm CortexM3内核的STM32F1系列微控制器之后,又推出 Arm CortexM4内核的STM32F4系列微控制器。STM32F1最高主频为72MHz, STM32F4最高主频为168MHz; STM32F4具有单精度浮点运算单元,STM32F1没有浮点运算单元; STM32F4具备增强的DSP指令集; STM32F4执行16位DSP指令的时间只有STM32F1的30%~70%,而执行32位DSP指令的时间只有STM32F1的25%~60%。
Arm CortexM4是采用哈佛结构、拥有独立指令总线和数据总线的32位处理器内核,指令总线和数据总线共享同一个存储器空间(一个统一的存储器系统),为系统资源的分配和管理提供了很好的支持。
正因为如此,基于Arm CortexM4的STM32系列MCU以其高性能、低功耗、高可靠性和低价格的特点,逐渐成为高校师生与工程师学习和使用的主要MCU类型。
本书还讲述了嵌入式实时操作系统FreeRTOS。FreeRTOS是Richard Barry 于2003年发布的一款开源免费的嵌入式实时操作系统,其作为一个轻量级的实时操作系统内核,功能包括任务管理、时间管理、信号量、消息队列、内存管理、软件定时器等,可基本满足较小系统的需要。
因此,本书以ST公司基于32位Arm内核的STM32F407为背景机型,介绍嵌入式系统原理与应用。由于STM32的网上资源非常丰富,因此便于读者学习参考。
本书的特点如下。
(1) 采用流行的STM32F407系列嵌入式微控制器讲述嵌入式系统原理与应用实例。
(2) 讲述应用广泛的嵌入式实时操作系统FreeRTOS。
(3) 内容精练、图文并茂、循序渐进、重点突出。
(4) 不讲述烦琐的STM32寄存器,重点讲述STM32的库函数。
(5) 以理论为基础,以应用为主导,章节内容前后安排逻辑性强、层次分明、易教易学。
(6) 结合国内主流硬件开发板(野火STM32开发板F407霸天虎),书中给出了各个外设模块的硬件设计和软件设计实例,其代码采用STM32F4标准库函数编程,且在开发板上调试通过,并通过TFT LCD或串口调试助手查看调试结果,可以很好地锻炼学生的硬件理解能力和软件编程能力,起到举一反三的效果。
(7) 由于所选开发板的价格在500元左右,且可以在网上轻易买到,方便学校实验教学。
本书共13章。第1章对嵌入式系统进行概述,介绍嵌入式系统的组成、嵌入式系统的软件、
嵌入式系统的应用领域和嵌入式系统的体系; 第2章讲述
嵌入式处理器,包括Arm嵌入式处理器、存储器系统、嵌入式
处理器的分类和特点; 第3章讲述STM32系列微控制器,
包括STM32微控制器
概述、STM32F407ZGT6概述及芯片内部结构、STM32F407VGT6芯片引脚和功能
以及STM32F407VGT6最小系统设计; 第4章讲述嵌入式开发环境的搭建,包括Keil MDK安装配置、Keil MDK
新工程的创建、JScope安装、JScope调试方法、CortexM4 微控制器软件接口标准(CMSIS)、STM32F407开发板的选择和STM32仿真器的选择; 第5章讲述
STM32 GPIO,包括STM32 GPIO接口概述、
STM32
GPIO功能、STM32的GPIO常用库函数、
STM32的
GPIO使用流程、STM32 GPIO输出应用实例和STM32 GPIO输入应用实例; 第6章讲述
STM32中断,包括中断概述、STM32F4中断系统、STM32F4外部中断/事件控制器
STM32F4中断系统库函数、STM32F4外部中断设计流程、STM32F4外部中断设计实例; 第7章讲述
STM32定时器,包括STM32定时器概述、基本定时器、通用定时器、STM32定时器库函数和STM32定时器应用实例; 第8章讲述
STM32 通用同步/异步收发器,包括串行通信基础、STM32的USART工作原理、STM32的USART 库函数和STM32 USART串行通信应用实例; 第9章讲述STM32 SPI串行总线,包括STM32的SPI通信原理、STM32F407 SPI串行总线的工作原理、STM32的SPI库函数和STM32的SPI应用实例; 第10章讲述
STM32 I2C串行总线,包括STM32 I2C串行总线的通信原理、STM