-
内容大纲
本书秉承“新工科”理念,从科研、教学和工程实际应用出发,理论联系实际,全面系统地讲述了基于STM32CubeMX和HAL库的嵌入式系统设计与应用实例。STM32CubeMX是ST公司提供的用于STM32开发的免费工具软件,是STM32Cube生态系统的核心工具软件。本书从市场上畅销的STM32F1系列微控制器入手,利用STM32CubeMX快速生成STM32F1系列的开发环境,并在KeilMDK上对代码进行进一步的修改补充,直至生成最终的开发项目。全书共12章,主要内容包括绪论、STM32系列微控制器、STM32CubeMX和HAL库、嵌入式开发环境的搭建、STM32GPIO、STM32中断、STM32定时器STM32通用同步/异步收发器、STM32SPI串行总线、STM32I2C串行总线、STM32ADC和STM32DMA控制器。 本书可作为高等院校自动化、软件工程、机器人、自动检测、机电一体化、人工智能、电子与电气工程、计算机应用、信息工程、物联网等相关专业的本科生、研究生教材,也可作为广大从事嵌入式系统开发的工程技术人员的参考用书。 -
作者介绍
李正军,山东大学教授,硕士研究生导师。1984年毕业于山东大学数学系,同年留山东大学数学系任教;先后担任“211工程”重点建设项目“现场总线技术实验室”负责人、控制科学与工程学院“微机原理”课程负责人,并获山东大学优秀教师荣誉称号。担任中国电气工业协会设备网现场总线分会理事、中华人民共和国机械行业标准《低压电气通信规约》审稿人,全国电器设备网络通信接口标准化委员会委员。发表科研与教学论文50余篇,出版著作15部。承担省部级与企业科研课题30余项,主要研究方向包括嵌入式系统、计算机控制技术、现场总线应用技术、电力电子技术等, -
目录
第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.6 Arm嵌入式微处理器
1.6.1 Arm处理器的特点
1.6.2 Arm体系结构的版本和系列
1.6.3 Arm的RISC结构特性
1.7 嵌入式处理器的分类和特点
1.8 Cortex-M3嵌入式微处理器
1.8.1 Cortex-M3概述
1.8.2 Cortex-M3处理器的主要特性
1.8.3 Cortex-M3处理器结构
第2章 STM32系列微控制器
2.1 STM32微控制器概述
2.1.1 STM32微控制器产品介绍
2.1.2 STM32系统性能分析
2.1.3 STM32微控制器的命名规则
2.1.4 STM32微控制器的选型
2.2 STM32F1系列产品系统架构和STM32F103ZET6内部架构
2.2.1 STM32F1系列产品系统架构
2.2.2 STM32F103ZET6的内部架构
2.3 STM32F103ZET6的存储器映像
2.3.1 STM32F103ZET6内置外设的地址范围
2.3.2 嵌入式SRAM
2.3.3 嵌入式Flash
2.4 STM32F103ZET6的时钟结构
2.5 STM32F103VET6的引脚
2.6 STM32F103VET6最小系统设计
第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.3 MCU图形化配置界面总览
3.3.4 MCU配置
3.3.5 时钟配置
3.3.6 项目管理
3.3.7 生成报告和代码
3.4 HAL库
3.4.1 HAL库简介
3.4.2 HAL库与标准外设库和LL库的区别
3.4.3 回调函数
3.4.4 MSP的作用
3.4.5 HAL库的基本问题
第4章 嵌入式开发环境的搭建
4.1 Keil MDK安装配置
4.1.1 Keil MDK简介
4.1.2 Keil MDK下载
4.1.3 Keil MDK安装
4.1.4 安装库文件
4.2 Keil MDK新工程的创建
4.2.1 建立文件夹
4.2.2 打开Keil μVision
4.2.3 新建工程
4.3 Cortex微控制器软件接口标准(CMSIS)
4.4 STM32F103开发板的选择
4.5 STM32仿真器的选择
第5章 STM32 GPIO
5.1 STM32 GPIO接口概述
5.1.1 输入通道
5.1.2 输出通道
5.2 STM32的GPIO功能
5.2.1 普通I/O功能
5.2.2 单独的位设置或位清除
5.2.3 外部中断/唤醒线
5.2.4 复用功能
5.2.5 软件重新映射I/O复用功能
5.2.6 GPIO锁定机制
5.2.7 输入配置
5.2.8 输出配置
5.2.9 复用功能配置
5.2.10 模拟输入配置
5.2.11 STM32的GPIO操作
5.2.12 外部中断映射和事件输出
5.2.13 GPIO的主要特性
5.3 GPIO的HAL驱动程序
5.4 STM32的GPIO使用流程
5.4.1 普通GPIO配置
5.4.2 I/O复用功能AFIO配置
5.5 采用STM32CubeMX和HAL库的GPIO输出应用实例
5.5.1 STM32的GPIO输出应用硬件设计
5.5.2 STM32的GPIO输出应用软件设计
5.6 采用STM32CubeMX和HAL库的GPIO输入应用实例
5.6.1 STM32的GPIO输入应用硬件设计
5.6.2 STM32的GPIO输入应用软件设计
第6章 STM32中断
6.1 中断概述
6.1.1 中断
6.1.2 中断的功能
6.1.3 中断源与中断屏蔽
6.1.4 中断处理过程
6.1.5 中断优先级与中断嵌套
6.2 STM32F1中断系统
6.2.1 STM32F1嵌套向量中断控制器
6.2.2 STM32F1中断优先级
6.2.3 STM32F1中断向量表
6.2.4 STM32F1中断服务程序
6.3 STM32F1外部中断/事件控制器
6.3.1 STM32F1的EXTI内部结构
6.3.2 STM32F1的EXTI工作原理
6.3.3 STM32F1的EXTI主要特性
6.4 STM32F1中断HAL驱动程序
6.4.1 中断设置相关HAL驱动函数
6.4.2 外部中断相关HAL函数
6.5 STM32F1外部中断设计流程
6.6 采用STM32CubeMX和HAL库的外部中断设计实例
6.6.1 STM32F1外部中断的硬件设计
6.6.2 STM32F1外部中断的软件设计
第7章 STM32定时器
7.1 STM32定时器概述
7.2 STM32基本定时器
7.2.1 基本定时器介绍
7.2.2 基本定时器的功能
7.2.3 STM32基本定时器的寄存器
7.3 STM32通用定时器
7.3.1 通用定时器介绍
7.3.2 通用定时器的功能
7.3.3 通用定时器的工作模式
7.3.4 通用定时器的寄存器
7.4 STM32定时器HAL库函数
7.4.1 基础定时器HAL驱动函数
7.4.2 外设的中断处理概念小结
7.5 采用STM32CubeMX和HAL库的定时器应用实例
7.5.1 STM32的通用定时器配置流程
7.5.2 定时器应用的硬件设计
7.5.3 定时器应用的软件设计
第8章 STM32通用同步/异步收发器
8.1 串行通信基础
8.1.1 串行异步通信数据格式
8.1.2 串行同步通信数据格式
8.2 STM32的USART工作原理
8.2.1 USART介绍
8.2.2 USART的主要特性
8.2.3 USART的功能
8.2.4 USART的通信时序
8.2.5 USART的中断
8.2.6 USART的相关寄存器
8.3 USART的HAL驱动程序
8.3.1 常用功能函数
8.3.2 常用宏函数
8.3.3 中断事件与回调函数
8.4 采用STM32CubeMX和HAL库的USART串行通信应用实例
8.4.1 STM32的USART配置流程
8.4.2 USART串行通信应用的硬件设计
8.4.3 USART串行通信应用的软件设计
第9章 STM32 SPI串行总线
9.1 STM32 SPI通信原理
9.1.1 SPI串行总线概述
9.1.2 SPI串行总线互连方式
9.2 STM32F1 SPI串行总线的工作原理
9.2.1 SPI串行总线的特征
9.2.2 SPI串行总线的内部结构
9.2.3 SPI串行总线时钟信号的相位和极性
9.2.4 STM32的SPI配置
9.2.5 STM32的SPI数据发送与接收过程
9.3 SPI的HAL驱动程序
9.3.1 SPI寄存器操作的宏函数
9.3.2 SPI初始化和阻塞式数据传输
9.3.3 SPI中断方式数据传输
9.3.4 SPI DMA方式数据传输
9.4 采用STM32CubeMX和HAL库的SPI应用实例
9.4.1 STM32的SPI配置流程
9.4.2 SPI与Flash接口的硬件设计
9.4.3 SPI与Flash接口的软件设计
第10章 STM32 I2C串行总线
10.1 STM32 I2C串行总线的通信原理
10.1.1 STM32 I2C串行总线概述
10.1.2 STM32 I2C串行总线的数据传输
10.2 STM32 I2C串行总线接口
10.2.1 STM32 I2C串行总线的主要特性
10.2.2 STM32 I2C串行总线的内部结构
10.2.3 STM32 I2C串行总线的功能描述
10.3 I2C的HAL驱动程序
10.3.1 I2C接口的初始化
10.3.2 I2C阻塞式数据传输
10.3.3 I2C中断方式数据传输
10.3.4 I2C DMA方式数据传输
10.4 采用STM32CubeMX和HAL库的I2C应用实例
10.4.1 STM32的I2C配置
10.4.2 STM32 I2C与EEPROM接口的硬件设计
10.4.3 STM32 I2C与EEPROM接口的软件设计
第11章 STM32模数转换器
11.1 模拟量输入通道
11.1.1 模拟量输入通道的组成
11.1.2 ADC简介
11.2 模拟量输入信号类型与量程自动转换
11.2.1 模拟量输入信号类型
11.2.2 量程自动转换
11.3 STM32F103ZET6集成的ADC模块
11.3.1 STM32的ADC的主要特征
11.3.2 STM32的ADC模块结构
11.3.3 STM32的ADC功能
11.3.4 STM32的ADC应用特征
11.4 ADC的HAL驱动程序
11.4.1 常规通道
11.4.2 注入通道
11.4.3 多重ADC
11.5 采用STM32CubeMX和HAL库的ADC应用实例
11.5.1 STM32的ADC配置流程
11.5.2 STM32的ADC应用的硬件设计
11.5.3 STM32的ADC应用的软件设计
第12章 STM32 DMA控制器
12.1 STM32 DMA的基本概念
12.1.1 DMA的定义
12.1.2 DMA在嵌入式实时系统中的价值
12.1.3 DMA传输的基本要素
12.1.4 DMA传输过程
12.1.5 DMA的优点与应用
12.2 STM32 DMA的结构和主要特征
12.3 STM32 DMA的功能描述
12.3.1 DMA处理
12.3.2 仲裁器
12.3.3 DMA通道
12.3.4 DMA中断
12.4 DMA的HAL驱动程序
12.4.1 DMA的HAL库函数概述
12.4.2 DMA传输初始化配置
12.4.3 启动DMA数据传输
12.4.4 DMA的中断
12.5 采用STM32CubeMX和HAL库的DMA应用实例
12.5.1 STM32的DMA配置流程
12.5.2 DMA应用的硬件设计
12.5.3 DMA应用的软件设计
参考文献
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...