本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
ISBN编号: 9787115551771
书名: STM32Cube高效开发教程.基础篇
定价: 119.80元
是否是套装: 否
出版社名称: 人民邮电出版社
出版时间: 2021-09
STM32CubeMX和STM32CubeIDE是ST公司提供的用于STM32开发的工具软件,是STM32Cube生态系统的核心工具软件。本书首先详细介绍这两个软件的用法,然后以STM32F407为研究对象,采用STM32Cube开发方式介绍STM32F407各种系统功能和常用外设的编程开发,包括外设基本工作原理和接口电路、HAL驱动程序功能和使用方法,以及针对一个STM32F407开发板的完整编程示例。通过阅读本书,读者可以掌握STM32Cube开发方式和工具软件的使用,掌握基于HAL库的STM32F407系统功能和常用外设的编程开发方法。 本书适合具有C语言、微机原理或单片机基础,想要学习STM32*新开发技术的读者阅读,可以作为高等院校电子、自动化、计算机、测控等专业的教材,也可作为STM32应用*发者的参考书。
第 一部分软硬件基础
第 1章概述 2
1.1STM32系列单片机 2
1.2STM32的器件驱动库 3
1.2.1标准外设库 3
1.2.2HAL/LL库 4
1.3STM32Cube生态系统 4
1.3.1嵌入式软件 5
1.3.2软件工具 6
1.4STM32Cube开发方式 8
第 2章STM32F407和开发板 10
2.1STM32F407简介 10
2.1.1功能特性 10
2.1.2内部结构 10
2.1.3引脚定义 13
2.1.4*小系统参考设计 14
2.2STM32F407开发板 17
2.2.1开发板功能 17
2.2.2开发板基本电路 20
2.3仿真器 23
第3章STM32CubeMX的使用 24
3.1安装STM32CubeMX 24
3.2安装MCU固件包 25
3.2.1软件库文件夹设置 25
3.2.2管理嵌入式软件包 26
3.2.3MCU固件库文件组成 28
3.3软件功能和基本使用 29
3.3.1软件界面 29
3.3.2新建项目 32
3.3.3MCU图形化配置界面总览 35
3.3.4MCU配置 36
3.3.5时钟配置 41
3.3.6项目管理 45
3.3.7生成报告和代码 48
3.4项目示例:LED初始输出 49
3.4.1硬件电路 49
3.4.2CubeMX项目设置 49
3.4.3生成CubeIDE项目代码 50
第4章STM32CubeIDE的使用 51
4.1安装STM32CubeIDE 51
4.2基本概念和MCU固件库设置 52
4.2.1启动软件 52
4.2.2打开项目 53
4.2.3CubeIDE的一些基本概念 55
4.2.4STM32Cube软件库设置 57
4.3C/C++场景的界面功能和操作 58
4.3.1主要的视图 58
4.3.2工具栏功能 59
4.3.3文本编辑器功能和操作 61
4.4CubeMX生成项目的文件组成 63
4.4.1CMSIS驱动程序文件 63
4.4.2HAL驱动程序文件 65
4.4.3用户程序文件 66
4.4.4启动文件 71
4.4.5根目录下的文件 71
4.4.6Include搜索路径 72
4.5项目管理、构建和下载调试 72
4.5.1项目管理 72
4.5.2项目构建 74
4.5.3下载和调试 75
4.6使用内置的CubeMX 79
4.6.1创建项目 79
4.6.2配置MCU和生成代码 80
4.7CubeIDE使用偏好设置 81
4.8HAL库的一些基本问题 83
4.8.1基本数据类型 83
4.8.2一些通用定义 83
4.8.3获取HAL库帮助信息 84
第5章STM32CubeMonitor的使用 85
5.1STM32CubeMonitor功能简介 85
5.2CubeMonitor基本操作 87
5.2.1Node-RED中的一些基本概念 87
5.2.2设计模式界面和基本操作 88
5.2.3程序部署和Dashboard界面 91
5.3CubeMonitor基本功能使用示例 92
5.3.1STM32 MCU项目 92
5.3.2变量监测的基本操作 95
5.3.3监测外设寄存器的值 104
5.3.4监测变量的数值显示 106
5.3.5修改变量的值 110
5.4CubeMonitor的使用小结 113
*二部分系统功能和常用外设的使用
第6章GPIO输入/输出 116
6.1GPIO功能概述 116
6.2GPIO的HAL驱动程序 117
6.3GPIO使用示例 120
6.3.1示例功能和CubeMX配置 120
6.3.2项目初始化代码分析 122
6.3.3编写按键和LED的驱动程序 124
6.3.4使用驱动程序实现示例功能 127
6.4作为公共驱动程序 130
第7章中断系统和外部中断 131
7.1STM32F407的中断 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.1FSMC连接TFT LCD的原理 148
8.1.1FSMC接口 148
8.1.2TFT LCD接口 149
8.1.3FSMC与TFT LCD的连接 150
8.2FSMC连接LCD的电路和接口初始化 151
8.2.1电路连接 151
8.2.2示例功能和CubeMX项目设置 153
8.2.3初始代码分析 155
8.3使用LCD驱动程序 159
8.3.1设置搜索路径 159
8.3.2LCD驱动程序的改写 161
8.3.3LCD驱动程序的原理和功能 162
8.3.4LCD驱动程序的使用 171
8.4作为公共驱动程序 172
第9章基础定时器 174
9.1定时器概述 174
9.2基础定时器内部结构和功能 175
9.3基础定时器HAL驱动程序 177
9.3.1基础定时器主要函数 177
9.3.2其他通用操作函数 179
9.3.3中断处理 180
9.4外设的中断处理概念小结 182
9.5基础定时器使用示例 185
9.5.1示例功能和CubeMX项目配置 185
9.5.2程序功能实现 187
第 10章通用定时器 192
10.1通用定时器功能概述 192
10.1.1功能概述 192
10.1.2结构框图 192
10.2典型功能原理和HAL驱动 196
10.2.1生成PWM波 196
10.2.2输出比较 197
10.2.3输入捕获 199
10.2.4PWM输入模式 200
10.2.5定时器同步 201
10.2.6通用定时器中断事件和回调函数 202
10.3示例1:生成PWM波 204
10.3.1电路原理和CubeMX项目配置 204
10.3.2输出固定占空比PWM波 206
10.3.3输出可变占空比PWM波 208
10.4示例2:输出比较 210
10.4.1示例功能和CubeMX项目设置 210
10.4.2程序功能实现 211
10.5示例3:输入PWM 213
10.5.1示例功能和CubeMX项目设置 213
10.5.2程序功能实现 215
第 11章实时时钟 220
11.1RTC功能概述 220
11.1.1RTC的功能 220
11.1.2工作原理 220
11.1.3RTC的中断和复用引脚 223
11.1.4RTC的HAL基础驱动程序 224
11.2周期唤醒和闹钟 227
11.2.1周期唤醒相关HAL函数 227
11.2.2闹钟相关HAL函数 229
11.2.3示例功能和电路 230
11.2.4CubeMX项目配置 230
11.2.5程序功能实现 234
11.3备份寄存器 239
11.3.1备份寄存器的功能 239
11.3.2示例功能与CubeMX项目设置 240
11.3.3程序实现和运行效果 240
11.4入侵检测和时间戳 246
11.4.1入侵检测的功能 246
11.4.2示例功能与CubeMX项目设置 247
11.4.3程序功能实现 249
第 12章USART/UART通信 255
12.1USART/UART接口概述 255
12.1.1USART/UART接口信号 255
12.1.2开发板上的串口电路 256
12.1.3串口通信参数 259
12.2串口的HAL驱动程序 259
12.2.1常用功能函数 259
12.2.2常用的宏函数 262
12.2.3中断事件与回调函数 263
12.3串口通信示例 264
12.3.1硬件电路与示例功能 264
12.3.2CubeMX项目设置 265
12.3.3程序功能实现 267
12.3.4接收不定长度数据的改进代码 273
第 13章DMA 276
13.1DMA功能概述 276
13.1.1DMA简介 276
13.1.2DMA传输属性 277
13.2DMA的HAL驱动程序 280
13.2.1DMA的HAL函数概述 280
13.2.2DMA传输初始化配置 280
13.2.3启动DMA数据传输 282
13.2.4DMA的中断 282
13.3串口的DMA传输示例 284
13.3.1示例功能与CubeMX项目设置 284
13.3.2程序功能实现 286
第 14章ADC 295
14.1ADC功能概述 295
14.1.1ADC的特性 295
14.1.2ADC的工作原理 295
14.1.3多重ADC模式 299
14.2ADC的HAL驱动程序 299
14.2.1常规通道 299
14.2.2注入通道 303
14.2.3多重ADC 303
14.3示例1:软件启动ADC转换 303
14.3.1电路和示例功能 303
14.3.2CubeMX项目设置 304
14.3.3程序功能实现 306
14.4示例2:定时器触发ADC转换 308
14.4.1示例功能和CubeMX项目设置 308
14.4.2程序功能实现 310
14.5示例3:多通道和DMA传输 313
14.5.1示例功能和CubeMX项目设置 313
14.5.2程序功能实现 315
14.6示例4:双ADC同步转换 319
14.6.1示例功能与CubeMX项目设置 319
14.6.2程序功能实现 320
第 15章DAC 325
15.1DAC功能概述 325
15.1.1DAC的结构和特性 325
15.1.2功能说明 326
15.2DAC的HAL驱动程序 328
15.2.1DAC驱动宏函数 328
15.2.2DAC驱动功能函数 328
15.3示例1:软件触发DAC转换 332
15.3.1开发板上的DAC电路 332
15.3.2示例功能和CubeMX项目设置 332
15.3.3程序功能实现 333
15.4示例2:输出三角波 335
15.4.1示例功能和CubeMX项目设置 335
15.4.2程序功能实现 336
15.5示例3:使用DMA输出自定义波形 339
15.5.1示例功能和CubeMX项目设置 339
15.5.2程序功能实现 340
第 16章SPI通信 343
16.1SPI接口和通信协议 343
16.1.1SPI硬件接口 343
16.1.2SPI传输协议 343
16.1.3STM32F407的SPI接口 345
16.2SPI的HAL驱动程序 346
16.2.1SPI寄存器操作的宏函数 346
16.2.2SPI初始化和阻塞式数据传输 347
16.2.3中断方式数据传输 348
16.2.4DMA方式数据传输 349
16.3Flash存储芯片W25Q128 350
16.3.1硬件接口和连接 350
16.3.2存储空间划分 351
16.3.3数据读写的原则 351
16.3.4操作指令 351
16.3.5状态寄存器 353
16.4示例1:轮询方式读写W25Q128 354
16.4.1示例功能与CubeMX项目设置 354
16.4.2初始程序 356
16.4.3编写W25Q128的驱动程序 357
16.4.4W25Q128功能测试 366
16.5示例2:DMA方式读写W25Q128 370
16.5.1示例功能和CubeMX项目设置 370
16.5.2程序功能实现 371
第 17章I2C通信 377
17.1I2C总线和通信协议 377
17.1.1I2C总线结构 377
17.1.2I2C总线通信协议 378
17.1.3STM32F407的I2C接口 378
17.2I2C的HAL驱动程序 379
17.2.1I2C接口的初始化 379
17.2.2阻塞式数据传输 379
17.2.3中断方式数据传输 381
17.2.4DMA方式数据传输 381
17.3EEPROM芯片24C02 382
17.3.1接口和通信协议 382
17.3.2驱动程序设计 384
17.4读写24C02示例 387
17.4.1示例功能和CubeMX项目设置 387
17.4.2程序功能实现 388
第 18章CAN总线通信 392
18.1CAN总线结构和传输协议 392
18.1.1CAN总线结构 392
18.1.2CAN总线传输协议 394
18.2CAN外设工作原理和HAL驱动程序 397
18.2.1片上CAN外设的功能概述 397
18.2.2CAN模块的基本控制 398
18.2.3CAN模块的测试模式 399
18.2.4消息发送 400
18.2.5消息接收 401
18.2.6标识符筛选 402
18.2.7中断及其处理 405
18.3开发板上的CAN接口电路 406
18.4示例1:轮询方式CAN通信 407
18.4.1示例功能和CubeMX项目设置 407
18.4.2程序功能实现 409
18.5示例2:中断方式CAN通信 415
18.5.1示例功能和CubeMX项目设置 415
18.5.2程序功能实现 415
第 19章FSMC连接外部SRAM 422
19.1FSMC连接外部SRAM的原理 422
19.1.1FSMC控制区域的划分 422
19.1.2SRAM芯片与MCU的连接 422
19.2访问外部SRAM的HAL驱动程序 423
19.2.1外部SRAM初始化与控制 423
19.2.2外部SRAM读写函数 424
19.2.3直接通过指针访问外部SRAM 425
19.2.4DMA方式读写外部SRAM 426
19.3示例1:轮询方式读写外部SRAM 427
19.3.1示例功能和CubeMX项目设置 427
19.3.2程序功能实现 429
19.4示例2:DMA方式读写外部SRAM 435
19.4.1示例功能和CubeMX项目设置 435
19.4.2程序功能实现 437
第 20章独立看门狗 442
20.1独立看门狗的工作原理 442
20.2独立看门狗的HAL驱动程序 443
20.3独立看门狗使用示例 444
20.3.1示例功能和CubeMX项目设置 444
20.3.2程序功能实现 445
第 21章窗口看门狗 448
21.1窗口看门狗的工作原理 448
21.2窗口看门狗的HAL驱动程序 450
21.3窗口看门狗使用示例 451
21.3.1示例功能和CubeMX项目设置 451
21.3.2不使用EWI中断 452
21.3.3使用EWI中断 454
第 22章电源管理和低功耗模式 456
22.1电源系统和低功耗模式 456
22.1.1STM32F4的电源系统 456
22.1.2STM32F4的低功耗模式 457
22.2CubeMX的功耗计算器 458
22.2.1PCC界面概述 458
22.2.2步骤和序列管理 459
22.2.3功耗分析 461
22.3睡眠模式 462
22.3.1睡眠模式的特点和操作 462
22.3.2睡眠模式编程示例 464
22.4停止模式 467
22.4.1停止模式的特点和操作 467
22.4.2停止模式编程示例 469
22.5待机模式 472
22.5.1待机模式的特点和操作 472
22.5.2待机模式编程示例 473
附录ACubeMX模板项目和公共驱动程序的使用 477
A.1公共驱动程序的目录组成 477
A.2CubeMX模板项目 478
A.3新建CubeMX项目后导入模板项目的配置 478
A.4复制模板项目以新建CubeMX项目 479
A.5在CubeIDE中设置驱动程序搜索路径 480
附录B复制一个项目 482
附录C本书示例项目列表 483
附录D缩略词 485
附参考文献 488