技术教育社区
www.teccses.org

STM32单片机应用与全案例实践(第2版)

封面

作者:沈红卫 著

页数:316

出版社:电子工业出版社

出版日期:2025

ISBN:9787121496868

电子书格式:pdf/epub/txt

网盘下载地址:下载STM32单片机应用与全案例实践(第2版)

内容简介

本书涵盖了基于ARM的STM32 HAL库的基本概念、基本原理、应用技术。硬件原理的阐述以学生”适用、易学、掌握”为原则,降低读者入门和理解的难度。STM32的软件设计基于HAL库,方便读者上手。本书在内容组织和框架设计上具有两个鲜明特点:全案例、基于读者学习。从读者学习的角度,组织每个章节的内容体系,对STM32常用的典型外设模块的原理及其应用设计均以若干个完整案例呈现,同时也给出了一个完整的综合性工程案例,这些都十分有利于学习者学习和模仿。

作者简介

沈红卫,历任绍兴文理学院自动化系副教授,绍兴文理学院教务处处长(教授),现任绍兴文理学院工学院院长。主要著作有《单片机应用系统设计实例与分析》、《基于单片机的智能系统设计与实现》等。

目录

目 录

第一篇 基于HAL + STM32CubeIDE

第1章 如何学习STM32 2

1.1 学习STM32必须具备的基础知识 2

1.2 STM32的基本架构和基本原理 3

1.2.1 嵌入式与ARM 3

1.2.2 什么是STM32 4

1.2.3 STM32的内部结构 5

1.2.4 STM32的时钟树 6

1.2.5 STM32典型芯片 9

1.3 STM32的开发 10

1.3.1 STM32的4种开发模式 10

1.3.2 HAL库的文件结构 12

1.3.3 基于HAL库开发中必须掌握的几个概念 14

1.3.4 如何学习STM32 16

1.3.5 学习STM32所需工具和平台 16

1.4 STM32的最小系统—学习和开发的最小平台 18

1.5 本章小结 20

思考与实践 21

第2章 STM32的工程创建和调试 22

2.1 STM32CubeMX与STM32CubeIDE 22

2.1.1 什么是STM32CubeMX 22

2.1.2 STM32CubeIDE与STM32CubeMX的区别 22

2.2 STM32CubeIDE开发平台的搭建 23

2.2.1 IDE平台的安装 23

2.2.2 Packs包下载与安装 26

2.3 新建工程流程 29

2.4 STM32CubeIDE的功能及其基本操作 37

2.4.1 工具栏介绍 37

2.4.2 Debug调试模式 38

2.4.3 窗口和文本设置 39

2.5 本章小结 41

思考与实践 41

第3章 通用输入/输出(GPIO)口 42

3.1 STM32 GPIO口概述 42

3.2 GPIO口的工作原理 42

3.2.1 GPIO引脚介绍 42

3.2.2 GPIO口的内部结构 43

3.2.3 GPIO口的工作模式 46

3.3 GPIO口配置与应用 50

3.3.1 GPIO口配置解析 50

3.3.2 GPIO函数 51

3.4 GPIO应用实例 52

3.4.1 GPIO输出控制 52

3.4.2 单功能按键输入 57

3.4.3 复用功能按键输入 61

3.5 本章小结 63

思考与实践 64

第4章 中断 65

4.1 中断及其基本原理 65

4.1.1 什么是中断 65

4.1.2 中断系统 66

4.1.3 中断处理流程 67

4.2 嵌套向量中断控制器 68

4.2.1 嵌套向量中断控制器的主要功能 68

4.2.2 异常和中断 69

4.2.3 EXTI 71

4.3 EXTI的配置与应用 73

4.3.1 EXTI配置解析 73

4.3.2 EXTI函数 76

4.4 EXTI应用实例 76

4.4.1 EXTI控制LED翻转 76

4.4.2 EXTI嵌套LED控制 83

