嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可以裁剪,对性能、成本、
体积、功耗及可靠性有严格要求的专用计算机系统。在现实生活中,凡是涉及计算机控制的
电子产品绝大多数都用到了嵌入式计算机系统,特别是在目前热门的人工智能、无人驾驶、
机器人、无人机、汽车电子、航空航天、海洋监测、智能监控、智慧健康等领域。嵌入式技
术与人们日常生活方方面面的关系越来越紧密,如消费电子、计算机、通信一体化趋势日益
明显。作为计算机领域的一个重要组成部分,嵌入式系统已成为教学、研究与应用的热点。
由于嵌入式系统的专用性和多样性,以及新技术、新工艺、新需求的不断涌现,嵌入式
系统设计面临巨大挑战。在微电子技术、处理器性能、操作系统、通信技术、接口技术和封
装技术的推动下,涌现出大量新的系统和应用。随着相关技术的迅速发展,嵌入式技术不断
演化和更新,对嵌入式系统新技术的学习也跨入了一个新阶段。
计算机是 20 世纪人类最伟大的发明之一,由此带来的信息化改变了人们的生活方式,
也推动了人类社会的变革。嵌入式系统是应用最广泛的计算机系统之一,随着物联网、信息
物理融合系统的发展,嵌入式系统技术已经得到飞速发展。
嵌入式系统的发展确实超乎了我们的想象。从早期的 8 位单片机,到目前主流的 32 位
单片机,其应用已深深渗透于生产、生活的各个方面。作为 Arm 的一个典型系列,STM32
以其较高的性能和优越的性价比,毫无疑问地成为 32 位单片机市场的主流。把 STM32 引
入大学的培养体系,已经成为广大高校师生的普遍共识和共同实践。
32 位微控制器时代已经到来。32 位微控制器性能优越,功能强大但结构复杂,使很多
嵌入式工程师望而却步。读者对一本好的嵌入式系统入门教材的需求越来越迫切。
正是基于市场需求,Arm 公司率先推出了一款基于 Arm V7 架构的 32 位 Arm Cortex-M
微控制器内核。Cortex-M 系列内核支持两种运行模式,即线程模式(Thread Mode)与处理
者模式(Handler Mode)。这两种模式都有各自独立的堆栈,使得内核更加支持实时操作
系统,并且 Cortex-M 系列内核支持 Thumb-2 指令集。因此,基于 Cortex-M 系列内核的微
控制器的开发和应用可以在 C 语言环境中完成。
Arm Cortex-M3 是采用哈佛结构、拥有独立指令总线和数据总线的 32 位处理器内核,
指令总线和数据总线共享同一个存储器空间(一个统一的存储器系统),为系统资源的分配
和管理提供了很好的支持。
继 Cortex-M 系列内核诞生之后,意法半导体公司积极响应当今嵌入式产品市场的新要
求和新挑战,推出了基于 Cortex-M 系列内核的 STM32 微控制器。它具有出色的微控制器
全书.indd 1 2024/3/7 15:46:48 II Arm 嵌入式系统原理及应用——STM32F103 微控制器架构、编程与开发
内核和完善的系统结构设计,以及易于开发、性能高、兼容性好、功耗低、实时处理能力和
数字信号处理能力强等优点,这使得 STM32 微控制器一上市就迅速占领了中低端微控制器
市场。STM32 微控制器不仅完美地适应了当前市场的需求,还使意法半导体公司在低价位
和高性能两条产品主线上取得了巨大进步。正因为如此,基于 Arm Cortex-M3 的 STM32 系
列 MCU 以其高性能、低功耗、高可靠性和低价格的特点,逐渐成为高校师生与工程师学习
和使用的主要 MCU 类型。
因此,本书以意法半导体公司的基于 32 位 Arm 内核的 STM32F103 为背景机型,介绍
嵌入式系统原理与应用。由于 STM32 的网上资源非常丰富,因此便于读者学习参考。
本书的特点如下。
(1)采用流行的 STM32F103 系列嵌入式微控制器讲述嵌入式系统原理与应用。
(2)内容精练,图文并茂,循序渐进,重点突出。
(3)不讲述烦琐的 STM32 寄存器,重点讲述 STM32 的库函数。
(4)以理论为基础,以应用为主导,章节内容安排逻辑性强,层次分明,易教易学。
(5)结合国内主流硬件开发板(野火 STM32 开发板 F103- 霸道),书中给出了各个外设
模块的硬件设计和软件设计实例,其代码均在开发板上调试通过,并通过 TFT LCD 或串口
调试助手查看调试结果,可以很好地培养学生的硬件理解能力和软件编程能力,起到举一反
三的效果。
(6)所选开发板的价格在 500 元左右,且容易买到,方便学校实验教学。
全书共 12 章。第 1 章对嵌入式系统进行概述,介绍嵌入式系统的组成、实时操作系
统、嵌入式系统的软件、嵌入式系统的分类、嵌入式系统的应用领域、嵌入式系统的体
系和嵌入式系统的设计方法;第 2 章对嵌入式微处理器进行概述,介绍 Arm 嵌入式微处
理器、嵌入式微处理器的分类和特点、Cortex-M3 嵌入式微处理器;第 3 章对 STM32 系
列微控制器进行概述,介绍 STM32F1 系列产品系统架构和 STM32F103ZET6 内部架构、
STM32F103ZET6 的存储器映像、STM32F103ZET6 的时钟结构、STM32F103VET6 的
引脚、STM32F103VET6 最小系统设计;第 4 章讲述嵌入式开发环境的搭建,包括 Keil
MDK5 安装配置、Keil MDK 新工程的创建、Cortex-M3 微控制器软件接口标准 CMSIS、
STM32F103 开发板的选择和 STM32 仿真器的选择;第 5 章讲述 STM32 中断,包括中断
概述、STM32F1 中断系统、STM32F1 外部中断/事件控制器 EXTI、STM32F1 的中断系统
库函数、STM32F1 外部中断设计流程和 STM32F1 外部中断设计实例;第 6 章讲述 STM32
GPIO,包 括 STM32 通用输入输出接口概述、GPIO 功能、GPIO 常用库函数、GPIO 使用流程、
GPIO 输出应用实例和 GPIO 输入应用实例;第 7 章讲述 STM32 定时器,包括 STM32 定时
器概述、基本定时器、通用定时器、定时器库函数、定时器应用实例和 SysTick 系统滴答定
时器;第 8 章讲述 STM32 通用同步/异步收发器,包括串行通信基础、STM32 的 USART
工作原理、USART 库函数和 USART 串行通信应用实例;第 9 章讲述 STM32 SPI 串行总
线,包括 STM32 的 SPI 通信原理、STM32F1 SPI 串行总线的工作原理、STM32 的 SPI 库函
全书.indd 2 2024/3/7 15:46:49 前言 III
数、STM32 SPI 与 Flash 存储器接口的应用实例;第 10 章讲述 STM32 I2C 串行总线,包括
STM32 I2C 串行总线的通信原理、STM32 I2C 串行总线接口、STM32F103 的 I2C 库函数和
STM32 I2C 与 EEPROM 接口的应用实例;第 11 章讲述 STM32 A/D 转换器,包括模拟量输
入通道、模拟量输入信号类型与量程自动转换、STM32F103VET6 集成的 ADC 模块、ADC
库函数和 A/D 转换器应用实例;第 12 章讲述 STM32 DMA 控制器,包括 STM32 DMA 的
基本概念、DMA 的结构和主要特征、DMA 的功能描述、DMA 库函数和 DMA 应用实例。
本书结合编者多年的科研和教学经验,遵循“循序渐进,理论与实践并重,共性与个性
兼顾”的原则,将理论实践一体化的教学方式融入其中。书中实例开发过程用到的是目前
使用最广泛的野火 STM32 F103- 霸道开发板,由此开发各种功能,书中实例均进行了调试。
读者也可以结合实际或手里现有的开发板开展实验,均能获得实验结果。书中实例由浅入
深,层层递进,在帮助读者快速掌握某一外设功能的同时,有效融合其他外部设备,如按键、
LED 显示、USART 串行通信、ADC 和各类传感器等,设计嵌入式系统,体现学习的系统性。
本书数字资源丰富,配有电子课件、教学大纲、习题及答案等电子配套资源。
本书引用了大量参考文献,在此一并向这些参考文献的作者表示真诚的感谢。由于编者
水平有限,加上时间仓促,书中不妥之处在所难免,敬请广大读者不吝指正。
编者
2024 年 1 月
全书.indd 3 2024/3/7 15:46:49