新書推薦:
《
为你想要的生活
》
售價:HK$
67.9
《
关键改变:如何实现自我蜕变
》
售價:HK$
79.4
《
超加工人群:为什么有些食物让人一吃就停不下来
》
售價:HK$
102.4
《
历史的教训(浓缩《文明的故事》精华,总结历史教训的独特见解)
》
售價:HK$
64.4
《
不在场证明谜案(超绝CP陷入冤案!日本文坛超新星推理作家——辻堂梦代表作首次引进!)
》
售價:HK$
59.8
《
明式家具三十年经眼录
》
售價:HK$
538.2
《
敦煌写本文献学(增订本)
》
售價:HK$
227.7
《
耕读史
》
售價:HK$
112.7
|
編輯推薦: |
内容全面:本书系统介绍了STM32F407嵌入式系统的设计与应用,涵盖了从嵌入式系统基础到STM32F407微控制器的详细概述,深入讲解了STM32CubeMX、STM32CubeIDE和HAL库的使用方法,以及GPIO、中断、定时器、USART、SPI、I2C、A/D转换器和DMA控制器等核心技术,为读者提供了全面的STM32学习路径。
实用性强:本书以目前广泛使用的“野火STM32开发板F407-霸天虎”为例,通过大量实例演示了如何使用STM32CubeMX、STM32CubeIDE和HAL库进行嵌入式系统开发,包括GPIO输入输出、外部中断、定时器应用、串行通信、SPI通信、I2C通信、模数转换和DMA控制等,让读者在实践中掌握STM32开发技能。
教学一体化:本书结合作者多年的科研和教学经验,遵循循序渐进、理论与实践并重、共性与个性兼顾的原则,将理论实践一体化的教学方式融入其中。书中实例均经过调试,确保读者能够结合实际或手中的开发板开展实验并获得实验结果,提升学习效果。
资源丰富:本书配备了丰富的数字资源,包括电子课件、程序代码(Keil MDK工程和STM32CubeI
|
內容簡介: |
本书是一本关于STM32F407ZGT6(Arm Cortex-M4)嵌入式系统设计与应用的立体教程,主要针对的读者群是具备初步电子和编程基础、希望深入学习STM32的开发者。通过本书的学习,读者能够掌握使用STM32CubeMX和HAL库进行嵌入式系统开发的核心技能,成为熟练的STM32开发人员。本书内容涵盖了嵌入式系统基础、STM32系列微控制器概述、STM32CubeMX和HAL库的使用方法、嵌入式开发平台的搭建、GPIO接口、中断系统、定时器系统、通用同步异步收发器(USART)、SPI串行总线、I2C串行总线、A/D转换器以及DMA控制器等核心技术。书中结合“野火STM32开发板F407-霸天虎”进行了丰富的实例开发,所有实例均经过调试,确保读者能够结合实际或手中的开发板开展实验并获得实验结果。本书还配备了丰富的数字资源,包括电子课件、程序代码、教学大纲、习题答案、试卷及答案等,适合作为STM32嵌入式系统课程教材或STM32开发者的参考用书。
|
關於作者: |
李正军 山东大学教授,硕士研究生导师,知名的嵌入式系统、现场总线与工业以太网、自动控制、现场总线与工业以太网专家。1984年毕业于山东大学数学系、同年留山东大学数学系任教。先后担任“211工程”重点建设项目“现场总线技术实验室”负责人、控制科学与工程学院微机原理课程负责人,硕士研究生导师,并获山东大学优秀教师荣誉称号。中国电气工业协会设备网现场总线分会理事、中华人民共和国机械行业标准《低压电气通信规约》审稿人,全国电器设备网络通信接口标准化委员会委员。发表科研与教学论文50余篇,出版著作26部,并获机械工业出版社百佳作者和金牌作者荣誉称号。承担省部级与企业科研课题30余项。主要研究方向包括嵌入式系统、RISC-V开源技术、计算机控制、现场总线与工业以太网应用技术、高端医疗器械、电力网络监测仪表等。
|
目錄:
|
第1章绪论
1.1嵌入式系统
1.1.1嵌入式系统概述
1.1.2嵌入式系统和通用计算机系统比较
1.1.3嵌入式系统的特点
1.2嵌入式系统的组成
1.3嵌入式系统的软件
1.3.1无操作系统的嵌入式软件
1.3.2带操作系统的嵌入式软件
1.3.3嵌入式操作系统的分类
1.3.4嵌入式实时操作系统的功能
1.3.5典型嵌入式操作系统
1.4嵌入式系统的应用领域
1.5嵌入式系统的体系
1.5.1硬件架构
1.5.2软件层次
1.6Arm嵌入式微处理器
1.6.1Arm处理器的特点
1.6.2Arm体系结构的版本和系列
1.6.3Arm的RISC结构特性
1.7存储器系统
1.7.1存储器系统概述
1.7.2嵌入式系统存储器的分类
1.8嵌入式处理器的分类和特点
第2章STM32系列微控制器
2.1STM32 微控制器概述
2.1.1STM32 微控制器产品介绍
2.1.2STM32系统性能分析
2.1.3CortexM4的三级流水线
2.1.4STM32微控制器的命名规则
2.1.5STM32F1和STM32F4的区别
2.1.6STM32微控制器的选型
2.2STM32F407ZGT6概述
2.2.1STM32F407的主要特性
2.2.2STM32F407的主要功能
2.3STM32F407ZGT6芯片内部结构
2.4STM32F407VGT6芯片引脚和功能
2.5STM32F407VGT6最小系统设计
第3章STM32CubeMX和HAL库
3.1安装STM32CubeMX
3.2安装MCU固件包
3.2.1软件库文件夹设置
3.2.2管理嵌入式软件包
3.3软件功能与基本使用
3.3.1软件界面
3.3.2新建项目
3.3.3MCU图形化配置界面总览
3.3.4MCU配置
3.3.5时钟配置
3.3.6项目管理
3.3.7生成报告和代码
3.4HAL库
3.4.1HAL库简介
3.4.2HAL库与标准外设库和LL库的区别
3.4.3回调函数
3.4.4MSP的作用
3.4.5HAL库的基本问题
第4章STM32CubeIDE开发平台
4.1安装STM32CubeIDE
4.2STM32CubeIDE的操作
4.2.1新建和导入工程
4.2.2项目管理
4.2.3打开/关闭/删除/切换/导出工程
4.2.4固件库管理
4.2.5代码编译
4.2.6调试及运行配置
4.2.7启动调试
4.3STM32CubeProgrammer软件
4.4STM32CubeMonitor软件
4.5STM32F407开发板的选择
4.6STM32仿真器的选择
第5章STM32 GPIO
5.1STM32 GPIO接口概述
5.1.1输入通道
5.1.2输出通道
5.2STM32的GPIO功能
5.2.1普通I/O功能
5.2.2单独的位设置或位清除
5.2.3外部中断/唤醒线
5.2.4复用功能
5.2.5软件重新映射I/O复用功能
5.2.6GPIO锁定机制
5.2.7输入配置
5.2.8输出配置
5.2.9复用功能配置
5.2.10模拟输入配置
5.2.11STM32 的GPIO操作
5.2.12外部中断映射和事件输出
5.2.13GPIO的主要特性
5.3GPIO的HAL驱动程序
5.4STM32的GPIO使用流程
5.4.1普通GPIO配置
5.4.2I/O复用功能AFIO配置
5.5采用STM32CubeMX和HAL库的GPIO输出应用实例
5.5.1STM32的GPIO输出应用硬件设计
5.5.2STM32的GPIO输出应用软件设计
5.6采用STM32CubeMX和HAL库的GPIO输入应用实例
5.6.1STM32的GPIO输入应用硬件设计
5.6.2STM32的GPIO输入应用软件设计
第6章STM32中断
6.1中断概述
6.1.1中断
6.1.2中断的功能
6.1.3中断源与中断屏蔽
6.1.4中断处理过程
6.1.5中断优先级与中断嵌套
6.2STM32F4中断系统
6.2.1STM32F4嵌套向量中断控制器
6.2.2STM32F4中断优先级
6.2.3STM32F4中断向量表
6.2.4STM32F4中断服务程序
6.3STM32F4外部中断/事件控制器
6.3.1STM32F4的 EXTI内部结构
6.3.2STM32F4的EXTI主要特性
6.4STM32F4中断HAL驱动程序
6.4.1中断设置相关HAL驱动函数
6.4.2外部中断相关HAL函数
6.5STM32F4外部中断设计流程
6.6采用STM32CubeMX和HAL库的外部中断设计实例
6.6.1STM32F4外部中断的硬件设计
6.6.2STM32F4外部中断的软件设计
第7章STM32定时器
7.1STM32定时器概述
7.2STM32基本定时器
7.2.1基本定时器介绍
7.2.2基本定时器的功能
7.2.3STM32基本定时器的寄存器
7.3STM32通用定时器
7.3.1通用定时器介绍
7.3.2通用定时器的功能
7.3.3通用定时器的工作模式
7.3.4通用定时器的寄存器
7.4STM32定时器HAL库函数
7.4.1基础定时器 HAL驱动程序
7.4.2外设的中断处理概念小结
7.5采用STM32CubeMX和HAL库的定时器应用实例
7.5.1STM32的通用定时器配置流程
7.5.2定时器应用的硬件设计
7.5.3定时器应用的软件设计
第8章STM32 通用同步/异步收发器
8.1串行通信基础
8.1.1串行异步通信数据格式
8.1.2串行同步通信数据格式
8.2STM32的USART工作原理
8.2.1USART介绍
8.2.2USART的主要特性
8.2.3USART的功能
8.2.4USART的通信时序
8.2.5USART的中断
8.2.6USART的相关寄存器
8.3USART的HAL驱动程序
8.3.1常用功能函数
8.3.2常用宏函数
8.3.3中断事件与回调函数
8.4采用STM32CubeMX和HAL库的USART串行通信应用实例
8.4.1STM32的USART配置流程
8.4.2STM32的USART串行通信应用的硬件设计
8.4.3STM32的USART串行通信应用的软件设计
第9章STM32 SPI串行总线
9.1STM32 SPI通信原理
9.1.1SPI串行总线概述
9.1.2SPI串行总线互连方式
9.2STM32F4 SPI串行总线的工作原理
9.2.1SPI串行总线的特征
9.2.2SPI串行总线的内部结构
9.2.3SPI串行总线时钟信号的相位和极性
9.2.4STM32的SPI配置
9.2.5STM32的SPI数据发送与接收过程
9.3SPI的HAL 驱动程序
9.3.1SPI寄存器操作的宏函数
9.3.2SPI初始化和阻塞式数据传输
9.3.3SPI中断方式数据传输
9.3.4SPI DMA方式数据传输
9.4采用STM32CubeMX和HAL库的 SPI应用实例
9.4.1STM32的SPI配置流程
9.4.2STM32 SPI与Flash接口的硬件设计
9.4.3STM32 SPI与Flash接口的软件设计
第10章STM32 I2C串行总线
10.1STM32 I2C串行总线的通信原理
10.1.1STM32 I2C串行总线概述
10.1.2I2C总线的数据传输
10.2STM32 I2C串行总线接口
10.2.1STM32 I2C串行总线的主要特性
10.2.2STM32 I2C串行总线的内部结构
10.2.3STM32 I2C串行总线的功能描述
10.3I2C的HAL驱动程序
10.3.1I2C接口的初始化
10.3.2I2C阻塞式数据传输
10.3.3I2C中断方式数据传输
10.3.4I2C DMA方式数据传输
10.4采用STM32CubeMX和HAL库的 I2C应用实例
10.4.1STM32的I2C配置流程
10.4.2STM32 I2C与EEPROM接口的硬件设计
10.4.3STM32 I2C与EEPROM接口的软件设计
第11章STM32模数转换器
11.1模拟量输入通道
11.1.1模拟量输入通道的组成
11.1.2ADC简介
11.2模拟量输入信号类型与量程自动转换
11.2.1模拟量输入信号类型
11.2.2量程自动转换
11.3STM32F407微控制器的ADC结构
11.4STM32F407 微控制器的ADC功能
11.4.1ADC使能和启动
11.4.2时钟配置
11.4.3转换模式
11.4.4DMA 控制
11.4.5STM32的ADC应用特征
11.5ADC的HAL驱动程序
11.5.1常规通道
11.5.2注入通道
11.5.3多重ADC
11.6采用STM32CubeMX和HAL库的ADC应用实例
11.6.1STM32的ADC配置流程
11.6.2STM32的ADC应用硬件设计
11.6.3STM32的ADC应用软件设计
第12章STM32 DMA控制器
12.1STM32 DMA的基本概念
12.1.1DMA的定义
12.1.2DMA在嵌入式实时系统中的价值
12.1.3DMA传输的基本要素
12.1.4DMA传输过程
12.1.5DMA的优点与应用
12.2STM32 DMA的结构和主要特征
12.3STM32 DMA的功能描述
12.3.1DMA处理
12.3.2仲裁器
12.3.3DMA通道
12.3.4DMA中断
12.4DMA的HAL驱动程序
12.4.1DMA的HAL库函数概述
12.4.2DMA传输初始化配置
12.4.3启动DMA数据传输
12.4.4DMA的中断
12.5采用STM32CubeMX和HAL库的DMA应用实例
12.5.1STM32的DMA配置流程
12.5.2DMA应用的硬件设计
12.5.3DMA应用的软件设计
参考文献
|
內容試閱:
|
STM32作为Arm的一个典型系列,以其较高的性能和优越的性价比,毫无疑问地成为32位单片机市场的主流。把STM32 引入大学的培养体系,已经成为广大师生的普遍共识。
HAL库是意法半导体公司(简称ST公司)为STM32的MCU最新推出的抽象层嵌入式软件,目标是更方便地实现跨STM32产品的最大可移植性。和标准外设库(也称为标准库)相比,STM32的HAL库更加抽象,ST公司最终的目的是实现在STM32系列MCU之间无缝移植,甚至与其他MCU也能实现快速移植。
STM32Cube生态系统已经完全抛弃了早期的标准外设库,STM32系列MCU都提供HAL固件库以及其他一些扩展库。STM32Cube 生态系统的两个核心软件是 STM32CubeMX和STM32CubeIDE,另外还有程序下载软件STM32CubeProgrammer,这些都是由ST公司官方免费提供的。使用STM32CubeMX可以进行MCU的系统功能和外设图形化配置,可以生成MDKArm或STM32CubeIDE项目框架代码,包括系统初始化代码和已配置外设的初始化代码。如果用户想在生成的MDKArm或STM32CubeIDE 初始项目的基础上添加自己的应用程序代码,只需把代码写在代码沙箱段内,就可以在STM32CubeMX中修改MCU设置,重新生成代码,而不会影响用户已经添加的程序代码。
之前使用的都是标准库,使用标准库的主要劣势就是每次修改MCU功能时,都需要手动修改,而且手动修改也不能保证程序的正确性,因为代码在不同的MCU之间移植的结果是不一样的,也就是说标准库是针对某一系列芯片的,没有什么可移植性。此外,在内部的布线上也稍微有些区别,移植时需要格外注意。最近兴起的HAL库就是ST公司目前主推的研发方式,其更新速度比较快,可以通过官方推出的STM32CubeMX工具一键生成代码,大大缩短开发周期。使用HAL库的优势主要就是不需要开发工程师再设计所用的MCU型号,只需要专注于所需功能的软件开发工作即可。
目前,基于STM32内核的Arm微处理器的开发方式主要有以下几种。
(1) 寄存器 Keil MDK(难度较大,代码效率高,不常用)。
(2) 标准库函数 Keil MDK(现在多采用)。
(3) HAL库函数 Keil MDK(已采用)。
(4) STM32CubeMX HAL库函数 Keil MDK(简单易学,缺乏教材,但已开始采用)。
(5) STM32CubeMX STM32CubeIDE HAL库函数(简单易学,开发平台不涉及版权,未来趋势)。
STM32CubeMX和STM32CubeIDE是STM32Cube开发中不可或缺的两款软件。由于STM32CubeMX和STM32CubeIDE的优越性及编程的图形化,读者急需一本讲述STM32CubeMX和STM32CubeIDE编程的嵌入式系统教材。
因此,本书以ST公司的基于32位Arm内核的STM32F407为背景机型,采用STM32CubeMX、STM32CubeIDE和HAL库函数,讲述嵌入式系统设计与应用实例,限于篇幅且Keil MDK在国内的应用较为普遍,只在GPIO输出应用实例中详细地讲述了STM32CubeIDE开发平台的应用,其他应用实例均采用Keil MDK开发平台。
本书共分12章。第1章内容是概述嵌入式系统,介绍嵌入式系统的组成、嵌入式系统的软件、嵌入式系统的应用领域、嵌入式系统的体系、Arm嵌入式微处理器、存储器系统、嵌入式处理器的分类和特点; 第2章概述STM32系列微控制器,介绍STM32F407ZGT6概述、STM32F407ZGT6芯片内部结构、STM32F407VGT6芯片引脚和功能,以及STM32F407VGT6最小系统设计; 第3章讲述STM32CubeMX和HAL库,包括安装STM32CubeMX、安装MCU固件包、软件功能与基本使用,以及HAL库; 第4章讲述STM32CubeIDE开发平台,包括安装STM32CubeIDE、STM32CubeIDE的操作、STM32CubeProgrammer软件、STM32CubeMonitor软件、STM32F407开发板的选择和STM32仿真器的选择; 第5章讲述STM32 GPIO,包括STM32 GPIO接口概述、STM32的GPIO功能、GPIO的HAL驱动程序、STM32的GPIO 使用流程、采用STM32CubeMX和HAL库的GPIO输出应用实例、采用STM32CubeMX和HAL库的GPIO输入应用实例; 第6章讲述STM32中断,包括中断概述、STM32F4中断系统、STM32F4外部中断/事件控制器、STM32F4中断HAL驱动程序、STM32F4外部中断设计流程和采用STM32CubeMX和HAL库的外部中断设计实例; 第7章讲述STM32定时器系统,包括STM32定时器概述、STM32基本定时器、STM32通用定时器、STM32定时器HAL库函数、采用STM32CubeMX和HAL库的定时器应用实例; 第8章讲述STM32 通用同步/异步收发器,包括串行通信基础、STM32的USART工作原理、USART的HAL驱动程序、采用STM32CubeMX和HAL库的USART串行通信应用实例; 第9章讲述STM32 SPI串行总线,包括STM32 SPI通信原理、STM32F4 SPI串行总线的工作原理、SPI的HAL驱动程序、采用STM32CubeMX和HAL库的 SPI应用实例; 第10章讲述STM32 I2C串行总线,包括STM32 I2C串行总线的通信原理、STM32 I2C串行总线接口、I2C的HAL驱动程序、采用STM32CubeMX和HAL库的 I2C应用实例; 第11章讲述STM32 A/D转换器,包括模拟量输入通道、模拟量输入信号类型与量程自动转换、STM32F407微控制器的ADC结构、STM32F407微控制器的ADC功能、ADC的HAL驱动程序、采用STM32CubeMX和HAL库的A/D转换器应用实例; 第12章讲述STM32 DMA控制器,包括STM32 DMA的基本概念、STM32 DMA的结构和主要特征、STM32 DMA的功能描述、DMA的HAL驱动程序、采用STM32CubeMX和HAL库的DMA应用实例。
本书结合编者多年的科研和教学经验,遵循“循序渐进,理论与实践并重,共性与个性兼顾”的原则,将理论实践一体化的教学方式融入其中。书中实例的开发过程用到的是目前使用最广的“野火STM32开发板F407霸天虎”,由此开发各种功能,书中的实例均进行了调试。读者也可以结合实际或手里现有的开发板开展实验,均能获得实验结果。
本书数字资源丰富,配有电路文件、程序代码(Keil MDK工程和STM32CubeIDE工程)、教学大纲、教学课件、测验试题和习题解答等电子配套资源。
对本书引用的参考文献的作者,在此一并向他们表示真诚的感谢。由于编者水平有限,加上时间仓促,书中不妥之处在所难免,敬请广大读者不吝指正。
编者
|
|