书籍详情
STM32Cube高效开发教程:基础+高级篇(套装2册)
作者:王维波,鄢志丹,王钊 著
出版社:人民邮电出版社
出版时间:2022-05-01
ISBN:9787115006769
定价:¥249.70
购买这本书可以去
内容简介
《STM32Cube高效开发教程(基础篇)》 STM32CubeMX和STM32CubeIDE是ST公司提供的用于STM32开发的免费工具软件,是STM32Cube生态系统的核心工具软件。本书详细介绍这两个软件的用法,然后以STM32F407为研究对象,采用STM32Cube开发方式介绍STM32F407各种系统功能和常用外设的编程开发,包括外设基本工作原理和接口电路、HAL驱动程序功能和使用方法,以及针对一个STM32F407开发板的完整编程示例。通过阅读本书,读者可以掌握STM32Cube开发方式和工具软件的使用,掌握基于HAL库的STM32F407系统功能和常用外设的编程开发方法。本书适合具有C语言、微机原理或单片机基础,想要学习STM32开发技术的读者阅读,可以作为高等院校电子、自动化、计算机、测控等专业的教材,也可作为STM32应用开发的参考书。 《STM32Cube高效开发教程(高级篇)》 本书介绍 STM32 开发的一些内容。第一部分详细介绍嵌入式操作系统 FreeRTOS 的使用;第二部分介绍使用 FatFS 管理 SPI-Flash 芯片、SD 卡和 U 盘上的文件系统;第三部分介绍 BMP 和 JPG 图片的获取与显示,触摸屏的使用,DCMI 接口和数字摄像头等。全书使用 STM32CubeMX 和 STM32CubeIDE软件开发例程,讲解 FreeRTOS、FatFS、LibJPEG、USB_Host、USB_Device 等中间件以及 SDIO、USB-OTG、DCMI 等外设的原理和使用方法,并针对一个 STM32F407 开发板编写了完整示例项目。通过阅读本书,读者可以掌握 STM32 开发中的嵌入式操作系统、文件系统、触摸屏等高级软硬件的开发方法。本书适合已经掌握 STM32CubeMX 和 STM32CubeIDE 软件的使用以及 STM32 常用外设的 STM32Cube开发等相关基础内容的读者阅读,可以作为高等院校电子、自动化、计算机类专业的教学用书,也可作为STM32 嵌入式系统开发的参考书。
作者简介
王维波,博士、中国石油大学(华东)控制科学与工程学院教师。从事测控与仪器开发领域的教学和研究工作,主要研究方向是地球物理探测仪器开发、数据处理方法和软件开发。参与完成国家自然科学基金、山东省重点研发计划等多个科研项目,发表论文 20 余篇。著有《Qt 5.9 C++ 开发指南》和《Python Qt GUI 与数据可视化编程》。鄢志丹,博士、中国石油大学(华东)控制科学与工程学院教师。从事随钻测控技术、自抗扰控制方法、井下仪器开发、微弱信号处理等方面的研究工作。主持国家自然科学基金、中国博士后科学基金、山东省自然科学基金等 10 余个科研项目,获授权发明专利 10 余项,发表论文 30 余篇。王钊,博士、中国石油大学(华东)控制科学与工程学院教师。从事自动化相关的教学和研究工作,主要研究方向是非线性系统的非光滑控制研究、故障诊断、工业过程控制等。主持山东省中青年科学家科研奖励基金项目 1 项,发表论文 20 余篇,作为副主编编写教材1 部。
目录
《STM32Cube高效开发教程(基础篇)》
第一部分 软硬件基础
第1章 概述 2
1.1 STM32系列单片机 2
1.2 STM32的器件驱动库 3
1.3 STM32Cube生态系统 4
1.4 STM32Cube开发方式 8
第2章 STM32F407和开发板 10
2.1 STM32F407简介 10
2.2 STM32F407开发板 17
2.3 仿真器 23
第3章 STM32CubeMX的使用 24
3.1 安装STM32CubeMX 24
3.2 安装MCU固件包 25
3.3 软件功能和基本使用 29
3.4 项目示例:LED初始输出 49
第4章 STM32CubeIDE的使用 51
4.1 安装STM32CubeIDE 51
4.2 基本概念和MCU固件库设置 52
4.3 C/C++场景的界面功能和操作 58
4.4 CubeMX生成项目的文件组成 63
4.5 项目管理、构建和下载调试 72
4.6 使用内置的CubeMX 79
4.7 CubeIDE使用偏好设置 81
4.8 HAL库的一些基本问题 83
第5章 STM32CubeMonitor的使用 85
5.1 STM32CubeMonitor功能简介 85
5.2 CubeMonitor基本操作 87
5.3 CubeMonitor基本功能使用示例 92
5.4 CubeMonitor的使用小结 113
第二部分 系统功能和常用外设的使用
第6章 GPIO输入/输出 116
6.1 GPIO功能概述 116
6.2 GPIO的HAL驱动程序 117
6.3 GPIO使用示例 120
6.4 作为公共驱动程序 130
第7章 中断系统和外部中断 131
7.1 STM32F407的中断 131
7.1.1 中断向量表 131
7.1.2 中断优先级 134
7.1.3 中断设置相关HAL驱动程序 135
7.2 外部中断EXTI 136
7.2.1 外部中断功能和外部中断线 136
7.2.2 外部中断相关HAL函数 138
7.3 外部中断使用示例 141
7.3.1 示例功能和CubeMX项目设置 141
7.3.2 项目初始代码分析 142
7.3.3 编写用户功能代码 145
7.3.4 中断优先级的测试 146
第8章 FSMC连接TFT LCD 148
8.1 FSMC连接TFT LCD的原理 148
8.2 FSMC连接LCD的电路和接口初始化 151
8.3 使用LCD驱动程序 159
8.4 作为公共驱动程序 172
第9章 基础定时器 174
9.1 定时器概述 174
9.2 基础定时器内部结构和功能 175
9.3 基础定时器HAL驱动程序 177
9.4 外设的中断处理概念小结 182
9.5 基础定时器使用示例 185
第10章 通用定时器 192
10.1 通用定时器功能概述 192
10.2 典型功能原理和HAL驱动 196
10.3 示例1:生成PWM波 204
10.4 示例2:输出比较 210
10.5 示例3:输入PWM 213
第11章 实时时钟 220
11.1 RTC功能概述 220
11.2 周期唤醒和闹钟 227
11.3 备份寄存器 239
11.4 入侵检测和时间戳 246
第12章 USART/UART通信 255
12.1 USART/UART接口概述 255
12.2 串口的HAL驱动程序 259
12.3 串口通信示例 264
第13章 DMA 276
13.1 DMA功能概述 276
13.2 DMA的HAL驱动程序 280
13.3 串口的DMA传输示例 284
第14章 ADC 295
14.1 ADC功能概述 295
14.2 ADC的HAL驱动程序 299
14.3 示例1:软件启动ADC转换 303
14.4 示例2:定时器触发ADC转换 308
14.5 示例3:多通道和DMA传输 313
14.6 示例4:双ADC同步转换 319
第15章 DAC 325
15.1 DAC功能概述 325
15.2 DAC的HAL驱动程序 328
15.3 示例1:软件触发DAC转换 332
15.4 示例2:输出三角波 335
15.5 示例3:使用DMA输出自定义波形 339
第16章 SPI通信 343
第17章 I2C通信 377
第18章 CAN总线通信 392
第19章 FSMC连接外部SRAM 422
第20章 独立看门狗 442
第21章 窗口看门狗 448
第22章 电源管理和低功耗模式 456
附录A CubeMX模板项目和公共驱动程序的使用 477
附录B 复制一个项目 482
附录C 本书示例项目列表 483
附录D 缩略词 485
附参考文献 488
《STM32Cube高效开发教程(高级篇)》
第 一部分 嵌入式操作系统FreeRTOS
第 1章 FreeRTOS基础 2
1.1 FreeRTOS概述 2
1.2 FreeRTOS入门示例 4
1.3 FreeRTOS的文件组成和基本原理 15
第 2章 FreeRTOS的任务管理 29
2.1 任务相关的一些概念 29
2.2 FreeRTOS的任务调度 32
2.3 任务管理相关函数 36
2.4 多任务编程示例一 40
2.5 任务管理工具函数 49
2.6 多任务编程示例二 55
第3章 FreeRTOS的中断管理 62
3.1 FreeRTOS与中断 62
3.2 任务与中断服务例程 64
3.3 任务和中断程序设计示例 67
第4章 进程间通信与消息队列 74
4.1 进程间通信 74
4.2 队列的特点和基本操作 75
4.3 队列使用示例 79
第5章 信号量 86
5.1 信号量和互斥量概述 86
5.2 二值信号量使用示例 90
5.3 计数信号量使用示例 98
第6章 互斥量 104
6.1 优先级翻转问题 104
6.2 互斥量的工作原理 105
6.3 优先级翻转示例 106
6.4 互斥量使用示例 111
第7章 事件组 115
7.1 事件组的原理和功能 115
7.2 事件组相关函数 116
7.3 事件组使用示例 120
7.4 通过事件组进行多任务同步 125
第8章 任务通知 132
8.1 任务通知的原理和功能 132
8.2 任务通知的相关函数 133
8.3 示例一:使用任务通知传递数据 137
8.4 示例二:将任务通知用作计数信号量 141
第9章 流缓冲区和消息缓冲区 145
9.1 流缓冲区功能概述 145
9.2 流缓冲区操作的相关函数 146
9.3 流缓冲区使用示例 149
9.4 消息缓冲区功能概述 154
9.5 消息缓冲区操作相关函数 154
9.6 消息缓冲区使用示例 157
第 10章 软件定时器 162
10.1 软件定时器概述 162
10.2 软件定时器的相关函数 164
10.3 软件定时器使用示例 169
第 11章 空闲任务与低功耗 174
11.1 HAL和FreeRTOS的基础时钟 174
11.2 空闲任务与低功耗处理 182
11.3 Tickless低功耗模式 186
第二部分 FatFS管理文件系统
第 12章 FatFS和文件系统 192
12.1 FatFS概述 192
12.2 FatFS的应用程序接口函数 197
12.3 FatFS的存储介质访问函数 208
12.4 针对SPI-Flash芯片移植FatFS 209
12.5 在SPI-Flash芯片上使用文件系统 231
第 13章 直接访问SD卡 245
13.1 SD卡简介 245
13.2 SDIO接口硬件电路 247
13.3 SDIO接口和SD卡的HAL驱动程序 249
13.4 示例一:以轮询方式读写SD卡 257
13.5 示例二:以DMA方式读写SD卡 264
第 14章 用FatFS管理SD卡文件系统 272
第 15章 用FatFS管理U盘文件系统 295
第 16章 USB-OTG用作USB MSC外设 324
第 17章 在FreeRTOS中使用FatFS 341
第三部分 图片的获取与显示
第 18章 BMP图片 360
第 19章 JPG图片 387
第 20章 电阻式触摸屏 405
第 21章 电容式触摸屏 431
第 22章 DCMI接口和数字摄像头 455
附录A CubeMX模板项目和公共驱动程序的使用 487
附录B 复制一个项目 493
附录C 开发板功能模块 494
附录D 本书示例列表 498
附录E 缩略词 501
参考文献 503
第一部分 软硬件基础
第1章 概述 2
1.1 STM32系列单片机 2
1.2 STM32的器件驱动库 3
1.3 STM32Cube生态系统 4
1.4 STM32Cube开发方式 8
第2章 STM32F407和开发板 10
2.1 STM32F407简介 10
2.2 STM32F407开发板 17
2.3 仿真器 23
第3章 STM32CubeMX的使用 24
3.1 安装STM32CubeMX 24
3.2 安装MCU固件包 25
3.3 软件功能和基本使用 29
3.4 项目示例:LED初始输出 49
第4章 STM32CubeIDE的使用 51
4.1 安装STM32CubeIDE 51
4.2 基本概念和MCU固件库设置 52
4.3 C/C++场景的界面功能和操作 58
4.4 CubeMX生成项目的文件组成 63
4.5 项目管理、构建和下载调试 72
4.6 使用内置的CubeMX 79
4.7 CubeIDE使用偏好设置 81
4.8 HAL库的一些基本问题 83
第5章 STM32CubeMonitor的使用 85
5.1 STM32CubeMonitor功能简介 85
5.2 CubeMonitor基本操作 87
5.3 CubeMonitor基本功能使用示例 92
5.4 CubeMonitor的使用小结 113
第二部分 系统功能和常用外设的使用
第6章 GPIO输入/输出 116
6.1 GPIO功能概述 116
6.2 GPIO的HAL驱动程序 117
6.3 GPIO使用示例 120
6.4 作为公共驱动程序 130
第7章 中断系统和外部中断 131
7.1 STM32F407的中断 131
7.1.1 中断向量表 131
7.1.2 中断优先级 134
7.1.3 中断设置相关HAL驱动程序 135
7.2 外部中断EXTI 136
7.2.1 外部中断功能和外部中断线 136
7.2.2 外部中断相关HAL函数 138
7.3 外部中断使用示例 141
7.3.1 示例功能和CubeMX项目设置 141
7.3.2 项目初始代码分析 142
7.3.3 编写用户功能代码 145
7.3.4 中断优先级的测试 146
第8章 FSMC连接TFT LCD 148
8.1 FSMC连接TFT LCD的原理 148
8.2 FSMC连接LCD的电路和接口初始化 151
8.3 使用LCD驱动程序 159
8.4 作为公共驱动程序 172
第9章 基础定时器 174
9.1 定时器概述 174
9.2 基础定时器内部结构和功能 175
9.3 基础定时器HAL驱动程序 177
9.4 外设的中断处理概念小结 182
9.5 基础定时器使用示例 185
第10章 通用定时器 192
10.1 通用定时器功能概述 192
10.2 典型功能原理和HAL驱动 196
10.3 示例1:生成PWM波 204
10.4 示例2:输出比较 210
10.5 示例3:输入PWM 213
第11章 实时时钟 220
11.1 RTC功能概述 220
11.2 周期唤醒和闹钟 227
11.3 备份寄存器 239
11.4 入侵检测和时间戳 246
第12章 USART/UART通信 255
12.1 USART/UART接口概述 255
12.2 串口的HAL驱动程序 259
12.3 串口通信示例 264
第13章 DMA 276
13.1 DMA功能概述 276
13.2 DMA的HAL驱动程序 280
13.3 串口的DMA传输示例 284
第14章 ADC 295
14.1 ADC功能概述 295
14.2 ADC的HAL驱动程序 299
14.3 示例1:软件启动ADC转换 303
14.4 示例2:定时器触发ADC转换 308
14.5 示例3:多通道和DMA传输 313
14.6 示例4:双ADC同步转换 319
第15章 DAC 325
15.1 DAC功能概述 325
15.2 DAC的HAL驱动程序 328
15.3 示例1:软件触发DAC转换 332
15.4 示例2:输出三角波 335
15.5 示例3:使用DMA输出自定义波形 339
第16章 SPI通信 343
第17章 I2C通信 377
第18章 CAN总线通信 392
第19章 FSMC连接外部SRAM 422
第20章 独立看门狗 442
第21章 窗口看门狗 448
第22章 电源管理和低功耗模式 456
附录A CubeMX模板项目和公共驱动程序的使用 477
附录B 复制一个项目 482
附录C 本书示例项目列表 483
附录D 缩略词 485
附参考文献 488
《STM32Cube高效开发教程(高级篇)》
第 一部分 嵌入式操作系统FreeRTOS
第 1章 FreeRTOS基础 2
1.1 FreeRTOS概述 2
1.2 FreeRTOS入门示例 4
1.3 FreeRTOS的文件组成和基本原理 15
第 2章 FreeRTOS的任务管理 29
2.1 任务相关的一些概念 29
2.2 FreeRTOS的任务调度 32
2.3 任务管理相关函数 36
2.4 多任务编程示例一 40
2.5 任务管理工具函数 49
2.6 多任务编程示例二 55
第3章 FreeRTOS的中断管理 62
3.1 FreeRTOS与中断 62
3.2 任务与中断服务例程 64
3.3 任务和中断程序设计示例 67
第4章 进程间通信与消息队列 74
4.1 进程间通信 74
4.2 队列的特点和基本操作 75
4.3 队列使用示例 79
第5章 信号量 86
5.1 信号量和互斥量概述 86
5.2 二值信号量使用示例 90
5.3 计数信号量使用示例 98
第6章 互斥量 104
6.1 优先级翻转问题 104
6.2 互斥量的工作原理 105
6.3 优先级翻转示例 106
6.4 互斥量使用示例 111
第7章 事件组 115
7.1 事件组的原理和功能 115
7.2 事件组相关函数 116
7.3 事件组使用示例 120
7.4 通过事件组进行多任务同步 125
第8章 任务通知 132
8.1 任务通知的原理和功能 132
8.2 任务通知的相关函数 133
8.3 示例一:使用任务通知传递数据 137
8.4 示例二:将任务通知用作计数信号量 141
第9章 流缓冲区和消息缓冲区 145
9.1 流缓冲区功能概述 145
9.2 流缓冲区操作的相关函数 146
9.3 流缓冲区使用示例 149
9.4 消息缓冲区功能概述 154
9.5 消息缓冲区操作相关函数 154
9.6 消息缓冲区使用示例 157
第 10章 软件定时器 162
10.1 软件定时器概述 162
10.2 软件定时器的相关函数 164
10.3 软件定时器使用示例 169
第 11章 空闲任务与低功耗 174
11.1 HAL和FreeRTOS的基础时钟 174
11.2 空闲任务与低功耗处理 182
11.3 Tickless低功耗模式 186
第二部分 FatFS管理文件系统
第 12章 FatFS和文件系统 192
12.1 FatFS概述 192
12.2 FatFS的应用程序接口函数 197
12.3 FatFS的存储介质访问函数 208
12.4 针对SPI-Flash芯片移植FatFS 209
12.5 在SPI-Flash芯片上使用文件系统 231
第 13章 直接访问SD卡 245
13.1 SD卡简介 245
13.2 SDIO接口硬件电路 247
13.3 SDIO接口和SD卡的HAL驱动程序 249
13.4 示例一:以轮询方式读写SD卡 257
13.5 示例二:以DMA方式读写SD卡 264
第 14章 用FatFS管理SD卡文件系统 272
第 15章 用FatFS管理U盘文件系统 295
第 16章 USB-OTG用作USB MSC外设 324
第 17章 在FreeRTOS中使用FatFS 341
第三部分 图片的获取与显示
第 18章 BMP图片 360
第 19章 JPG图片 387
第 20章 电阻式触摸屏 405
第 21章 电容式触摸屏 431
第 22章 DCMI接口和数字摄像头 455
附录A CubeMX模板项目和公共驱动程序的使用 487
附录B 复制一个项目 493
附录C 开发板功能模块 494
附录D 本书示例列表 498
附录E 缩略词 501
参考文献 503
猜您喜欢