暂无评论
图文详情
- ISBN:9787121496868
- 装帧:平塑
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:316
- 出版时间:2025-03-01
- 条形码:9787121496868 ; 978-7-121-49686-8
内容简介
本书涵盖了基于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
**篇 基于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
展开全部
作者简介
沈红卫,历任绍兴文理学院自动化系副教授,绍兴文理学院教务处处长(教授),现任绍兴文理学院工学院院长。主要著作有《单片机应用系统设计实例与分析》、《基于单片机的智能系统设计与实现》等。
本类五星书
本类畅销
-
污水处理工程工艺设计从入门到精通
¥70.3¥89.0 -
发电厂电气部分
¥34.6¥58.0 -
植物进化的故事
¥19.9¥59.0 -
赶往火星:红色星球定居计划
¥44.5¥58.0 -
果脯蜜饯加工技术
¥4.5¥12.0 -
数控车工
¥5.9¥11.5 -
数据驱动的剩余寿命预测与维护决策技术
¥63.4¥79.0 -
手术机器人导航与控制
¥127.4¥169.8 -
射频干扰袖珍手册
¥18.4¥29.0 -
汽车车身构造与修复
¥30.7¥45.0 -
群目标分辨雷达初速测量技术
¥42.4¥69.0 -
秸秆挤压膨化技术及膨化腔流道仿真研究
¥40.6¥55.0 -
NVH前沿科技与工程应用
¥109.7¥159.0 -
电力系统分析
¥23.8¥38.0 -
继电保护原理
¥30.4¥49.0 -
不确定条件下装备剩余寿命预测方法及应用
¥60.4¥99.0 -
船舶分段装配
¥58.6¥80.0 -
基于深度学习的复杂退化系统剩余寿命智能预测技术
¥54.4¥89.0 -
火星探测器轨道动力学与控制
¥59.8¥98.0 -
美军联合作战弹药保障
¥35.8¥58.0