书名:嵌入式单片机STM32设计及应用技术
书号:978-7-118-10160-7
作者:张淑清
出版时间:2015年5月
译者:
版次:1版1次
开本:16
装帧:平装
出版基金:
页数:341
字数:546
中图分类:TP368.1
丛书名:
定价:45.00
全书共分为12 章 内容包括:STM32F103 微控制器结构和最小系统基于标准外设库的C 语言程序设计基础STM32F10x 的通用输入输出GPIO 接口、外部中断、通用定时器、通用同步/ 异步收发器USART、直接存储器存取DMA、模数转换器ADC、集成电路总线I2C以及串行外设接口SPI 最后给出基于STM32 和GSM 的远程环境监控系统、基于STM32 的Zigbee 无线通信以及基于STM32 的简易数码相机等综合设计实例供读者综合实践参考和使用
本书突出选取内容的系统性、实用性和典型性理论联系实际可作为工科高等院校、高职院校的师生学习嵌入式原理及单片机课程的教材也适于自学可供从事计算机、自动控制、仪器仪表、电气以及机电一体化等工作的工程技术人员阅读和参考
第1 章 ARM 嵌入式系统概述 1
1.1 嵌入式系统简介 1
1.1.1 嵌入式系统定义及特征 1
1.1.2 嵌入式系统发展 1
1.1.3 嵌入式系统应用 2
1.2 ARM 处理器 3
1.2.1 ARM 处理器分类 3
1.2.2 ARM Cortex 处理器 4
1.2.3 ARM Cortex - M3 处理器 5
1.3 STM32F10x 系列微控制器 6
1.3.1 STM32 微控制器分类 6
1.3.2 STM32F10x 处理器内部结构 7
1.3.3 STM32 系列处理器的优点 8
1.3.4 STM32 处理器开发工具 9
思考与练习 9
第2 章 STM32 单片机结构和最小系统 11
2.1 STM32F103 微控制器外部结构 11
2.2 STM32F103 总线和存储器结构 13
2.2.1 总线结构 13
2.2.2 存储器结构和映射 14
2.2.3 位带 17
2.3 时钟电路、复位电路、启动配置 20
2.3.1 时钟控制 20
2.3.2 复位 22
2.3.3 启动配置 23
2.4 最小系统设计 23
思考与练习 27
第3 章 基于标准外设库的C 语言程序设计基础 28
3.1 嵌入式C 语言基础 28
3.1.1 文件结构 28
3.1.2 程序版式 29
3.1.3 C 语言知识精编 30
3.2 CMSIS---Cortex - M3 微控制器软件接口标准 42
3.2.1 CMSIS 概述 42
3.2.2 STM32F10x 标准外设库 43
3.3 基于MDK 的STM32 开发 47
3.3.1 Keil MDK 概述 47
3.3.2 开发过程 47
思考与练习 52
第4 章 STM32 单片机通用输入输出GPIO 53
4.1 STM32F10x 的输入输出基本结构 53
4.2 GPIO 相关功能寄存器 54
4.3 STM32F10x 的IO 口功能特点 57
4.3.1 通用功能输入输出GPIO 58
4.3.2 复用功能输入输出AFIO 58
4.3.3 外部中断/唤醒线 58
4.4 STM32F10x 的输入输出配置 59
4.4.1 GPIO 输入配置 59
4.4.2 GPIO 输出配置 60
4.4.3 复用功能配置 61
4.4.4 模拟输入配置 61
4.4.5 外设的GPIO 配置 62
4.5 GPIO 应用设计 64
4.5.1 GPIO 常用库函数 64
4.5.2 GPIO 使用流程 75
4.5.3 GPIO 应用实例 75
思考与练习 78
第5 章 STM32 单片机外部中断 79
5.1 中断的相关概念 79
5.2 STM32F103 中断系统组成 80
5.2.1 中断源 80
5.2.2 中断向量 80
5.2.3 中断控制器 83
5.2.4 相关功能寄存器 85
5.3 中断控制 88
5.3.1 中断屏蔽控制 88
5.3.2 中断优先级控制 88
5.4 中断执行过程和中断嵌套 89
5.5 STM32 外部中断应用设计 90
5.5.1 STM32 外部中断常用的库函数 90
5.5.2 STM32 中断的设计 100
5.5.3 外部中断应用实例 105
思考与练习 108
第6 章 STM32 通用定时器 110
6.1 STM32 定时器的组成结构 110
6.1.1 STM32 定时器概述 110
6.1.2 STM32 通用定时器的结构特性 112
6.2 通用定时器相关寄存器 114
6.3 通用定时器的功能及工作方式 127
6.3.1 时钟的选择 127
6.3.2 时基单元 130
6.3.3 计数模式 131
6.4 通用定时器应用设计 133
6.4.1 通用定时器常用库函数 133
6.4.2 通用定时器使用流程 143
6.4.3 定时器设计实例 145
思考与练习 148
第7 章 STM32 通用同步/异步收发器USART 150
7.1 串行通信基础 150
7.1.1 串行通信与并行通信 150
7.1.2 串行通信方式 150
7.1.3 串行通信的数据传输形式 151
7.1.4 波特率 151
7.2 STM32 的USART 的结构特性 151
7.3 USART 相关寄存器 153
7.4 STM32 串行通信的工作方式 162
7.4.1 数据发送和接收 162
7.4.2 多处理器通信 163
7.4.3 其他方式 164
7.5 USART 应用设计 167
7.5.1 USART 常用库函数 167
7.5.2 USART 使用流程 174
7.5.3 STM32 与上位机通信设计实例 175
7.6 串行通信接口抗干扰设计 178
7.6.1 TTL 电平通信接口 179
7.6.2 标准串行通信接口RS -232C 179
7.6.3 RS -485 双机通信接口 180
思考与练习 180
第8 章 直接存储器存取DMA 181
8.1 DMA 简介 181
8.2 STM32 的DMA 结构 181
8.3 DMA 相关寄存器 183
8.4 DMA 的工作过程 187
8.5 DMA 应用设计 189
8.5.1 DMA 常用库函数 189
8.5.2 DMA 使用流程 198
8.5.3 DMA 数据传输应用实例 200
思考与练习 206
第9 章 STM32 的模数转换器ADC 208
9.1 STM32 应用系统输入输出通道 208
9.2 ADC 的性能指标 209
9.3 STM32 的ADC 的特性与结构 211
9.4 ADC 相关寄存器 213
9.5 ADC 的工作模式控制 223
9.5.1 开关、时钟及通道 223
9.5.2 模式控制 224
9.5.3 中断和DMA 225
9.5.4 其他功能 225
9.6 ADC 应用设计 227
9.6.1 ADC 常用库函数 227
9.6.2 ADC 使用流程 238
9.6.3 STM32 的ADC 电压采集实例 239
思考与练习 245
第10 章 STM32 的集成电路总线I2C 246
10.1 I2C 总线概述 246
10.1.1 I2C 总线特点 246
10.1.2 I2C 总线标准的发展 247
10.1.3 I2C 总线术语 247
10.2 I2C 总线原理 247
10.2.1 I2C 硬件构成 247
10.2.2 位传输 248
10.2.3 数据传输格式 249
10.3 STM32 的I2C 的特性和结构 251
10.4 STM32 的I2C 相关功能寄存器 253
10.5 STM32 的I2C 的通信实现 263
10.5.1 I2C 主模式 263
10.5.2 I2C 从模式 265
10.5.3 中断事件和传输错误 266
10.6 I2C 应用设计 268
10.6.1 I2C 常用库函数 268
10.6.2 I2C 使用流程 276
10.6.3 I2C 扩展EEPROM 实例 277
思考与练习 291
第11 章 串行外设接口SPI 292
11.1 SPI 基础 292
11.1.1 SPI 接口定义 292
11.1.2 单机和多机通信 292
11.2 STM32 的SPI 特性和结构 294
11.3 SPI 相关寄存器 296
11.4 STM32 的SPI 工作过程 303
11.4.1 从选择(NSS)脚管理 303
11.4.2 时钟相位与极性 303
11.4.3 SPI 主模式 304
11.4.4 SPI 从模式 305
11.4.5 状态标志 306
11.4.6 CRC 校验 306
11.4.7 利用DMA 的SPI 通信 307
11.4.8 错误标志 307
11.4.9 中断 307
11.5 SPI 应用设计 308
11.5.1 SPI 常用库函数 308
11.5.2 SPI 使用流程 315
11.5.3 STM32 的SPI 设计实例 315
思考与练习 321
第12 章 综合设计 322
12.1 STM32 嵌入式系统设计总体方案 322
12.2 基于STM32 和GSM 的远程环境监控系统 322
12.2.1 硬件设计 323
12.2.2 软件设计 325
12.3 基于STM32 的Zigbee 无线通信 327
12.3.1 硬件设计 328
12.3.2 软件设计 329
12.4 基于STM32 的简易数码相机 332
12.4.1 硬件设计 332
12.4.2 FAT 文件系统 333
12.4.3 FAT16 存储原理 335
12.4.4 软件设计 336
参考文献 341
Ⅸ"
一、现代计算机的技术发展史 1.始于微型机时代的嵌入式应用 电子数字计算机诞生于1946年,在其后漫长的历史进程中,计算机始终是供养在特殊的机房中,实现数值计算的大型昂贵设备。直到20世纪70年代,微...
单片机与嵌入式系统一、现代计算机的技术发展史1.始于微型机时代的嵌入式应用电子数字计算机诞生于1946年,在其后漫长的历史进程中,计算机始终是供养在特殊的机房中,实现数值计算的大型昂贵设备。直到20世...
单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如...
随着计算机信息技术的不断发展,计算机技术为人们解决了越来越多的生产与生活问题。嵌入式单片机与PC机组合应用过程中,单片机的采样DA输出功能为PC机的使用提供了便利,同时单片机资源不足的困难在PC机的帮助下也有明显好转,本文就嵌入式单片机与PC机的组合应用展开了研究和讨论,希望今后嵌入式单片机与PC机的组合可以更加广泛的应用于各个领域。
针对室内温度调控自动化程度不高的现状,分析国内外供暖调温技术的基础上设计了基于嵌入式单片机S3C44B0的自动控制系统,介绍了调温系统的硬件组成及工作原理。该系统采用模糊控制方法对室内的温度进行智能控制,并对其进行仿真分析且可通过串行通信实现远程控制,提高了室内控制的自动化和实用性。
STM32 F0系列 – ARM® Cortex®-M0入门级MCU
意法半导体基于ARM® Cortex®-M0的STM32F0系列单片机实现了32位性能,同时传承了STM32系列的重要特性,特别适合成本敏感型应用。STM32 F0 MCU集实时性能、低功耗运算和STM32平台的先进架构及外设于一身。
STM32 F1系列 – ARM® Cortex®-M3基础型MCU
STM32 F1系列基础型MCU满足了工业、医疗和消费类市场的各种应用需求。凭借该产品系列,意法半导体在全球ARMCortex-M 微控制器领域处于领先地位,同时树立了嵌入式应用的里程碑。该系列利用一流的外设和低功耗、低压操作实现了高性能,同时还以可接受的价格、利用简单的架构和简便易用的工具实现了高集成度。
STM32 F3系列 – ARM® Cortex®-M4混合信号MCU(附带DSP和FPU)
STM32 F3系列单片机具有运行于72 MHz的32位ARM®Cortex®-M4内核(带有FPU和DSP指令)并集成多种模拟外设,从而降低应用成本并简化应用设计,它包括:
•超快速比较器(25 ns)
•具有可编程增益的运算放大器
• 12位DAC
•超快速12位ADC,单通道每秒5 M次采样(每秒五百万次采样),交替模式下可达到每秒18 M次采样
•精确的16位sigma-deltaADC(21通道)
•内核耦合存储器SRAM(程序加速器)是提高时间关键程序性能所专用的存储器架构,可将性能提升43%
• 144 MHz高级16位脉宽调制定时器(分辨率 < 7 ns),用于控制应用
•高分辨率定时器(217 ps),对供电和温度漂移可自补偿
灵活的互连矩阵可在外设之间自主式通信,节省了CPU资源和功耗。
与STM32 F0系列MCU高度兼容,保证了在设计不同性能等级的后续应用时有卓越的效率。
STM32 F2系列 – ARM® Cortex®-M3高性能MCU
基于ARM® Cortex™-M3的STM32 F2系列单片机采用意法半导体先进的90 nm NVM制程制造而成,具有创新型自适应实时存储器加速器(ART加速器™)和多层总线矩阵, 实现了前所未有的高性价比。
该系列MCU具有集成度高的特点:整合了1MB Flash存储器、128KB SRAM、以太网MAC、USB 2.0 HS OTG、照相机接口、硬件加密支持和外部存储器接口。
意法半导体的加速技术使这些MCU能够在主频为120 MHz 下实现高达150 DMIPS/398 CoreMark的性能,这相当于零等待状态执行,同时还能保持极低的动态电流消耗水平(175µA/MHz)。
STM32 F4系列 – ARM® Cortex®-M4高性能MCU(附带DSP和FPU)
基于ARM® Cortex®-M4的STM32F4系列单片机 (MCU) 采用了意法半导体的NVM工艺和ART加速器™,在180 MHz的工作频率下通过闪存执行指令时可实现225DMIPS/608 CoreMark的性能,是迄今所有基于Cortex-M内核的微控制器产品所达到的最高性能得分。
由于采用了动态功耗调整功能,通过闪存执行指令时的电流消耗范围为从STM32F410的89 µA/MHz到STM32F439的260µA/MHz。
STM32F4系列包括11条兼容的数字信号控制器(DSC)产品线,是MCU实时控制功能与DSP信号处理功能的完美结合体
STM32 F7系列 – ARM® Cortex®-M7高性能MCU
得益于意法半导体的ART Accelerator™加速器以及一级高速缓存【L1 CACHE】,不论是从内部闪存还是外部存储器执行程序,STM32F7微控制器均能释放Cortex-M7内核的高性能理论值: 在216 MHz fCPU主频时,性能测试取得1082 CoreMark/462 DMIPS的成绩。
STM32 H7系列 - ARM® Cortex®-M7超高性能MCU
利用L1缓存,STM32H732位单片机实现了Cortex-M7内核的高理论性能——无论是从嵌入式闪存还是外部存储器来执行代码:400MHz 处理器频率下性能可达到 2010 CoreMark /856 DMIPS。
STM32 L0系列 – ARM® Cortex®-M0+超低功耗MCU
ARM®Cortex®-M0+内核与STM32单片机超低功耗特性的独有结合,使STM32 L0 MCU非常适合电池供电或供电来自能量收集的应用。STM32 L0微控制器提供了动态电压调节、超低功耗时钟振荡器、LCD接口、比较器、DAC及硬件加密。
新的自主式外设(包括USART、I²C、触摸传感控制器)分担了ARMCortex-M0+内核的负荷,减少了CPU唤醒次数,因此有助于减少处理时间及功耗。
STM32 L1系列 – ARM® Cortex®-M3超低功耗MCU
基于ARM® Cortex™-M3的STM32L1系列MCU采用ST专有的超低泄漏制程,具有创新型自主动态电压调节功能和5种低功耗模式,STM32 L1系列mcu扩展了超低功耗的理念,并且不会牺牲性能。
与STM32 L0及STM8L一样,STM32L1单片机提供了动态电压调节、超低功耗时钟振荡器、LCD接口、比较器、DAC及硬件加密功能。
这种创新型架构(电压调节、超低功耗MSI振荡器)能够以极低的功耗预算为您的设计实现更高的性能。大量嵌入式外设,例如USB、LCD接口、运算放大器、比较器、具有快速开/关模式的ADC、DAC、电容触摸和AES,为STM32L1系列MCU提供了一个可扩展平台
STM32 L4系列 – ARM® Cortex®-M4超低功耗MCU
STM32L4 MCU在超低功耗微控制器效率的标准化EEMBC™ ULPBench®测试中获得253分【该测试是用来对各类低功耗微处理器做低功耗效率比较的标准】。此外,STM32L4系列单片机打破了当前超低功耗领域的性能极限。基于带FPU的ARM®Cortex®-M4内核以及意法半导体ART Accelerator™技术的前提下,该系列在80MHz CPU频率下的性能可达到100 DMIPS。
STM32L4系列MCU可以根据微处理器运行时不同的应用需求来适时调整电压从而实现功耗的动态平衡。该功能适用于STOP模式下的低功耗外设(LP UART、LP定时器)、安全和保密特性、大量智能外设,以及诸如运算放大器、比较器、LCD、12位DAC和16位ADC(硬件过采样)等先进的低功耗模拟外设。
以STM32F103RBT6这个型号的芯片为例,该型号的组成为7个部分,其命名规则如下:
1 | STM32 | STM32代表ARM Cortex-M内核的32位微控制器。 |
2 | F | F代表芯片子系列。 |
3 | 103 | 103代表增强型系列。 |
4 | R | R这一项代表引脚数,其中T代表36脚,C代表48脚,R代表64脚,V代表100脚,Z代表144脚,I代表176脚。 |
5 | B | B这一项代表内嵌Flash容量,其中6代表32K字节Flash,8代表64K字节Flash,B代表128K字节Flash,C代表256K字节Flash,D代表384K字节Flash,E代表512K字节Flash,G代表1M字节Flash。 |
6 | T | T这一项代表封装,其中H代表BGA封装,T代表LQFP封装,U代表VFQFPN封装。 |
7 | 6 | 6这一项代表工作温度范围,其中6代表-40--85℃,7代表-40--105℃。 |
嵌入式单片机本质上是单片机,目的是构成嵌入式系统,所以其组成和特点遵循单片机和嵌入式系统的组成和特点。
单片机就是微控制器,其特点主要有:
①以控制为主要目的;
②集成度高,体积小,可靠性高;
③工作电压低,功耗低,待机时间长;
④扩展度高,组成灵活;
⑤成本低,性价比高。
单片机的组成架构灵活,一般主要包含:运算器、控制器、存储器、输入输出设备等。
体系结构分为冯·诺依曼体系结构和哈佛体系结构。
硬件结构主要由处理器、数据储存器、程序储存器、定时器/计数器、串并行接口等。
按照历史性、本质性、普遍性要求,嵌入式系统应定义为:“嵌入到对象体系中的专用计算机系统”。“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。对象系统则是指嵌入式系统所嵌入的宿主系统。
嵌入式系统的特点可以由定义中的三个基本要素衍生而来。
①与“嵌入性”的相关特点:由于是嵌入到对象系统中,必须满足对象系统的环境要求,如物理环境(小型)、电气/气氛环境(可靠)、成本(价廉)等要求。
②与“专用性”的相关特点:软、硬件的裁剪性;满足对象要求的最小软、硬件配置等。
③与“计算机系统”的相关特点:嵌入式系统必须是能满足对象系统控制要求的计算机系统,并且必须配置有与对象系统相适应的接口电路。
也可以总结为:实时性、多速率、可剪裁、低功耗、低成本、环境相关等。
另外,在理解嵌入式系统定义时,不要与嵌入式设备相混淆。嵌入式设备是指内部有嵌入式系统的产品、设备,例如,内含单片机的家用电器、仪器仪表、工控单元、机器人、手机、PDA等。
嵌入式系统按形态可分为设备级(工控机)、板级(单板、模块)、芯片级(MCU、SoC)。
嵌入式系统按功用分可为工业用、商业用、军用、民用等,不同的使用环境对嵌入式系统的要求也是不一样的。
ARM处理器ARM处理器由全球领先的32位RISC微处理器知识产权(IP)供应商ARM公司研发,其主要特点为:体积小、低功耗、成本低、性能高、16/32位双指令集、市场份额大。
MIPS处理器MIPS处理器由设计和制造高性能、高档32/64位处理器的MIPS技术公司研发,其主要研发重心在嵌入式系统上。其主要特点是高性能、定位广、64位指令集。
PowerPC处理器PowerPC是摩托罗拉公司和IBM公司联合为苹果公司开发的处理器芯片,其特点是可伸缩性好、灵活度高、应用广泛。
Intel Atom处理器由英特尔公司研发,特点是低功耗、体积小、处理能力强,详见(Atom处理器)。
主要由硬件、软件和相应开发工具与开发系统组成。
硬件包括嵌入式核心芯片、储存器系统和外部接口。
软件包括操作系统和应用软件。
《永磁直流无刷电机实用设计及应用技术》是上海科学技术出版社出版的一本图书。