4.5 本章小结 89

思考与实践 90

第5章 串口(USART) 91

5.1 串行通信 91

5.1.1 嵌入式系统中的通信 91

5.1.2 同步/异步串行通信 92

5.1.3 UART 93

5.2 STM32的USART 95

5.2.1 USART接口 95

5.2.2 5路USART的引脚关系 96

5.2.3 USART的应用步骤 97

5.3 串口通信配置 97

5.3.1 串口设备配置解析 97

5.3.2 常用的UART函数 99

5.3.3 串口重定向 100

5.3.4 串口调试助手 101

5.4 串口应用实例 102

5.4.1 串口收发轮询方式 102

5.4.2 串口收发中断方式 109

5.4.3 串口空闲中断方式 111

5.5 本章小结 112

思考与实践 112

第6章 I2C和SPI 113

6.1 STM32的I2C总线 113

6.1.1 I2C总线概述 113

6.1.2 I2C总线的工作原理和注意事项 114

6.1.3 STM32的I2C总线的基本特点 116

6.2 STM32的I2C总线的应用要领 117

6.2.1 关于STM32的I2C模块 117

6.2.2 I2C总线死锁的原因及其解决办法 118

6.2.3 STM32的I2C接收和发送流程 118

6.3 硬件I2C与软件I2C 119

6.3.1 硬件I2C设备配置流程 119

6.3.2 接口函数及其应用 123

6.3.3 软件I2C实现 126

6.4 STM32的SPI 129

6.4.1 硬件结构与时序 129

6.4.2 STM32 SPI的构成 131

6.4.3 STM32的SPI的主要工作流程 132

6.4.4 SPI函数及其应用 132

6.4.5 设备配置流程 133

6.5 I2C和SPI应用实例 135

6.5.1 I2C读写AT24C02 135

6.5.2 基于SPI总线实现OLED显示 140

6.6 本章小结 152

思考与实践 153

第7章 定时器 154

7.1 STM32定时器 154

7.1.1 高级定时器 154

7.1.2 通用定时器 155

7.1.3 基本定时器 156

7.2 PWM 157

7.2.1 什么是PWM 157

7.2.2 PWM的主要参数 157

7.2.3 PWM的工作原理 157

7.2.4 PWM的应用 158

7.3 定时器配置 159

7.3.1 定时器模式 159

7.3.2 定时器参数 160

7.3.3 定时器中断 161

7.4 主要接口函数 162

7.4.1 定时器启停 162

7.4.2 比较输出 162

7.4.3 PWM输出 163

7.4.4 输入捕获 164

7.5 定时器应用实例 165

7.5.1 定时器控制LED 165

7.5.2 PWM呼吸灯 166

7.5.3 输入捕获 168

7.6 本章小结 171

思考与实践 173

第8章 直接存储器访问(DMA) 174

8.1 STM32的DMA 174

8.1.1 什么是DMA 174

8.1.2 DMA控制器的功能框图 174

8.1.3 DMA的基本原理 175

8.1.4 DMA控制器的主要特点 175

8.2 DMA的配置要点 176

8.2.1 DMA控制器配置参数 176

8.2.2 DMA的优先级及其仲裁 176

8.2.3 DMA通道 177

8.2.4 DMA中断请求 178

8.2.5 DMA注意事项 178

8.3 DMA配置 178

8.3.1 设备配置解析 178

8.3.2 配置函数解析 181

8.4 DMA应用实例 181

8.4.1 内存到内存传输方式应用(MEMTOMEM) 181

8.4.2 外设到内存传输方式应用 184

8.5 本章小结 187

思考与实践 187

第9章 ADC 188

9.1 STM32F1的ADC 188

9.1.1 ADC及其基本特性 188

9.1.2 ADC误差来源及消除措施 190

9.2 STM32外设模块ADC的工作流程与编程要点 191

9.2.1 ADC的工作流程 191

