注册 登录 进入教材巡展
#
  • #

出版时间:2025-11-13

出版社:机械工业出版社

以下为《STM32CubeIDE嵌入式开发教程》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 机械工业出版社
  • 9787111782629
  • 1-1
  • 563113
  • 平装
  • 2025-11-13
  • 472
内容简介
本书内容涵盖嵌入式系统的概念、开发环境准备、GPIO操作、Cortex-M3微处理器架构、中断、定时器与看门狗、USART、I2C、SPI、DMA、ADC、DAC等核心知识点。本书配有丰富的实验案例,案例均基于一款性价比高的STM32F103VET6开发板,这款开发板外设接口丰富,含旋转编码器、用户按键、触摸按键、ST-Link下载调试接口、USB转TTL接口、蜂鸣器、1.3in OLED显示屏、Micro SD卡槽、舵机接口等,还预留了FSMC接口以连接触摸屏,为读者提供良好的硬件学习平台。
  本书设计了一个舵机控制器的综合案例,通过这个综合案例,读者可以系统性地学习嵌入式系统设计与实现的完整过程,包括需求分析、硬件原理介绍、软件设计与实现、系统测试与优化等环节。这个综合案例不仅帮助读者加深对各知识点的理解,还能提高动手实践能力。
  本书可作为普通高校计算机、电子信息、自动化、人工智能等相关专业的教材,也可作为从事嵌入式开发的工程技术人员的参考书。
  本书配有电子课件、教学大纲、教学视频和源代码等教学配套资源,欢迎选用本书作为教材的教师,登录www.cmpedu.com注册后下载。
