STM32嵌入式系统开发——基于STM32CubeMX和HAL库 pdf下载
选择版本
内容简介
本篇主要提供STM32嵌入式系统开发——基于STM32CubeMX和HAL库电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

本书根据STM32嵌入式开发的特点,结合课程的教学成果和基于STM32进行实际开发的成果,按照“先原理后实践、先硬件后软件、先基础后进阶”的结构体系进行编写。内容涵盖STM32的基础功能和原理,在突出基本理论和基本方法的同时,以当前流行的STM32CubeMX和HAL库作为嵌入式系统开发的工具,注重实际工程项目的分析与实现。
由浅入深,循序渐进 以从基础到进阶、从理论到实践、循序渐进的原则进行编排,帮助读者系统学习和掌握STM32嵌入式系统开发的方法和技巧。
内容翔实,通用性强 结合编者多年教学与开发经验,书中列举了丰富的实验案例,便于读者深入理解和掌握嵌入式系统开发的核心概念和实际操作。内容及教学视频兼顾STM32U5、STM32F4等多种芯片系统。
理论清晰,案例典型 在简洁明了地介绍STM32嵌入式开发理论的基础上,深入剖析了基于STM32CubeMX和HAL库的开发流程和技巧,并通过典型工程案例引导读者在实践中应用所学知识。
结构清晰,查阅方便 章节目录结构清晰,一致性强,并通过多种形式对相关开发流程和库函数进行归纳总结,有助于读者快速查阅和参考。
《STM32嵌入式系统开发——基于STM32CubeMX和HAL库》是一部介绍嵌入式系统中STM32的基本原理和开发方法的立体化教程(含纸质图书、教学课件、源代码与视频教程)。
《STM32嵌入式系统开发——基于STM32CubeMX和HAL库》的第1章至第3章介绍了嵌入式系统、ARM Cortex系列架构、STM32系列微控制器及其特点以及STM32固件库的作用,并介绍了STM32的开发环境的基础知识和预备内容。第4章至第14章分别介绍了STM32上相关外设的基础知识和开发方法,包括通用输入/输出接口GPIO、嵌套向量中断控制器NVIC与外部中断EXTI、时钟树与SysTick、串行通信USART、直接存储器访问DMA、定时器TIM、模数转换器ADC、串行外设接口SPI、内部集成电路总线I2C、实时时钟RTC、独立看门狗IWDG的配置与应用,内容包括STM32上对应外设的功能特点、内部架构、涉及的HAL库函数和寄存器等,并在每章的后面通过实验详细说明了相关外设的开发使用方法。第15章通过一个综合的智能手表项目,帮助读者深入理解和掌握嵌入式系统开发的整体架构和综合技术,并使用TouchGFX进行界面设计。
为便于读者高效学习,快速掌握STM32的原理,本书作者精心制作了完整的教学课件、完整的实验源代码与丰富的配套视频教程等内容,详细内容请扫描书中相关的二维码。
《STM32嵌入式系统开发——基于STM32CubeMX和HAL库》适合作为广大高校计算机专业大学生学习STM32嵌入式系统课程的教材,也可以作为STM32开发者的自学参考用书。
第1章嵌入式系统概述
1.1嵌入式系统的发展
1.2嵌入式系统的定义和特点
1.3嵌入式系统的开发流程
第2章初识STM32
2.1ARM Cortex系列架构
2.2STM32系列MCU
2.3STM32固件库
2.3.1获取HAL库固件包
2.3.2HAL库文件分析
第3章STM32的开发工具介绍及安装
视频讲解: 68分钟,5集
3.1生成工程模板——STM32CubeMX
3.1.1STM32CubeMX的安装
3.1.2固件包的安装
3.1.3配置并生成代码模板
3.2编辑编译工程——MDK-ARM、STM32CubeIDE
3.2.1MDK-ARM
3.2.2STM32CubeIDE
3.3调试下载工具
3.3.1ST-LINK
3.3.2DAPLink
3.4串行通信工具
3.5STM32硬件开发平台
3.6实验: 用STM32CubeMX和MDK创建工程项目并调试
3.6.1配置STM32CubeMX工程
3.6.2使用MDK打开并编辑工程
3.6.3连接开发板调试程序
3.7main()函数之前的启动流程
第4章通用输入/输出接口
视频讲解: 84分钟,5集
4.1GPIO简介
4.2GPIO的内部架构
4.3工作模式
4.3.1浮空输入
4.3.2上拉输入
4.3.3下拉输入
4.3.4推挽输出
4.3.5开漏输出
4.3.6模拟输入
4.3.7模拟输出
4.3.8复用功能推挽模式
4.3.9复用功能开漏模式
4.4GPIO的STM32CubeMX配置
4.5GPIO的寄存器
4.6GPIO的HAL库函数
4.7实验: GPIO输出之点亮LED灯
4.7.1应用场景及目的
4.7.2原理图
4.7.3程序流程
4.7.4程序配置
4.7.5实验现象
4.8实验: GPIO输入之按键输入检测
4.8.1应用场景及目的
4.8.2原理图
4.8.3程序流程
4.8.4程序配置
4.8.5实验现象
4.9习题
第5章中断控制器NVIC与EXTI
视频讲解: 44分钟,3集
5.1什么是中断
5.2嵌套向量中断控制器NVIC
5.2.1NVIC简介
5.2.2NVIC的优先级
5.2.3NVIC的STM32CubeMX配置
5.3EXTI
5.3.1EXTI简介
5.3.2EXTI的内部架构
5.3.3GPIO的外部中断
5.3.4EXTI的STM32CubeMX配置
5.3.5EXTI的寄存器
5.3.6EXTI的HAL库配置流程
5.4实验: 用外部中断进行按键上升沿/下降沿检测
5.4.1应用场景及目的
5.4.2原理图
5.4.3程序流程
5.4.4程序配置
5.4.5实验现象
5.5习题
第6章时钟树与SysTick
视频讲解: 31分钟,3集
6.1时钟树
6.1.1时钟树简介
6.1.2时钟源
6.1.3多路复用器与分频/倍频器
6.1.4总线与外设
6.1.5时钟树的STM32CubeMX配置
6.2SysTick
6.2.1SysTick简介
6.2.2SysTick的HAL库函数
6.3实验: SysTick之闪灯实验
6.3.1应用场景及目的
6.3.2程序配置
6.3.3实验现象
6.4习题
第7章串行通信USART
视频讲解: 85分钟,5集
7.1通信方式分类
7.1.1按照连接方式分类
7.1.2按照同步方式分类
7.1.3按照传输方向分类
7.2串行通信简介
7.2.1常见的串行通信协议
7.2.2波特率和采样速率
7.2.3USART的数据帧格式
7.3USART简介
7.4USART的内部架构
7.5USART的STM32CubeMX配置
7.6USART的寄存器
7.7USART的HAL库函数
7.7.1初始化函数
7.7.2轮询模式
7.7.3中断模式
7.8实验: USART之重定向printf()
7.8.1应用场景及目的
7.8.2原理图
7.8.3程序配置
7.8.4实验现象
7.9实验: USART之定长数据的发送与接收(轮询方式)
7.9.1应用场景及目的
7.9.2程序配置
7.9.3实验现象
7.10实验: USART之不定长数据的发送与接收(中断方式)
7.10.1应用场景及目的
7.10.2程序配置
7.10.3实验现象
7.11习题
第8章直接存储器访问
视频讲解: 28分钟,2集
8.1DMA简介
8.2DMA的内部架构
8.3DMA的通道
8.4DMA的中断
8.5DMA的STM32CubeMX配置
8.6DMA的寄存器
8.7DMA的HAL库函数
8.8实验: USART之空闲中断与 DMA配合接收
8.8.1应用场景及目的
8.8.2程序配置
8.8.3实验现象
8.9习题
第9章定时器TIM
视频讲解: 121分钟,8集
9.1定时器TIM简介
9.2基本定时器TIM6/TIM7
9.2.1概述
9.2.2基本定时器的内部架构
9.3通用定时器TIM2/TIM3/TIM4/TIM5
9.3.1概述
9.3.2通用定时器的内部架构
9.3.3通用定时器的寄存器
9.4计数模式
9.4.1计数原理
9.4.2计数模式的STM32CubeMX配置
9.4.3计数模式的HAL库函数
9.5输入捕获模式
9.5.1输入捕获原理
9.5.2输入捕获模式的STM32CubeMX配置
9.5.3输入捕获模式的HAL库函数
9.6输出比较模式
9.6.1输出比较原理
9.6.2输出比较模式的STM32CubeMX配置
9.6.3输出比较模式的HAL库函数
9.7PWM模式
9.7.1STM32的PWM模式
9.7.2PWM的STM32CubeMX配置
9.7.3PWM的HAL库函数
9.8实验: 基于基本定时器的翻转LED指示灯
9.8.1应用场景及目的
9.8.2原理图
9.8.3程序配置
9.8.4实验现象
9.9实验: 基于通用定时器的按键输入捕获实验
9.9.1应用场景及目的
9.9.2程序流程
9.9.3原理图
9.9.4程序配置
9.9.5实验现象
9.10实验: 基于通用定时器的PWM驱动风扇和电动机
9.10.1应用场景和目的
9.10.2程序流程
9.10.3原理图
9.10.4程序配置
9.10.5实验现象
9.11习题
第10章模数转换器
视频讲解: 63分钟,5集
10.1模数转换简介
10.2STM32的ADC简介
10.2.1概述
10.2.2ADC的内部架构
10.3ADC时钟与采样时间
10.3.1ADC时钟
10.3.2ADC采样时间
10.4规则通道与注入通道
10.4.1STM32CubeMX配置
10.4.2寄存器
10.4.3HAL库函数
10.5单次转换与连续转换模式
10.5.1单次转换
10.5.2连续转换
10.5.3不连续转换
10.5.4STM32CubeMX配置
10.5.5寄存器
10.5.6HAL库函数
10.6ADC的DMA传输方式
10.7实验: ADC 单通道轮询方式读取
10.7.1应用场景及目的
10.7.2程序配置
10.7.3实验现象
10.8实验: ADC 多通道轮询方式读取
10.8.1应用场景及目的
10.8.2程序配置
10.8.3实验现象
10.9实验: ADC的DMA读取(五向按键)
10.9.1应用场景及目的
10.9.2程序流程
10.9.3原理图
10.9.4程序配置
10.9.5实验现象
10.10习题
第11章串行外设接口
视频讲解: 72分钟,4集
11.1SPI总线简介
11.2STM32的SPI接口
11.2.1特性
11.2.2SPI的内部架构
11.3SPI的STM32CubeMX配置
11.4SPI的寄存器
11.5SPI的HAL库函数
11.6实验: 用SPI总线驱动显示屏
11.6.1应用场景及目的
11.6.2LCD基础知识
11.6.3ILI9341驱动芯片
11.6.4程序流程
11.6.5原理图
11.6.6程序配置
11.6.7实验现象
11.7实验: 用SPI总线显示图片
11.7.1应用场景及目的
11.7.2图片转换原理
11.7.3程序配置
11.7.4实验现象
11.8习题
第12章四路串行外设接口
视频讲解: 37分钟,2集
12.1QSPI简介
12.2STM32的QSPI接口
12.3STM32CubeMX配置
12.4HAL库函数
12.5实验: 用QSPI总线驱动NOR Flash W25Q128
12.5.1应用场景及目的
12.5.2W25Q128
12.5.3程序流程
12.5.4原理图
12.5.5程序配置
12.5.6实验现象
12.6习题
第13章内部集成电路总线I2C
视频讲解: 54分钟,4集
13.1I2C总线基础知识
13.1.1I2C简介
13.1.2电路原理
13.1.3通信时序
13.2STM32的I2C接口
13.2.1特性
13.2.2内部架构
13.3I2C的STM32CubeMX配置
13.4I2C的HAL库函数
13.5实验: 用I2C总线读取温湿度传感器
13.5.1应用场景及目的
13.5.2SHT20温湿度传感器
13.5.3程序流程
13.5.4原理图
13.5.5程序配置
13.5.6实验现象
13.6实验: 用I2C总线驱动触摸屏
13.6.1应用场景及目的
13.6.2FT6336触摸屏芯片
13.6.3原理图
13.6.4程序配置
13.6.5实验现象
第14章实时时钟
视频讲解: 35分钟,2集
14.1RTC简介
14.2RTC的功能
14.2.1RTC二进制、BCD或混合模式
14.2.2实时时钟和日历
14.2.3可编程闹钟
14.2.4时间戳功能
14.2.5备份寄存器
14.3RTC的STM32CubeMX配置
14.4RTC的寄存器
14.5RTC的HAL库函数
14.6实验: 驱动RTC
14.6.1应用场景及目的
14.6.2程序配置
14.6.3实验现象
14.7习题
第15章独立看门狗
视频讲解: 13分钟,2集
15.1IWDG简介
15.2内部架构
15.3功能和时序
15.4STM32CubeMX配置
15.5IWDG的HAL库函数
15.6IWDG的寄存器
15.7实验: 用按键实现看门狗重载
15.7.1应用场景及目的
15.7.2程序配置
15.7.3实验现象
15.8习题
第16章综合项目:智能手表
16.1软件系统方案
16.2TouchGFX
16.3界面设计
参考文献
一、 为什么要写本书
在当今数字化日益深入的世界里,嵌入式系统已经成为几乎所有电子设备的核心。STM32系列微控制器由于其强大的性能、丰富的外设和广泛的应用领域,成为众多开发者首选的平台之一。然而,对于初学者来说,学习和掌握这样一个复杂而强大的系统往往是一项挑战。
使用HAL库进行开发是当前的主流方式。高校和培训机构广泛使用STM32作为教学平台,基于HAL库的教材需求强劲。HAL库封装了底层硬件细节,简化了开发过程,降低了学习难度,尤其适合初学者。STM32CubeMX作为STM32开发工具链中的重要组成部分,通过其图形化的配置界面、自动生成代码、多种项目框架支持以及完整的外设支持,显著简化了STM32嵌入式系统开发的复杂度,使开发者能够更专注于应用逻辑和功能实现,而非底层配置和初始化的细节。虽然市场上已有不少关于STM32的教材,但系统性强、覆盖全面且针对STM32CubeMX和HAL库开发的书籍仍相对稀缺。
基于上述情况,本书进行了相关完善。在工具上,本书使用当前主流的HAL库进行开发,依据官方的STM32CubeMX软件进行工程部署,采用常用的MDK进行代码编辑和编译调试。在内容上,涵盖常用的外设基础知识、芯片架构、函数寄存器、实验教学,并且结合官方的芯片手册进行讲解,不仅让学生了解相关功能的开发方式,还便于从根本上让学生了解如何学习一款单片机。
二、 本书特色
本书的理论部分较为通用,实验主要以基于ARM CortexM33内核的STM32U5处理器为基础,通过STM32CubeMX工程源码生成工具生成标准HAL库的工程文件,尽量屏蔽不同STM32处理器之间的硬件差异,兼顾传统教学比较常见的CortexM3内核的STM32F1、CortexM4内核的STM32F4等,旨在让读者学会处理器原理的同时,掌握一套通用的STM32应用开发方法。本书实验主要应用的STM32U5平台是中国电子学会嵌入式裸机中级证书推荐考试平台,是全国大学生嵌入式芯片与系统设计大赛ST赛道推荐参赛平台。总体来说,本书内容涉及的硬件平台、软件工具、源码库标准版本较新,方法主流,知识原理通用,实验案例丰富,配套教学资源完善。
配 套 资 源
程序代码等资源: 扫描目录上方的二维码下载。
教学课件、工具软件、器件手册、硬件图纸等资源: 到清华大学出版社官方网站本书页面下载,或者扫描封底的“书圈”二维码在公众号下载。
微课视频(735分钟,50集): 扫描书中相应章节中的二维码在线学习。
注: 请先扫描封底刮刮卡中的文泉云盘防盗码进行绑定后再获取配套资源。
三、 读者对象
对嵌入式开发技术感兴趣的读者;
电子信息科学与工程相关专业的本科生、研究生;
相关工程技术人员。
四、 致谢
感谢华清远见教育科技集团给本书提供的开发平台和实验资料,感谢清华大学出版社对本书出版提供的帮助。
限于编者的水平和经验,加之时间比较仓促,书中疏漏之处在所难免,敬请读者批评指正。
编者
2025年1月于北京