目录
《STM32Cube*效开发教程(基础篇)》
第 **分 软硬件基础
第 *章 概述 2
*.* STM32系列单片机 2
*.2 STM32的器件驱动库 3
*.2.* 标准外设库 3
*.2.2 HAL/LL库 4
*.3 STM32Cube生态系统 4
*.3.* 嵌入式软件 5
*.3.2 软件工具 6
*.4 STM32Cube开发方式 8
第 2章 STM32F407和开发板 *0
2.* STM32F407简介 *0
2.*.* 功能*性 *0
2.*.2 内*结构 *0
2.*.3 引脚定义 *3
2.*.4 最小系统参考设计 *4
2.2 STM32F407开发板 *7
2.2.* 开发板功能 *7
2.2.2 开发板基本电路 20
2.3 仿真器 23
第3章 STM32CubeMX的使用 24
3.* 安装STM32CubeMX 24
3.2 安装MCU固件* 25
3.2.* 软件库文件夹设置 25
3.2.2 管理嵌入式软件* 26
3.2.3 MCU固件库文件组成 28
3.3 软件功能和基本使用 29
3.3.* 软件界面 29
3.3.2 新建项目 32
3.3.3 MCU图形化配置界面总览 35
3.3.4 MCU配置 36
3.3.5 时钟配置 4*
3.3.6 项目管理 45
3.3.7 生成报告和代码 48
3.4 项目示例:LED初始输出 49
3.4.* 硬件电路 49
3.4.2 CubeMX项目设置 49
3.4.3 生成CubeIDE项目代码 50
第4章 STM32CubeIDE的使用 5*
4.* 安装STM32CubeIDE 5*
4.2 基本概念和MCU固件库设置 52
4.2.* 启动软件 52
4.2.2 打开项目 53
4.2.3 CubeIDE的*些基本概念 55
4.2.4 STM32Cube软件库设置 57
4.3 C/C++场景的界面功能和操作 58
4.3.* 主要的视图 58
4.3.2 工具栏功能 59
4.3.3 文本编辑器功能和操作 6*
4.4 CubeMX生成项目的文件组成 63
4.4.* CMSIS驱动程序文件 63
4.4.2 HAL驱动程序文件 65
4.4.3 用户程序文件 66
4.4.4 启动文件 7*
4.4.5 根目录下的文件 7*
4.4.6 Include搜索路径 72
4.5 项目管理、构建和下载调试 72
4.5.* 项目管理 72
4.5.2 项目构建 74
4.5.3 下载和调试 75
4.6 使用内置的CubeMX 79
4.6.* *建项目 79
4.6.2 配置MCU和生成代码 80
4.7 CubeIDE使用偏好设置 8*
4.8 HAL库的*些基本问题 83
4.8.* 基本数据类型 83
4.8.2 *些通用定义 83
4.8.3 获取HAL库帮助信息 84
第5章 STM32CubeMonitor的使用 85
5.* STM32CubeMonitor功能简介 85
5.2 CubeMonitor基本操作 87
5.2.* Node-RED中的*些基本概念 87
5.2.2 设计模式界面和基本操作 88
5.2.3 程序*署和Dashboard界面 9*
5.3 CubeMonitor基本功能使用示例 92
5.3.* STM32 MCU项目 92
5.3.2 变量监测的基本操作 95
5.3.3 监测外设寄存器的值 *04
5.3.4 监测变量的数值显示 *06
5.3.5 修改变量的值 **0
5.4 CubeMonitor的使用小结 **3
第二*分 系统功能和常用外设的使用
第6章 GPIO输入/输出 **6
6.* GPIO功能概述 **6
6.2 GPIO的HAL驱动程序 **7
6.3 GPIO使用示例 *20
6.3.* 示例功能和CubeMX配置 *20
6.3.2 项目初始化代码分析 *22
6.3.3 编写按键和LED的驱动程序 *24
6.3.4 使用驱动程序实现示例功能 *27
6.4 作为公共驱动程序 *30
第7章 中断系统和外*中断 *3*
7.* STM32F407的中断 *3*
7.*.* 中断向量表 *3*
7.*.2 中断*先级 *34
7.*.3 中断设置相关HAL驱动程序 *35
7.2 外*中断EXTI *36
7.2.* 外*中断功能和外*中断线 *36
7.2.2 外*中断相关HAL函数 *38
7.3 外*中断使用示例 *4*
7.3.* 示例功能和CubeMX项目设置 *4*
7.3.2 项目初始代码分析 *42
7.3.3 编写用户功能代码 *45
7.3.4 中断*先级的测试 *46
第8章 FSMC连接TFT LCD *48
8.* FSMC连接TFT LCD的原理 *48
8.*.* FSMC接口 *48
8.*.2 TFT LCD接口 *49
8.*.3 FSMC与TFT LCD的连接 *50
8.2 FSMC连接LCD的电路和接口初始化 *5*
8.2.* 电路连接 *5*
8.2.2 示例功能和CubeMX项目设置 *53
8.2.3 初始代码分析 *55
8.3 使用LCD驱动程序 *59
8.3.* 设置搜索路径 *59
8.3.2 LCD驱动程序的改写 *6*
8.3.3 LCD驱动程序的原理和功能 *62
8.3.4 LCD驱动程序的使用 *7*
8.4 作为公共驱动程序 *72
第9章 基础定时器 *74
9.* 定时器概述 *74
9.2 基础定时器内*结构和功能 *75
9.3 基础定时器HAL驱动程序 *77
9.3.* 基础定时器主要函数 *77
9.3.2 其他通用操作函数 *79
9.3.3 中断处理 *80
9.4 外设的中断处理概念小结 *82
9.5 基础定时器使用示例 *85
9.5.* 示例功能和CubeMX项目配置 *85
9.5.2 程序功能实现 *87
第 *0章 通用定时器 *92
*0.* 通用定时器功能概述 *92
*0.*.* 功能概述 *92
*0.*.2 结构框图 *92
*0.2 典型功能原理和HAL驱动 *96
*0.2.* 生成PWM波 *96
*0.2.2 输出比较 *97
*0.2.3 输入捕获 *99
*0.2.4 PWM输入模式 200
*0.2.5 定时器同步 20*
*0.2.6 通用定时器中断事件和回调函数 202
*0.3 示例*:生成PWM波 204
*0.3.* 电路原理和CubeMX项目配置 204
*0.3.2 输出固定占空比PWM波 206
*0.3.3 输出可变占空比PWM波 208
*0.4 示例2:输出比较 2*0
*0.4.* 示例功能和CubeMX项目设置 2*0
*0.4.2 程序功能实现 2**
*0.5 示例3:输入PWM 2*3
*0.5.* 示例功能和CubeMX项目设置 2*3
*0.5.2 程序功能实现 2*5
第 **章 实时时钟 220
**.* RTC功能概述 220
**.*.* RTC的功能 220
**.*.2 工作原理 220
**.*.3 RTC的中断和复用引脚 223
**.*.4 RTC的HAL基础驱动程序 224
**.2 周期唤醒和闹钟 227
**.2.* 周期唤醒相关HAL函数 227
**.2.2 闹钟相关HAL函数 229
**.2.3 示例功能和电路 230
**.2.4 CubeMX项目配置 230
**.2.5 程序功能实现 234
**.3 备份寄存器 239
**.3.* 备份寄存器的功能 239
**.3.2 示例功能与CubeMX项目设置 240
**.3.3 程序实现和运行效果 240
**.4 入侵检测和时间戳 246
**.4.* 入侵检测的功能 246
**.4.2 示例功能与CubeMX项目设置 247
**.4.3 程序功能实现 249
第 *2章 USART/UART通信 255
*2.* USART/UART接口概述 255
*2.*.* USART/UART接口信号 255
*2.*.2 开发板上的串口电路 256
*2.*.3 串口通信参数 259
*2.2 串口的HAL驱动程序 259
*2.2.* 常用功能函数 259
*2.2.2 常用的宏函数 262
*2.2.3 中断事件与回调函数 263
*2.3 串口通信示例 264
*2.3.* 硬件电路与示例功能 264
*2.3.2 CubeMX项目设置 265
*2.3.3 程序功能实现 267
*2.3.4 接收*定长度数据的改进代码 273
第 *3章 DMA 276
*3.* DMA功能概述 276
*3.*.* DMA简介 276
*3.*.2 DMA传输属性 277
*3.2 DMA的HAL驱动程序 280
*3.2.* DMA的HAL函数概述 280
*3.2.2 DMA传输初始化配置 280
*3.2.3 启动DMA数据传输 282
*3.2.4 DMA的中断 282
*3.3 串口的DMA传输示例 284
*3.3.* 示例功能与CubeMX项目设置 284
*3.3.2 程序功能实现 286
第 *4章 ADC 295
*4.* ADC功能概述 295
*4.*.* ADC的*性 295
*4.*.2 ADC的工作原理 295
*4.*.3 多重ADC模式 299
*4.2 ADC的HAL驱动程序 299
*4.2.* 常规通道 299
*4.2.2 注入通道 303
*4.2.3 多重ADC 303
*4.3 示例*:软件启动ADC转换 303
*4.3.* 电路和示例功能 303
*4.3.2 CubeMX项目设置 304
*4.3.3 程序功能实现 306
*4.4 示例2:定时器触发ADC转换 308
*4.4.* 示例功能和CubeMX项目设置 308
*4.4.2 程序功能实现 3*0
*4.5 示例3:多通道和DMA传输 3*3
*4.5.* 示例功能和CubeMX项目设置 3*3
*4.5.2 程序功能实现 3*5
*4.6 示例4:双ADC同步转换 3*9
*4.6.* 示例功能与CubeMX项目设置 3*9
*4.6.2 程序功能实现 320
第 *5章 DAC 325
*5.* DAC功能概述 325
*5.*.* DAC的结构和*性 325
*5.*.2 功能说明 326
*5.2 DAC的HAL驱动程序 328
*5.2.* DAC驱动宏函数 328
*5.2.2 DAC驱动功能函数 328
*5.3 示例*:软件触发DAC转换 332
*5.3.* 开发板上的DAC电路 332
*5.3.2 示例功能和CubeMX项目设置 332
*5.3.3 程序功能实现 333
*5.4 示例2:输出三角波 335
*5.4.* 示例功能和CubeMX项目设置 335
*5.4.2 程序功能实现 336
*5.5 示例3:使用DMA输出自定义波形 339
*5.5.* 示例功能和CubeMX项目设置 339
*5.5.2 程序功能实现 340
第 *6章 SPI通信 343
*6.* SPI接口和通信协议 343
*6.*.* SPI硬件接口 343
*6.*.2 SPI传输协议 343
*6.*.3 STM32F407的SPI接口 345
*6.2 SPI的HAL驱动程序 346
*6.2.* SPI寄存器操作的宏函数 346
*6.2.2 SPI初始化和阻塞式数据传输 347
*6.2.3 中断方式数据传输 348
*6.2.4 DMA方式数据传输 349
*6.3 Flash存储芯片W25Q*28 350
*6.3.* 硬件接口和连接 350
*6.3.2 存储空间划分 35*
*6.3.3 数据读写的原则 35*
*6.3.4 操作指令 35*
*6.3.5 状态寄存器 353
*6.4 示例*:轮询方式读写W25Q*28 354
*6.4.* 示例功能与CubeMX项目设置 354
*6.4.2 初始程序 356
*6.4.3 编写W25Q*28的驱动程序 357
*6.4.4 W25Q*28功能测试 366
*6.5 示例2:DMA方式读写W25Q*28 370
*6.5.* 示例功能和CubeMX项目设置 370
*6.5.2 程序功能实现 37*
第 *7章 I2C通信 377
*7.* I2C总线和通信协议 377
*7.*.* I2C总线结构 377
*7.*.2 I2C总线通信协议 378
*7.*.3 STM32F407的I2C接口 378
*7.2 I2C的HAL驱动程序 379
*7.2.* I2C接口的初始化 379
*7.2.2 阻塞式数据传输 379
*7.2.3 中断方式数据传输 38*
*7.2.4 DMA方式数据传输 38*
*7.3 EEPROM芯片24C02 382
*7.3.* 接口和通信协议 382
*7.3.2 驱动程序设计 384
*7.4 读写24C02示例 387
*7.4.* 示例功能和CubeMX项目设置 387
*7.4.2 程序功能实现 388
第 *8章 CAN总线通信 392
*8.* CAN总线结构和传输协议 392
*8.*.* CAN总线结构 392
*8.*.2 CAN总线传输协议 394
*8.2 CAN外设工作原理和HAL驱动程序 397
*8.2.* 片上CAN外设的功能概述 397
*8.2.2 CAN模块的基本控制 398
*8.2.3 CAN模块的测试模式 399
*8.2.4 消息发送 400
*8.2.5 消息接收 40*
*8.2.6 标识符筛选 402
*8.2.7 中断及其处理 405
*8.3 开发板上的CAN接口电路 406
*8.4 示例*:轮询方式CAN通信 407
*8.4.* 示例功能和CubeMX项目设置 407
*8.4.2 程序功能实现 409
*8.5 示例2:中断方式CAN通信 4*5
*8.5.* 示例功能和CubeMX项目设置 4*5
*8.5.2 程序功能实现 4*5
第 *9章 FSMC连接外*SRAM 422
*9.* FSMC连接外*SRAM的原理 422
*9.*.* FSMC控制区域的划分 422
*9.*.2 SRAM芯片与MCU的连接 422
*9.2 访问外*SRAM的HAL驱动程序 423
*9.2.* 外*SRAM初始化与控制 423
*9.2.2 外*SRAM读写函数 424
*9.2.3 直接通过指针访问外*SRAM 425
*9.2.4 DMA方式读写外*SRAM 426
*9.3 示例*:轮询方式读写外*SRAM 427
*9.3.* 示例功能和CubeMX项目设置 427
*9.3.2 程序功能实现 429
*9.4 示例2:DMA方式读写外*SRAM 435
*9.4.* 示例功能和CubeMX项目设置 435
*9.4.2 程序功能实现 437
第 20章 *立看门狗 442
20.* *立看门狗的工作原理 442
20.2 *立看门狗的HAL驱动程序 443
20.3 *立看门狗使用示例 444
20.3.* 示例功能和CubeMX项目设置 444
20.3.2 程序功能实现 445
第 2*章 窗口看门狗 448
2*.* 窗口看门狗的工作原理 448
2*.2 窗口看门狗的HAL驱动程序 450
2*.3 窗口看门狗使用示例 45*
2*.3.* 示例功能和CubeMX项目设置 45*
2*.3.2 *使用EWI中断 452
2*.3.3 使用EWI中断 454
第 22章 电源管理和低功耗模式 456
22.* 电源系统和低功耗模式 456
22.*.* STM32F4的电源系统 456
22.*.2 STM32F4的低功耗模式 457
22.2 CubeMX的功耗计算器 458
22.2.* PCC界面概述 458
22.2.2 步骤和序列管理 459
22.2.3 功耗分析 46*
22.3 睡眠模式 462
22.3.* 睡眠模式的*点和操作 462
22.3.2 睡眠模式编程示例 464
22.4 停止模式 467
22.4.* 停止模式的*点和操作 467
22.4.2 停止模式编程示例 469
22.5 待机模式 472
22.5.* 待机模式的*点和操作 472
22.5.2 待机模式编程示例 473
附录A CubeMX模板项目和公共驱动程序的使用 477
A.* 公共驱动程序的目录组成 477
A.2 CubeMX模板项目 478
A.3 新建CubeMX项目后导入模板项目的配置 478
A.4 复制模板项目以新建CubeMX项目 479
A.5 在CubeIDE中设置驱动程序搜索路径 480
附录B 复制*个项目 482
附录C 本书示例项目列表 483
附录D 缩略词 485
附参考文献 488
《STM32Cube*效开发教程(*级篇)》
第 **分 嵌入式操作系统FreeRTOS
第 *章 FreeRTOS基础 2
*.* FreeRTOS概述 2
*.*.* FreeRTOS的发展历史 2
*.*.2 FreeRTOS的*点和许可方式 2
*.*.3 FreeRTOS的*些概念和术语 3
*.*.4 为什么要使用RTOS 4
*.2 FreeRTOS入门示例 4
*.2.* CubeMX项目配置 5
*.2.2 含FreeRTOS的项目的文件组成 8
*.2.3 程序分析和功能实现 9
*.3 FreeRTOS的文件组成和基本原理 *5
*.3.* FreeRTOS的文件组成 *5
*.3.2 FreeRTOS的编码规则 20
*.3.3 FreeRTOS的配置和功能裁剪 2*
第 2章 FreeRTOS的任务管理 29
2.* 任务相关的*些概念 29
2.*.* 多任务运行基本机制 29
2.*.2 任务的状态 30
2.*.3 任务的*先级 3*
2.*.4 空闲任务 32
2.*.5 基础时钟与嘀嗒信号 32
2.2 FreeRTOS的任务调度 32
2.2.* 任务调度方法概述 32
2.2.2 使用时间片的*占式调度方法 33
2.2.3 *使用时间片的*占式调度方法 34
2.2.4 合作式任务调度方法 35
2.3 任务管理相关函数 36
2.3.* 相关函数概述 36
2.3.2 主要函数功能说明 38
2.4 多任务编程示例* 40
2.4.* 示例功能与CubeMX项目设置 40
2.4.2 初始程序分析 42
2.4.3 编写用户功能代码 44
2.5 任务管理工具函数 49
2.5.* 相关函数概述 49
2.5.2 获取任务句柄 50
2.5.3 单个任务的操作 5*
2.5.4 内核信息统计 53
2.6 多任务编程示例二 55
2.6.* 示例功能与CubeMX项目设置 55
2.6.2 程序功能实现 56
第3章 FreeRTOS的中断管理 62
3.* FreeRTOS与中断 62
3.2 任务与中断服务例程 64
3.2.* 任务与中断服务例程的关系 64
3.2.2 中断屏蔽和临界代码段 65
3.2.3 在ISR中使用FreeRTOS API函数 66
3.2.4 中断及其ISR设计原则 67
3.3 任务和中断程序设计示例 67
3.3.* 示例功能和CubeMX项目设置 67
3.3.2 基本功能代码 69
3.3.3 各种*性的测试 7*
第4章 进程间通信与消息队列 74
4.* 进程间通信 74
4.2 队列的*点和基本操作 75
4.2.* 队列的*建和存储 75
4.2.2 向队列写入数据 76
4.2.3 从队列读取数据 77
4.2.4 队列操作相关函数 78
4.3 队列使用示例 79
4.3.* 示例功能和CubeMX项目设置 79
4.3.2 初始代码分析 80
4.3.3 实现用户功能 82
第5章 信号量 86
5.* 信号量和互斥量概述 86
5.*.* 二值信号量 86
5.*.2 计数信号量 87
5.*.3 互斥量 87
5.*.4 递归互斥量 88
5.*.5 相关函数概述 88
5.2 二值信号量使用示例 90
5.2.* 二值信号量操作相关函数详解 90
5.2.2 示例功能和CubeMX项目设置 92
5.2.3 程序功能实现 94
5.3 计数信号量使用示例 98
5.3.* 计数信号量操作相关函数详解 98
5.3.2 示例功能和CubeMX项目设置 99
5.3.3 程序功能实现 *00
第6章 互斥量 *04
6.* *先级翻转问题 *04
6.2 互斥量的工作原理 *05
6.2.* *先级继承 *05
6.2.2 互斥量相关函数详解 *05
6.3 *先级翻转示例 *06
6.3.* 示例功能和CubeMX项目设置 *06
6.3.2 程序功能实现 *07
6.4 互斥量使用示例 ***
6.4.* 示例功能和CubeMX项目设置 ***
6.4.2 程序功能实现 ***
第7章 事件组 **5
7.* 事件组的原理和功能 **5
7.*.* 事件组的功能*点 **5
7.*.2 事件组的工作原理 **5
7.2 事件组相关函数 **6
7.2.* 相关函数概述 **6
7.2.2 *分函数详解 **7
7.3 事件组使用示例 *20
7.3.* 示例功能和CubeMX项目设置 *20
7.3.2 程序功能实现 *20
7.4 通过事件组进行多任务同步 *25
7.4.* 多任务同步原理 *25
7.4.2 示例功能和CubeMX项目设置 *26
7.4.3 程序功能实现 *27
第8章 任务通知 *32
8.* 任务通知的原理和功能 *32
8.2 任务通知的相关函数 *33
8.2.* 相关函数概述 *33
8.2.2 函数详解 *34
8.3 示例*:使用任务通知传递数据 *37
8.3.* 示例功能与CubeMX项目设置 *37
8.3.2 程序功能实现 *38
8.4 示例二:将任务通知用作计数信号量 *4*
8.4.* 示例功能 *4*
8.4.2 CubeMX项目设置 *4*
8.4.3 程序功能实现 *42
第9章 流缓冲区和消息缓冲区 *45
9.* 流缓冲区功能概述 *45
9.2 流缓冲区操作的相关函数 *46
9.2.* 相关函数概述 *46
9.2.2 *分函数详解 *46
9.2.3 表示发送完成和接收完成的宏 *49
9.3 流缓冲区使用示例 *49
9.3.* 示例功能与CubeMX项目设置 *49
9.3.2 程序功能实现 *5*
9.4 消息缓冲区功能概述 *54
9.5 消息缓冲区操作相关函数 *54
9.5.* 相关函数概述 *54
9.5.2 *分函数详解 *55
9.6 消息缓冲区使用示例 *57
9.6.* 示例功能与CubeMX项目设置 *57
9.6.2 程序功能实现 *58
第 *0章 软件定时器 *62
*0.* 软件定时器概述 *62
*0.*.* 软件定时器的*性 *62
*0.*.2 软件定时器的相关配置 *63
*0.*.3 定时器服务任务的*先级 *63
*0.2 软件定时器的相关函数 *64
*0.2.* 相关函数概述 *64
*0.2.2 *分函数详解 *65
*0.3 软件定时器使用示例 *69
*0.3.* 示例功能和CubeMX项目设置 *69
*0.3.2 程序功能实现 *70
第 **章 空闲任务与低功耗 *74
**.* HAL和FreeRTOS的基础时钟 *74
**.*.* 使用SysTick作为HAL的基础时钟 *74
**.*.2 使用其他定时器作为HAL的基础时钟 *77
**.*.3 FreeRTOS的基础时钟 *79
**.2 空闲任务与低功耗处理 *82
**.2.* 实现原理 *82
**.2.2 设计示例 *83
**.3 Tickless低功耗模式 *86
**.3.* Tickless模式的原理和功能 *86
**.3.2 Tickless模式的使用示例 *87
第二*分 FatFS管理文件系统
第 *2章 FatFS和文件系统 *92
*2.* FatFS概述 *92
*2.*.* FatFS的作用 *92
*2.*.2 文件系统的*些基本概念 *93
*2.*.3 FatFS的功能*点和参数 *94
*2.*.4 FatFS的文件组成 *95
*2.*.5 FatFS的基本数据类型定义 *96
*2.2 FatFS的应用程序接口函数 *97
*2.2.* 卷管理和系统配置相关函数 *97
*2.2.2 文件和目录管理相关函数 200
*2.2.3 目录访问相关函数 203
*2.2.4 文件访问相关函数 204
*2.3 FatFS的存储介质访问函数 208
*2.4 针对SPI-Flash芯片移植FatFS 209
*2.4.* SPI-Flash芯片硬件电路 209
*2.4.2 CubeMX项目基础设置 2*0
*2.4.3 在CubeMX中设置FatFS 2*0
*2.4.4 项目中FatFS的文件组成 2*6
*2.4.5 FatFS初始化过程 2*8
*2.4.6 针对SPI-Flash芯片的Disk IO函数实现 226
*2.5 在SPI-Flash芯片上使用文件系统 23*
*2.5.* 主程序功能 23*
*2.5.2 磁盘格式化 234
*2.5.3 获取FAT磁盘信息 234
*2.5.4 扫描根目录下的文件和子目录 236
*2.5.5 *建文件和目录 237
*2.5.6 读取文本文件 239
*2.5.7 读取二进制文件 239
*2.5.8 获取文件信息 24*
*2.5.9 文件file_opera.h的完整定义 242
第 *3章 直接访问SD卡 245
*3.* SD卡简介 245
*3.*.* SD卡的分类 245
*3.*.2 常规SD卡的接口 246
*3.2 SDIO接口硬件电路 247
*3.2.* STM32F407的SDIO接口 247
*3.2.2 开发板上的microSD卡连接电路 248
*3.3 SDIO接口和SD卡的HAL驱动程序 249
*3.3.* SD驱动程序概述 250
*3.3.2 初始化和配置函数 25*
*3.3.3 读取SD卡的参数信息 25*
*3.3.4 获取SD卡的当前状态 255
*3.3.5 以轮询方式读写SD卡 255
*3.3.6 以中断方式读写SD卡 256
*3.3.7 以DMA方式读写SD卡 256
*3.4 示例*:以轮询方式读写SD卡 257
*3.4.* 示例功能与CubeMX项目设置 257
*3.4.2 主程序与SDIO接口/SD卡初始化 259
*3.4.3 程序功能实现 260
*3.5 示例二:以DMA方式读写SD卡 264
*3.5.* 示例功能与CubeMX项目设置 264
*3.5.2 主程序与外设初始化 265
*3.5.3 程序功能实现 268
第 *4章 用FatFS管理SD卡文件系统 272
*4.* SD卡文件系统概述 272
*4.2 示例*:阻塞式访问SD卡 272
*4.2.* 示例功能与CubeMX项目设置 272
*4.2.2 项目文件组成和初始代码分析 274
*4.2.3 SD卡的Disk IO函数实现 278
*4.2.4 SD卡文件管理功能的实现 284
*4.3 示例二:以DMA方式访问SD卡 288
*4.3.* 示例功能和CubeMX项目设置 288
*4.3.2 Disk IO函数实现代码分析 289
*4.3.3 SD卡文件管理功能的实现 29*
第 *5章 用FatFS管理U盘文件系统 295
*5.* USB概述 295
*5.*.* USB协议 295
*5.*.2 USB设备类型 296
*5.*.3 USB接口类型 296
*5.2 STM32F407的USB-OTG接口 298
*5.2.* USB-OTG概述 298
*5.2.2 USB-OTG FS 299
*5.2.3 开发板上的USB接口电路 302
*5.3 作为USB Host读写U盘 303
*5.3.* 示例功能和CubeMX项目设置 303
*5.3.2 项目文件组成和初始代码分析 307
*5.3.3 USBH状态变化测试 3*6
*5.3.4 U盘文件管理功能实现 3*8
第 *6章 USB-OTG用作USB MSC外设 324
*6.* 开发板作为USB MSC外设的原理 324
*6.2 示例*:SD卡读卡器 326
*6.2.* 示例功能和CubeMX项目设置 326
*6.2.2 项目文件组成和初始代码分析 328
*6.2.3 程序功能实现 333
*6.3 示例二:增加FatFS管理本机文件功能 336
*6.3.* 示例功能和CubeMX项目设置 336
*6.3.2 程序功能实现 337
*6.3.3 运行测试 340
第 *7章 在FreeRTOS中使用FatFS 34*
*7.* 在RTOS中使用FatFS需考虑的问题 34*
*7.*.* 可重入性问题 34*
*7.*.2 FatFS的可重入性 34*
*7.2 FreeRTOS中使用FatFS的示例 343
*7.2.* 示例功能和CubeMX项目设置 343
*7.2.2 项目文件组成和初始代码分析 346
*7.2.3 FatFS API函数的重入性实现原理 350
*7.2.4 添加用户功能代码 354
第三*分 图片的获取与显示
第 *8章 BMP图片 360
*8.* LCD显示图片的原理 360
*8.*.* 像素颜色的表示 360
*8.*.2 根据图片的RGB565数据显示图片 360
*8.2 图片显示示例 362
*8.2.* 示例功能与CubeMX项目配置 362
*8.2.2 程序功能实现 363
*8.3 BMP图片文件的格式 368
*8.3.* BMP图片文件的数据分段 368
*8.3.2 位图文件头 368
*8.3.3 位图信息头 369
*8.3.4 位图数据 370
*8.4 BMP图片文件的读写操作示例 370
*8.4.* 示例功能和CubeMX项目设置 370
*8.4.2 程序功能实现 372
*8.4.3 BMP文件操作驱动程序 377
第 *9章 JPG图片 387
*9.* JPEG和LIBJPEG 387
*9.2 JPG图片文件的读写操作示例 388
*9.2.* 示例功能和CubeMX项目设置 388
*9.2.2 程序功能实现 389
*9.2.3 JPG文件操作驱动程序 395
第 20章 电阻式触摸屏 405
20.* 电阻式触摸屏的工作原理 405
20.2 电阻式触摸屏的软硬件接口 406
20.3 示例*:轮询方式检测触摸屏输出 407
20.3.* 示例功能 407
20.3.2 CubeMX项目设置 407
20.3.3 主程序功能实现 409
20.3.4 GUI界面的*建与交互操作 4*3
20.3.5 电阻式触摸屏驱动程序 420
20.4 示例二:中断方式获取触摸屏输出 426
20.4.* 示例功能和CubeMX项目设置 426
20.4.2 程序功能实现 427
第 2*章 电容式触摸屏 43*
2*.* 电容式触摸屏的工作原理 43*
2*.2 电容式触摸屏的软硬件接口 43*
2*.2.* 电容式触摸屏接口 43*
2*.2.2 电容式触摸屏控制芯片功能 433
2*.3 电容触摸屏的使用示例 437
2*.3.* 示例功能和CubeMX项目设置 437
2*.3.2 程序功能实现 438
2*.3.3 电容触摸屏驱动程序 443
第 22章 DCMI接口和数字摄像头 455
22.* 数字摄像头 455
22.*.* 数字摄像头概述 455
22.*.2 OV7670图像传感器的功能和接口 456
22.*.3 OV7670数据输出时序和格式 457
22.*.4 SCCB通信 458
22.*.5 OV7670的寄存器 460
22.2 DCMI接口 46*
22.2.* DCMI接口概述 46*
22.2.2 DCMI接口传输时序 462
22.2.3 DCMI数据存储格式 463
22.2.4 DCMI图像采集方式 464
22.2.5 DCMI的中断 465
22.3 DCMI的HAL驱动 465
22.3.* 主要驱动函数概述 465
22.3.2 DCMI接口初始化 466
22.3.3 DCMI的采集控制 467
22.4 DCMI和摄像头使用示例 467
22.4.* 摄像头模块 467
22.4.2 开发板与摄像头模块的连接 468
22.4.3 示例功能与CubeMX项目设置 470
22.4.4 程序功能实现 474
附录A CubeMX模板项目和公共驱动程序的使用 487
A.* 公共驱动程序的目录组成 487
A.2 CubeMX模板项目 488
A.3 新建CubeMX项目后导入模板项目的配置 488
A.4 复制模板项目以新建CubeMX项目 490
A.5 在CubeIDE中设置驱动程序搜索路径 490
附录B 复制*个项目 493
附录C 开发板功能模块 494
附录D 本书示例列表 498
附录E 缩略词 50*
参考文献 503
作者介绍
《STM32Cube*效开发教程(基础篇)》 *维波,博士、中*石油大学(华东)控制科学与工程学院教师。从事测控与仪器开发*域的教学和研究工作,主要研究方向是地球物理探测仪器开发、数据处理方法和软件开发。参与完成*家自然科学基金、山东省重点研发计划等多个科研项目,发表论文 20 余篇。著有《Qt 5.9 C++ 开发指南》和《Python Qt GUI 与数据可视化编程》。 鄢志丹,博士、中*石油大学(华东)控制科学与工程学院教师。从事随钻测控技术、自抗扰控制方法、井下仪器开发、微弱信号处理等方面的研究工作。主持*家自然科学基金、中*博士后科学基金、山东省自然科学基金等 *0 余个科研项目,获授权发明*利 *0 余项,发表论文 30 余篇。 *钊,博士、中*石油大学(华东)控制科学与工程学院教师。从事自动化相关的教学和研究工作,主要研究方向是非线性系统的非光滑控制研究、故障诊断、工业过程控制等。主持山东省*秀中青年*科研奖励基金项目 * 项,发表论文 20 余篇,作为副主编编写教材* *。 《STM32Cube*效开发教程(*级篇)》 *维波,博士、中*石油大学(华东)控制科学与工程学院教师。从事测控与仪器开发*域的教学和研究工作,主要研究方向是地球物理探测仪器开发、数据处理方法和软件开发。参与完成*家自然科学基金、山东省重点研发计划等多个科研项目,发表论文 20 余篇。著有《Qt 5.9 C++ 开发指南》和《Python Qt GUI 与数据可视化编程》。 鄢志丹,博士、中*石油大学(华东)控制科学与工程学院教师。从事随钻测控技术、自抗扰控制方法、井下仪器开发、微弱信号处理等方面的研究工作。主持*家自然科学基金、中*博士后科学基金、山东省自然科学基金等 *0 余个科研项目,获授权发明*利 *0 余项,发表论文 30 余篇。 *钊,博士、中*石油大学(华东)控制科学与工程学院教师。从事自动化相关的教学和研究工作,主要研究方向是非线性系统的非光滑控制研究、故障诊断、工业过程控制等。主持山东省*秀中青年*科研奖励基金项目 * 项,发表论文 20 余篇,作为副主编编写教材* *。
发货方式
自动:在特色服务中标有自动发货的商品,拍下后,源码类 软件类 商品会在订单详情页显示来自卖家的商品下载链接,点卡类 商品会在订单详情直接显示卡号密码。
手动:未标有自动发货的的商品,付款后,商品卖家会收到平台的手机短信、邮件提醒,卖家会尽快为您发货,如卖家长时间未发货,买家也可通过订单上的QQ或电话主动联系卖家。
退款说明
1、源码类:商品详情(含标题)与实际源码不一致的(例:描述PHP实际为ASP、描述的功能实际缺少、功能不能正常使用等)!有演示站时,与实际源码不一致的(但描述中有"不保证完全一样、可能有少许偏差"类似显著公告的除外);
2、营销推广类:未达到卖家描述标准的;
3、点卡软件类:所售点卡软件无法使用的;
3、发货:手动发货商品,在卖家未发货前就申请了退款的;
4、服务:卖家不提供承诺的售后服务的;(双方提前有商定和描述中有显著声明的除外)
5、其他:如商品或服务有质量方面的硬性常规问题的。未符合详情及卖家承诺的。
注:符合上述任一情况的,均支持退款,但卖家予以积极解决问题则除外。交易中的商品,卖家无法修改描述!
注意事项
1、在付款前,双方在QQ上所商定的内容,也是纠纷评判依据(商定与商品描述冲突时,以商定为准);
2、源码商品,同时有网站演示与商品详情图片演示,且网站演示与商品详情图片演示不一致的,默认按商品详情图片演示作为纠纷评判依据(卖家有特别声明或有额外商定的除外);
3、点卡软件商品,默认按商品详情作为纠纷评判依据(特别声明或有商定除外);
4、营销推广商品,默认按商品详情作为纠纷评判依据(特别声明或有商定除外);
5、在有"正当退款原因和依据"的前提下,写有"一旦售出,概不支持退款"等类似的声明,视为无效声明;
6、虽然交易产生纠纷的几率很小,卖家也肯定会给买家最完善的服务!但请买卖双方尽量保留如聊天记录这样的重要信息,以防产生纠纷时便于送码网快速介入处理。
送码声明
1、送码网作为第三方中介平台,依据双方交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益;
2、非平台线上交易的项目,出现任何后果均与送码网无关;无论卖家以何理由要求线下交易的(如:要求买家支付宝转账付款的,微信转账付款的等),请联系管理举报,本平台将清退卖家处理。
正版 steam 原子之心 Atomic Heart 国区激活码 cd...
steam 英雄连3 国区激活码CDKEY PC游戏正版 Compan...
【骑砍中文站】PC 中文Steam 骑马与砍杀2 霸主 骑砍2 豪华版...
正版 steam 原子之心 Atomic Heart 国区激活码 cd...
M,日朋礼送男友老公创意实人用星人际机器蓝牙音箱走心情节生礼...
PC中文正版Steam 消逝的光芒2 消失的光芒2 Dying Lig...
Steam 女神异闻录5 皇家版 国区激活码CDKey秒发 Perso...
Steam怪物猎人崛起 曙光DLC 激活码cdkey 怪物猎人曙光 M...
steam 只狼 激活码CDKey 只狼影逝二度 Sekiro: Sh...
steam 女神异闻录5皇家版 国区激活码CDKey P5R 女神异闻...