嵌入式Cortex-M3基础与项目实践 版权信息
- ISBN:9787121459818
- 条形码:9787121459818 ; 978-7-121-45981-8
- 装帧:平塑
- 册数:暂无
- 重量:暂无
- 所属分类:>>
嵌入式Cortex-M3基础与项目实践 本书特色
本书由多年深耕嵌入式单片机开发和培训的信盈达公司组织,具有资深一线实战开发经验的工程师和丰富职业院校教学经验老师联合编写,从项目实践出发,理论结合应用,详解嵌入式Cortex-M3基础知识和各项关键技术。本书提供硬件原理图资料、实例源程序、教学PPT、实验指导、芯片手册等配套资料,读者可免费下载使用。
从项目实践出发,理论结合应用,详解嵌入式Cortex-M3基础知识和各项关键技术;免费提供硬件原理图、实例源程序、教学PPT
嵌入式Cortex-M3基础与项目实践 内容简介
本教材共23章,首先介绍了嵌入式系统、STM32的软件开发环境及实验平台资源;接着详细地讲解了STM32芯片中GPIO、UART、NVIC、SysTick、Timer、WDG、RTC、DMA、ADC、DAC、I2C、SPI、LCD、TOUCH、FSMC、SDIO、CAN、USB等功能,并通过模块的学习,让读者充分掌握STM32相关知识点;同时通过项目实践,帮助读者掌握项目开发的设计流程,并把STM32模块知识充分应用到项目中,从而巩固之前所学的知识。本教材从项目实践出发,通过模块化学习并应用在实际项目中,培养读者在实际开发应用中发现问题、分析问题和解决问题的能力。同时,本教材提供硬件原理图资料、实例源程序、教学PPT、实验指导、芯片手册等配套资料,有助于提高读者的学习效果和开发能力。
嵌入式Cortex-M3基础与项目实践 目录
目 录
第1章 初识嵌入式系统 1
1.1 学习目的 1
1.2 嵌入式系统概述 1
1.2.1 嵌入式系统定义 1
1.2.2 嵌入式处理器 1
1.3 嵌入式操作系统概述 3
1.3.1 操作系统简介 4
1.3.2 嵌入式操作系统常见的术语 5
1.3.3 常见的嵌入式操作系统 7
1.4 ARM体系结构 9
1.4.1 ARM简介 9
1.4.2 ARM的应用领域及特点 10
1.4.3 ARM系列的微处理器 11
1.4.4 ARM微处理器结构 12
1.4.5 ARM的应用选型 13
1.4.6 ARM体系结构 14
1.4.7 ARM模式 16
1.4.8 ARM内部寄存器 16
1.4.9 ARM异常 17
1.5 STM32解读 22
1.5.1 STM32资源 22
1.5.2 STM32存储器组织 22
1.5.3 STM32*小系统 24
1.5.4 STM32调试接口简介 24
1.5.5 STM32内部结构 25
1.5.6 STM32时钟控制 26
1.5.7 STM32指令集 26
1.5.8 STM32F103ZET6简介 27
1.5.9 STM32F103ZET6特性 27
1.6 本章课后作业 28
第2章 环境搭建及工具使用 29
2.1 学习目的 29
2.2 Keil安装 29
2.3 ST-LINK仿真驱动安装 30
2.4 STM32库函数获得 31
2.5 基于固件库新建工程 31
2.6 MDK编译及下载调试 33
2.6.1 MDK编译 33
2.6.2 MDK仿真 34
2.7 本章课后作业 36
第3章 实验平台硬件资源 37
3.1 学习目的 37
3.2 实验平台硬件资源 37
3.3 外围硬件 39
3.3.1 CPU电路 39
3.3.2 电源电路 40
3.3.3 晶振电路 40
3.3.4 复位电路 40
3.4 本章课后作业 40
第4章 GPIO接口实验 41
4.1 学习目的 41
4.2 GPIO接口的原理 41
4.2.1 GPIO接口简介 41
4.2.2 GPIO接口类型分析 42
4.2.3 GPIO接口功能配置 43
4.2.4 GPIO接口相关寄存器 44
4.2.5 GPIO接口相关的库函数 59
4.3 LED实验硬件设计 61
4.3.1 硬件原理图 61
4.3.2 LED实验硬件原理图分析 61
4.4 LED实验软件设计 61
4.5 LED实验示例程序分析及仿真 62
4.5.1 LED初始化函数 62
4.5.2 LED闪烁函数 62
4.5.3 LED相关宏定义 63
4.5.4 LED实验main函数 63
4.6 按键输入实验 63
4.6.1 按键输入实验硬件设计 63
4.6.2 按键输入实验软件设计 64
4.6.3 按键扫描函数 64
4.6.4 KEY相关宏定义 65
4.6.5 按键实验main函数 65
4.7 本章课后作业 66
第5章 UART实验 67
5.1 学习目的 67
5.2 通用串口通信简介 67
5.2.1 通信概述 67
5.2.2 同步通信和异步通信 67
5.2.3 串行通信的数据传送速率 69
5.2.4 串行通信方式 69
5.3 STM32F1串口模块 69
5.3.1 STM32F1串口模块功能描述 69
5.3.2 STM32F1串口模块的结构 71
5.3.3 STM32F1串口模块I/O接口分布 72
5.3.4 STM32F1串口模块相关寄存器 76
5.3.5 STM32F1串口模块相关库函数 85
5.4 UART实验硬件设计 89
5.5 UART实验软件设计 90
5.6 UART实验示例程序分析及仿真 90
5.6.1 UART 初始化函数 90
5.6.2 UART 测试函数 91
5.6.3 UART实验main函数 91
5.6.4 仿真下载测试 92
5.7 本章课后作业 92
第6章 外部中断实验 93
6.1 学习目的 93
6.2 中断概述 93
6.2.1 中断定义 93
6.2.2 中断的意义 93
6.2.3 中断优先级及中断嵌套 94
6.3 Cortex-M3中断体系 94
6.3.1 NVIC简介 94
6.3.2 NVIC优先级表示 95
6.3.3 Cortex-M3异常中断向量表 96
6.3.4 STM32F1异常中断向量表 96
6.3.5 STM32F1异常中断向量表的定义 98
6.3.6 Cortex-M3中断设置相关库函数 98
6.3.7 中断服务函数 100
6.4 外部中断 101
6.4.1 外部中断简介 101
6.4.2 外部中断/事件控制器的结构 101
6.4.3 外部中断线配置 102
6.4.4 外部中断相关库函数 102
6.4.5 NVIC相关库函数 104
6.5 外部中断实验硬件设计 105
6.6 外部中断实验软件设计 105
6.7 外部中断实验示例程序分析及仿真 106
6.7.1 外部中断0初始化函数 106
6.7.2 外部中断服务函数 107
6.8 本章课后作业 107
第7章 SysTick定时器实验 108
7.1 学习目的 108
7.2 SysTick定时器概述 108
7.2.1 SysTick定时器的作用 108
7.2.2 SysTick定时器的结构 109
7.2.3 SysTick定时器的寄存器 109
7.2.4 SysTick定时器的库函数 111
7.3 SysTick定时器实验硬件设计 112
7.4 SysTick定时器实验软件设计 112
7.5 SysTick定时器实验示例程序分析及仿真 112
7.5.1 SysTick初始化函数 112
7.5.2 SysTick定时器实验main函数 113
7.6 本章课后作业 113
第8章 基本定时器实验 114
8.1 学习目的 114
8.2 基本定时器 114
8.2.1 基本定时器简介 114
8.2.2 基本定时器特征 114
8.2.3 基本定时器的结构 114
8.2.4 基本定时器时基单元 115
8.2.5 基本定时器相关库函数 116
8.3 基本定时器实验硬件设计 119
8.4 基本定时器实验软件设计 119
8.5 基本定时器实验示例程序分析及仿真 119
8.5.1 基本定时器初始化函数 119
8.5.2 基本定时器中断服务函数 120
8.6 本章课后作业 120
第9章 通用定时器实验 121
9.1 学习目的 121
9.2 通用定时器概述 121
9.2.1 通用定时器介绍 121
9.2.2 通用定时器的结构 121
9.2.3 通用定时器PWM应用 122
9.2.4 通用定时器捕获模式 123
9.2.5 通用定时器相关库函数 124
9.3 通用定时器实验硬件设计 127
9.4 通用定时器实验软件设计 127
9.5 通用定时器实验示例程序分析及仿真 127
9.5.1 通用定时器3初始化函数 127
9.5.2 通用定时器3中断服务函数 128
9.5.3 通用定时器实验main函数 129
9.6 本章课后作业 129
第10章 看门狗实验 130
10.1 学习目的 130
10.2 独立看门狗 130
10.2.1 独立看门狗的特征 130
10.2.2 独立看门狗的结构 131
10.2.3 独立看门狗的超时时间 131
10.2.4 独立看门狗相关库函数 132
10.3 独立看门狗实验硬件设计 134
10.4 独立看门狗实验软件设计 134
10.5 独立看门狗实验示例程序分析及仿真 134
10.5.1 独立看门狗初始化函数 134
10.5.2 独立看门狗实验main函数 135
10.6 窗口看门狗 136
10.6.1 窗口看门狗特征 136
10.6.2 窗口看门狗的结构 136
10.6.3 窗口看门狗的超时时间 136
10.6.4 窗口看门狗相关库函数 137
10.7 窗口看门狗实验硬件设计 140
10.8 软件看门狗实验软件设计 140
10.9 窗口看门狗实验示例程序分析及仿真 140
10.9.1 窗口看门狗初始化函数 140
10.9.2 窗口看门狗中断服务函数 141
10.9.3 窗口看门狗实验main函数 141
10.10 本章课后作业 142
第11章 RTC实验 143
11.1 学习目的 143
11.2 RTC概述 143
11.3 常用RTC 143
11.3.1 DS1302 143
11.3.2 PCF8563 143
11.4 STM32F1 RTC 144
11.4.1 STM32F1 RTC概述 144
11.4.2 STM32F1 RTC的结构 145
11.4.3 STM32F1 RTC时钟源 145
11.4.4 STM32F1 RTC时钟源相关库函数介绍 147
11.4.5 STM32F1 RTC相关库函数 150
11.5 RTC实验硬件设计 155
11.6 RTC实验软件设计 155
11.7 RTC实验示例程序分析及仿真 156
11.7.1 RTC初始化函数 156
11.7.2 RTC设置及显示时间函数 157
11.7.3 RTC实验main函数 158
11.7.4 RTC实验测试结果 158
11.8 本章课后作业 158
第12章 DMA模块实验 159
12.1 学习目的 159
12.2 DMA模块 159
12.3 STM32F1 DMA模块 159
12.3.1 STM32F1 DMA模块的主要特性 159
12.3.2 STM32F1 DMA模块的结构 160
12.3.3 STM32F1 DMA模块的功能 160
12.3.4 STM32F1 DMA模块相关库函数 162
12.4 DMA模块实验硬件设计 166
12.5 DMA模块实验软件设计 166
12.6 DMA模块实验示例程序分析及仿真 166
12.6.1 DMA模块初始化函数 166
12.6.2 DMA模块启动发送函数 167
12.6.3 DMA模块实验main函数 167
12.6.4 DMA模块实验测试结果 168
12.7 本章课后作业 168
第13章 ADC实验 169
13.1 学习目的 169
13.2 通用ADC介绍 169
13.2.1 ADC概述 169
13.2.2 ADC的工作原理 169
13.3 STM32F1 ADC功能 170
13.3.1 STM32F1 ADC概述 170
13.3.2 STM32F1 ADC的特征 171
13.3.3 STM32F1 ADC的结构 171
13.3.4 STM32F1 ADC的开关控制 171
13.3.5 STM32F1 ADC的时钟配置 171
13.3.6 STM32F1 ADC的通道选择 172
13.3.7 STM32F1 ADC的转换模式 173
13.3.8 STM32F1 ADC的转换时序 173
13.3.9 STM32F1 ADC的扫描模式 174
13.3.10 STM32F1 ADC的间断模式 174
13.3.11 STM32F1 ADC的数据对齐方式 175
13.3.12 STM32F1 ADC的采样时间 175
13.3.13 STM32F1 ADC的中断 175
13.3.14 STM32F1 ADC的DMA请求 176
13.3.15 STM32F1 ADC相关库函数 176
13.4 ADC实验硬件设计 182
13.5 ADC实验软件设计 182
13.6 ADC实验示例程序分析及仿真 182
13.6.1 ADC初始化函数 183
13.6.2 ADC转换函数 184
13.6.3 ADC实验main函数 184
13.6.4 ADC实验测试结果 185
13.7 本章课后作业 185
第14章 DAC实验 186
14.1 学习目的 186
14.2 通用DAC 186
14.2.1 DAC的工作原理 186
14.2.2 DAC的类型 187
14.3 STM32F1 DAC功能 187
14.3.1 STM32F1 DAC简介 187
14.3.2 STM32F1 DAC的主要特征 187
14.3.3 STM32F1 DAC的结构 188
14.3.4 STM32F1 DAC通道使能 188
14.3.5 STM32F1 DAC输出缓存 189
14.3.6 STM32F1 DAC数据格式 189
14.3.7 STM32F1 DAC转换使能 189
14.3.8 STM32F1 DAC触发方式 189
14.3.9 STM32F1 DAC DMA请求 190
14.3.10 STM32F1 DAC相关库函数介绍 190
14.4 DAC实验硬件设计 192
14.5 DAC实验软件设计 192
14.6 DAC实验示例程序分析及仿真 192
14.6.1 DAC初始化函数 192
14.6.2 DAC输出值设置函数 194
14.6.3 DAC实验main函数 194
14.6.4 DAC实验测试结果 195
14.7 本章课后作业 195
第15章 I2C总线实验 196
15.1 学习目的 196
15.2 I2C总线知识 196
15.2.1 I2C总线物理拓扑结构 196
15.2.2 I2C总线特征 197
15.3 I2C总线协议 197
15.3.1 I2C总线基本时序 197
15.3.2 I2C总线数据传输时序 197
15.3.3 I2C器件寻址通信时序 198
15.3.4 I2C总线的操作 198
15.4 I2C总线时序编程 199
15.4.1 I2C总线起始条件 199
15.4.2 I2C总线停止条件 199
15.4.3 I2C总线发送应答信号或非应答信号 200
15.4.4 I2C总线检测应答信号或非应答信号 200
15.4.5 I2C总线发送数据 200
15.4.6 I2C总线接收数据 201
15.5 AT24C02编程 201
15.5.1 AT24C02基本功能介绍 201
15.5.2 AT24C02写时序 202
15.5.3 AT24C02读时序 203
15.6 I2C总线模拟时序实验硬件设计 203
15.7 I2C总线模拟时序实验软件设计 204
15.8 I2C总线模拟时序实验示例程序分析及仿真 204
15.8.1 AT24C02单字节写函数 204
15.8.2 AT24C02单字节读函数 205
15.8.3 I2C总线实验main函数 205
15.8.4 I2C总线模拟时序实验测试结果 206
15.9 本章课后作业 206
第16章 SPI总线实验 207
16.1 学习目的 207
16.2 通用SPI总线 207
16.2.1 SPI总线协议简介 207
16.2.2 SPI总线的物理拓扑结构 207
16.2.3 SPI总线的通信原理 208
16.3 STM32F1 SPI模块 208
16.3.1 STM32F1 SPI模块简介 208
16.3.2 STM32F1 SPI模块的主要特性 209
16.3.3 STM32F1 SPI模块的结构 209
16.3.4 STM32F1 SPI模块的时序 211
16.3.5 STM32F1 SPI模块的数据发送与接收 212
16.3.6 STM32F1 SPI模块相关库函数 212
16.4 W25Q64 215
16.4.1 W25Q64的基本功能 215
16.4.2 W25Q64的指令 215
16.4.3 W25Q64的页编程时序 216
16.4.4 W25Q64的读数据时序 217
16.4.5 W25Q64的扇区擦除时序 217
16.5 SPI总线实验硬件设计 218
16.6 SPI总线实验软件设计 218
16.7 SPI总线实验示例程序分析及仿真 219
16.7.1 SPI2模块的初始化函数 219
16.7.2 SPI2模块的数据发送/接收函数 219
16.7.3 W25Q64的写数据函数 220
16.7.4 W25Q64的读数据函数 220
16.7.5 SPI总线实验测试结果 221
16.8 本章课后作业 221
第17章 TFT LCD屏实验 222
17.1 学习目的 222
17.2 LCD屏 222
17.2.1 常见的显示设备 222
17.2.2 常见的彩色显示屏类别 222
17.2.3 LCD系统 224
17.2.4 LCD屏的主要参数 224
17.3 TFT LCD屏的工作原理 225
17.3.1 并行通信总线协议简介 225
17.3.2 ILI9486 225
17.3.3 取模软件应用 228
17.4 TFT LCD屏实验硬件设计 229
17.5 TFT LCD屏实验软件设计 229
17.6 TFT LCD屏实验示例程序分析及仿真 230
17.6.1 TFT LCD屏画点函数 230
17.6.2 TFT LCD屏显示字符函数 230
17.6.3 TFT LCD屏实验测试结果 231
17.7 本章课后作业 231
第18章 触摸屏实验 232
18.1 学习目的 232
18.2 触摸屏 232
18.2.1 触摸屏的分类 232
18.2.2 电阻式触摸屏的工作原理 232
18.2.3 电阻式触摸屏的校准原理 233
18.2.4 电阻式触摸屏的校准算法 234
18.2.5 XPT2046 235
18.3 触摸屏实验硬件设计 237
18.4 触摸屏实验软件设计 237
18.5 触摸屏实验示例程序分析及仿真 238
18.5.1 触摸屏SPI数据发送函数 238
18.5.2 触摸屏SPI数据接收函数 239
18.5.3 触摸屏校准函数 239
18.5.4 触摸屏实验测试结果 241
18.6 本章课后作业 241
第19章 FSMC实验 242
19.1 学习目的 242
19.2 FSMC概述 242
19.2.1 FSMC简介 242
19.2.2 FSMC结构 242
19.2.3 FSMC 映射地址空间 243
19.2.4 NOR闪存和PSRAM控制器的时序 245
19.2.5 NOR闪存和PSRAM控制器库函数介绍 246
19.3 FSMC实验硬件设计 247
19.4 FSMC实验软件设计 247
19.5 FSMC实验示例程序分析及仿真 248
19.5.1 FSMC初始化函数 248
19.5.2 FSMC实验main函数 249
19.6 本章课后作业 250
第20章 SDIO总线实验 251
20.1 学习目的 251
20.2 SDIO总线概述 251
20.2.1 SDIO总线简介 251
20.2.2 SDIO总线的信号 251
20.2.3 SDIO总线的指令 252
20.3 STM32F1 SDIO总线概述 253
20.3.1 STM32F1 SDIO总线的特性 253
20.3.2 STM32F1 SDIO总线的功能 253
20.3.3 STM32F1 SDIO总线的指令和响应 254
20.3.4 STM32F1 SDIO卡的指令 256
20.3.5 STM32F1 SDIO总线的数据传输方式 257
20.3.6 STM32F1 SDIO总线相关库函数 258
20.4 SDIO总线实验硬件设计 262
20.5 SDIO总线实验软件设计 262
20.6 SDIO总线实验示例程序分析及仿真 264
20.6.1 SD卡初始化函数 264
20.6.2 SD卡读数据函数 265
20.6.3 SD卡写数据函数 266
20.6.4 SDIO总线实验测试结果 266
20.7 本章课后作业 267
第21章 CAN总线实验 268
21.1 学习目的 268
21.2 CAN总线概述 268
21.2.1 CAN总线简介 268
21.2.2 CAN总线的主要特性 269
21.2.3 CAN总线的分层结构 269
21.2.4 CAN总线物理层的定义 270
21.2.5 CAN总线的数据帧格式 271
21.2.6 CAN总线的仲裁机制 272
21.2.7 CAN总线的错误检测机制 272
21.2.8 CAN总线的位时序特性 273
21.2.9 CAN总线的同步机制 274
21.3 bxCAN 275
21.3.1 bxCAN的主要特点 275
21.3.2 bxCAN的功能描述 276
21.3.3 bxCAN的工作模式 277
21.3.4 bxCAN的测试模式 277
21.3.5 bxCAN的位时间特性 278
21.3.6 bxCAN的报文过滤 279
21.3.7 bxCAN相关库函数 279
21.4 CAN总线实验硬件设计 284
21.5 CAN总线实验软件设计 284
21.6 CAN总线实验示例程序分析及仿真 285
21.6.1 CAN发送数据函数 285
21.6.2 CAN接收数据函数 285
21.6.3 CAN总线实验测试结果 286
21.7 本章课后作业 286
第22章 USB实验 287
22.1 学习目的 287
22.2 USB概述 287
22.2.1 USB简介 287
22.2.2 USB版本 287
22.2.3 USB优点 288
22.2.4 USB系统 288
22.2.5 USB数据流 289
22.3 STM32F1 USB模块 289
22.3.1 STM32F1 USB模块特点 289
22.3.2 STM32F1 USB模块的结构 290
22.3.3 STM32F1 USB模块的功能 290
22.3.4 STM32F1 USB模块相关库函数 292
22.3.5 USB实验硬件设计 292
22.3.6 USB实验软件设计 293
22.3.7 USB实验测试结果 294
22.4 本章课后作业 295
第23章 项目实践 296
23.1 学习目的 296
23.2 项目相关知识 296
23.2.1 项目的定义及特点 296
23.2.2 项目评估标准 296
23.3 项目流程 296
23.3.1 项目规划 297
23.3.2 项目软件开发 297
23.3.3 项目硬件开发 297
23.3.4 项目文档的编写 298
23.4 基于STM32的蓝牙热敏打印机项目实践 298
23.4.1 项目特点 299
23.4.2 项目需要的工具及软件 299
23.4.3 热敏打印机的打印头性能 299
23.4.4 字库的原理与应用 304
23.4.5 蓝牙技术概述与应用 309
23.4.6 蓝牙热敏打印机硬件设计 313
23.4.7 蓝牙热敏打印机软件设计 313
23.4.8 项目实践测试结果 313
23.5 本章课后作业 313
参考文献 314
展开全部
嵌入式Cortex-M3基础与项目实践 作者简介
张叶茂,副教授、高级工程师,南宁职业技术学院智能制造学院副院长、南宁市高层次人才。获广西教学成果奖一等奖1项、二等奖2项;主持省部级以上课题3项,主持完成市厅级以上课题7项,主持完成智能产品开发与应用专业广西现代学徒制试点建设。近5年来,获省级教学能力大赛一等奖1项;授权专利20项;指导学生参加各类技能竞赛、大学生电子设计竞赛获得国家级奖励4次、省级以上奖励10余次,并被授予广西优秀指导教师称号;主编出版了《基于ARM Cortex-M3的STM32微控制器实战教程(第二版))》《C语言程序设计实用教程》《μCOS嵌入式操作系统原理与应用》等教材。