9.2.2 ADC编程的要点 192

9.3 ADC配置 193

9.3.1 设备配置解析 193

9.3.2 接口函数 200

9.4 ADC应用实例 203

9.4.1 单ADC单通道应用示例 203

9.4.2 单ADC多通道应用示例 207

9.5 本章小结 211

思考与实践 211

第10章 DAC 212

10.1 STM32的DAC 212

10.1.1 DAC的功能、特点 212

10.1.2 DAC的主要技术参数 213

10.1.3 DAC配置的基本过程 214

10.2 DAC配置 214

10.2.1 设备配置解析 214

10.2.2 接口函数 217

10.3 DAC应用实例 219

10.3.1 DAC输出正弦波 219

10.3.2 DAC输出三角波 221

10.4 本章小结 224

思考与实践 224

第11章 Flash 225

11.1 STM32的Flash存储器及其基本特性 225

11.1.1 嵌入式系统中的存储器 225

11.1.2 Flash模块的组织关系 226

11.1.3 STM32的Flash架构 226

11.1.4 Flash的相关操作 227

11.1.5 选项字节编程 228

11.2 Flash配置与接口函数 229

11.2.1 写操作函数 229

11.2.2 解锁与上锁函数 230

11.2.3 Flash擦除函数 230

11.2.4 读操作 231

11.2.5 选项字节相关操作函数 231

11.3 Flash应用实例 232

11.3.1 功能描述 232

11.3.2 软件设计 232

11.3.3 实验结果 234

?

11.4 本章小结 237

思考与实践 237

第12章 综合性设计项目 238

12.1 信号发生与采集 238

12.1.1 项目性能和功能要求 238

12.1.2 外设配置 238

12.1.3 程序设计 242

12.1.4 运行结果 242

12.2 烟雾报警及其处置的模拟 243

12.2.1 项目设计要求 243

12.2.2 外围电路设计 243

12.2.3 外设配置 244

12.2.4 程序设计 245

12.2.5 运行结果 246

12.3 串口触摸屏设计 246

12.3.1 功能描述 246

12.3.2 串口触摸屏的程序设计 246

12.3.3 STM32的外设配置 249

12.3.4 程序设计 250

12.3.5 运行结果 251

12.4 本章小结 251

思考与实践 251

第二篇 基于固件库+Keil(MDK-ARM)

第13章 基于固件库的开发及其示例 254

13.1 STM32的最小系统 254

13.2 STM32工程模板的建立 255

13.2.1 STM32的固件库 255

13.2.2 新建工程模板的第一步——复制固件库文件 259

13.2.3 新建工程模板的第二步——新建一个Keil工程 260

13.2.4 关于创建工程模板的简单小结 266

13.3 程序的烧写 267

13.3.1 基于串口的程序下载(烧写)方式 268

13.3.2 基于JTAG(SWD)的程序下载(烧写)方式 269

13.4 程序的调试 271

13.5 模板的使用 273

13.6 3个GPIO输出的范例——STM32中实现 延时的三种常用方法 274

13.6.1 第一个LED工程——基于延时函数的延时 274

13.6.2 第二个LED工程——SysTick中断延时 276

13.6.3 第三个LED工程——定时器中断延时 278

13.7 本章小结 281

思考与实践 282

第14章 液晶显示在STM32中的应用——基于固件库 283

14.1 STM32与12864液晶模块连接的硬件接口 283

14.1.1 12864液晶模块的基本原理 283

14.1.2 硬件接口 284

14.2 STM32与12864液晶模块连接的软件 接口实现——查询“忙”状态 284

14.2.1 程序设计思想 284

14.2.2 程序实现 285

14.2.3 程序演示 303

14.3 本章小结 304

思考与实践 304

赞助用户下载地址

立即下载

(解压密码:www.teccses.org)

Article Title:《STM32单片机应用与全案例实践(第2版)》
Article link:https://www.teccses.org/43848.html