目录
前言
第1章 概述 1
第2章 初识嵌入式系统 4
2.1 嵌入式系统概念 4
2.1.1 嵌入式系统的定义 4
2.1.2 嵌入式系统的关键特点 5
2.1.3 常见的嵌入式系统分类标准 6
2.1.4 嵌入式学习路线图 7
2.2 嵌入式系统的处理器技术简介 8
2.2.1 ARM的发展历程 8
2.2.2 STM32系列芯片简介 9
2.3 小结 9
2.4 习题 9
第3章 准备开发环境 11
3.1 常用的ARM单片机集成开发环境 11
3.1.1 Keil MDK 11
3.1.2 IAR Embedded Workbench 12
3.1.3 VS Code加插件 13
3.1.4 STM32CubeIDE 14
3.2 安装STM32CubeIDE 15
3.2.1 下载 15
3.2.2 安装 16
3.2.3 ST-Link固件升级 17
3.3 创建一个简单的STM32CubeIDE工程 18
3.3.1 新建工程 18
3.3.2 配置I/O接口 21
3.3.3 下载程序到开发板 23
3.4 小结 25
3.5 习题 25
第4章 通用输入/输出端口 26
4.1 STM32F10x系列常用封装 26
4.1.1 一般的常用封装 26
4.1.2 STM32F103VET6的封装 28
4.2 GPIO工作原理 29
4.2.1 内部结构框图 29
4.2.2 输入模式 30
4.2.3 输出模式 32
4.3 GPIO的寄存器 36
4.3.1 端口配置寄存器GPIOx_CRL和GPIOx_CRH 36
4.3.2 端口输入数据寄存器GPIOx_IDR 38
4.3.3 端口输出数据寄存器GPIOx_ODR 38
4.3.4 端口设置/清除寄存器GPIOx_BSRR 39
4.3.5 端口位清除寄存器GPIOx_BRR 40
4.3.6 端口配置锁定寄存器GPIOx_LCKR 40
4.4 案例:按键控制LED灯 41
4.4.1 案例目标 41
4.4.2 案例方法 41
4.4.3 实现过程 42
4.4.4 案例效果 44
4.5 小结 45
4.6 习题 45
4.7 实验:物理按键的软件消抖 45
4.7.1 实验目标 45
4.7.2 实验过程 46
4.7.3 实验结果 47
第5章 STM32F10x微处理器架构 48
5.1 计算机架构简介 48
5.1.1 由图灵机模型开始理解计算机 48
5.1.2 冯·诺依曼结构与哈佛结构介绍 51
5.1.3 算术逻辑单元 52
5.2 嵌入式系统芯片架构 52
5.2.1 Cortex-M3架构 53
5.2.2 ARM指令集与流水线 54
5.2.3 操作模式和特权等级 55
5.2.4 异常、中断和向量表 56
5.2.5 存储器映射 56
5.2.6 调试支持 57
5.3 STM32F1系列对Cortex-M3的实现 57
5.3.1 系统架构 57
5.3.2 存储器与映射 59
5.3.3 嵌入式闪存 59
5.3.4 启动配置 59
5.3.5 电源控制 61
5.3.6 复位 62
5.3.7 时钟控制 62
5.4 小结 62
5.5 习题 62
5.6 实验:流水灯的实现 63
5.6.1 实验目标 63
5.6.2 实验步骤 63
5.6.3 实验结果 65
第6章 中断和事件 66
6.1 中断的思想 66
6.1.1 中断与事件 67
6.1.2 应用场景 68
6.2 中断控制器 69
6.2.1 NVIC简介 69
6.2.2 优先级 71
6.2.3 NVIC使用方法 71
6.3 外部中断/事件控制器 73
6.3.1 EXTI框图 73
6.3.2 EXTI GPIO映像 75
6.3.3 EXTI使用步骤 76
6.4 案例:中断方式的按键控制LED 77
6.4.1 案例目标 77
6.4.2 案例方法 77
6.4.3 实现过程 78
6.4.4 案例效果 79
6.5 小结 80
6.6 习题 80
6.7 实验:上升沿和双边沿触发的中断 80
6.7.1 实验目标 80
6.7.2 实验方法 80
6.7.3 实验代码 81
6.7.4 实验现象 81
第7章 系统定时器与看门狗定时器 82
7.1 可编程计时器 82
7.1.1 计时器与计数器 83
7.1.2 ARM单片机的时钟树 84
7.2 系统定时器 86
7.2.1 工作原理 86
7.2.2 寄存器 88
7.2.3 配置与使用 89
7.3 案例:SysTick实现微秒级延时函数 90
7.3.1 案例目标 90
7.3.2 案例方法 91
7.3.3 实现过程 91
7.3.4 案例现象 94
7.4 看门狗定时器基础 95
7.4.1 独立看门狗 95
7.4.2 独立看门狗配置与使用 96
7.4.3 窗口看门狗 97
7.4.4 窗口看门狗配置与使用 101
7.5 案例:独立看门狗演示 103
7.5.1 案例目标 103
7.5.2 案例方法 104
7.5.3 实现过程 104
7.5.4 案例现象 105
7.6 小结 105
7.7 习题 106
7.8 实验:窗口看门狗实验 106
7.8.1 实验目标 106
7.8.2 实验方法 106
7.8.3 实验过程 107
7.8.4 实验现象 108
第8章 通用同步/异步通信 109
8.1 通信概述 109
8.1.1 单工和双工通信 110
8.1.2 串行通信与并行通信 110
8.1.3 串行通信的硬件连接 111
8.1.4 异步串行通信的数据帧 111
8.2 STM32F103xx的串口工作原理 112
8.2.1 USART的结构框图 112
8.2.2 使用HAL库函数操作USART 116
8.3 案例:串口以查询方式收发数据 120
8.3.1 案例目标 120
8.3.2 案例方法 120
8.3.3 实现过程 121
8.3.4 案例现象 123
8.4 小结 123
8.5 习题 124
8.6 实验:串口中断方式接收 124
8.6.1 实验目标 124
8.6.2 实验方法 124
8.6.3 实验过程 125
8.6.4 实验现象 126
第9章 实时时钟与定时器 127
9.1 实时时钟 127
9.1.1 RTC的原理 128
9.1.2 RTC相关的寄存器 129
9.1.3 RTC的使用方法 131
9.2 案例:使用RTC的时间功能 135
9.2.1 案例目标 135
9.2.2 案例方法 135
9.2.3 实现过程 136
9.2.4 案例效果 139
9.3 定时器 139
9.3.1 基本定时器 140
9.3.2 通用定时器 142
9.3.3 高级定时器 146
9.3.4 定时器使用 148
9.4 小结 150
9.5 习题 151
9.6 实验:PWM控制LED的亮度 151
9.6.1 实验目标 151
9.6.2 实验方法 152
9.6.3 实验过程 152
9.6.4 实验现象 155
第10章 集成电路间总线 156
10.1 I2C通信协议 156
10.1.1 I2C的物理层 157
10.1.2 I2C的协议层 158
10.2 STM32F103的I2C外设 160
10.2.1 总体介绍 161
10.2.2 I2C从模式 162
10.2.3 I2C主模式 163
10.2.4 中断请求 165
10.3 I2C的HAL库用法 166
10.3.1 阻塞式传输 167
10.3.2 中断式传输 168
10.4 小结 169
10.5 习题 169
10.6 实验:OLED屏的显示驱动 170
10.6.1 实验目标 170
10.6.2 实验方法 170
10.6.3 实验过程 172
10.6.4 实验现象 180
第11章 串行外设接口 181
11.1 SPI通信协议 181
11.1.1 简介 181
11.1.2 一主一从的SPI通信过程 183
11.1.3 一主多从的SPI连接方式 186
11.2 STM32F10x的SPI外设 187
11.2.1 原理框图 187
11.2.2 时序图 188
11.2.3 SPI外设的引脚 189
11.3 SPI的HAL库用法 190
11.3.1 阻塞式数据传输函数 190
11.3.2 中断式数据传输函数 192
11.4 W25Qxx原理 193
11.4.1 一般原理 193
11.4.2 数据读写方法 194
11.5 小结 197
11.6 习题 197
11.7 实验:SPI读写W25Q64 198
11.7.1 实验目标 198
11.7.2 实验方法 198
11.7.3 实验过程 199
11.7.4 实验现象 221
第12章 直接存储器访问 223
12.1 DMA一般原理 223
12.1.1 DMA思想 223
12.1.2 DMA内部结构 224
12.2 STM32F10x中的DMA控制器 226
12.2.1 DMA整体框图和DMA控制器外设框图 227
12.2.2 DMA的通道与映像 229
12.2.3 一次DMA传输流程 231
12.3 DMA的HAL库用法 232
12.3.1 初始化配置 232
12.3.2 启动DMA传输 234
12.3.3 DMA传输相关的中断 235
12.4 小结 238
12.5 习题 239
12.6 实验:串口接收数据的DMA实现 239
12.6.1 实验目标 239
12.6.2 实验方法 240
12.6.3 实验过程 241
12.6.4 实验现象 244
第13章 模-数转换器 246
13.1 ADC基本原理 246
13.1.1 模拟信号与数字信号 246
13.1.2 常见的ADC 247
13.2 STM32F103的ADC模块 249
13.2.1 ADC电源与时钟 249
13.2.2 ADC的通道和转换顺序 251
13.2.3 转换模式 253
13.2.4 采样时间与外部触发配置 254
13.2.5 数据对齐 255
13.2.6 模拟看门狗 255
13.2.7 转换结果电压计算 256
13.3 ADC的HAL库用法 256
13.3.1 规则通道 256
13.3.2 注入通道 259
13.4 小结 261
13.5 习题 261
13.6 实验:光敏电阻和可调电阻的ADC实验 261
13.6.1 实验目标 261
13.6.2 实验方法 262
13.6.3 实验过程 262
13.6.4 实验现象 266
第14章 数-模转换器 268
14.1 DAC基本原理 268
14.1.1 转换原理 268
14.1.2 常用的参数 269
14.2 STM32F103的DAC模块 270
14.2.1 结构框图 271
14.2.2 功能描述 272
14.3 DAC的HAL库用法 274
14.3.1 常用函数介绍 274
14.3.2 使用方法 275
14.4 小结 279
14.5 习题 279
14.6 实验:DAC通道1输出正弦波形 279
14.6.1 实验目标 279
14.6.2 实验方法 279
14.6.3 实验过程 280
14.6.4 实验现象 283
第15章 综合案例 284
15.1 需求分析 284
15.1.1 功能需求 284
15.1.2 硬件需求 285
15.1.3 软件需求 285
15.1.4 性能需求 286
15.2 硬件准备 287
15.2.1 舵机工作原理 287
15.2.2 旋转编码器工作原理 289
15.3 软件设计与实现 289
15.3.1 系统模块划分 290
15.3.2 软件实现 292
15.3.3 系统测试 298
15.3.4 系统优化 298
15.4 小结 299
参考文献 300