图书介绍
STM32库开发实战指南 基于STM32F4pdf电子书版本下载
- 刘火良,杨森编著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111557456
- 出版时间:2017
- 标注页数:908页
- 文件大小:329MB
- 文件页数:925页
- 主题词:微控制器-系统开发-指南
PDF下载
下载说明
STM32库开发实战指南 基于STM32F4PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 如何安装KEIL5 1
1.1温馨提示 1
1.2获取KEIL5安装包 1
1.3开始安装KEIL5 1
1.4安装STM32芯片包 3
第2章 如何用DAP仿真器下载程序 6
2.1仿真器简介 6
2.2硬件连接 6
2.3仿真器配置 6
2.4选择目标板 9
2.5下载程序 9
第3章 初识STM32 10
3.1什么是STM32 10
3.2 STM32能做什么 10
3.2.1智能手环 11
3.2.2微型四轴飞行器 12
3.2.3淘宝众筹 12
3.3 STM32选型 13
3.3.1 STM32分类 13
3.3.2 STM32命名方法 14
3.3.3选择合适的MCU 14
第4章 寄存器 17
4.1寄存器简介 17
4.2 STM32的外观 17
4.3芯片里面有什么 18
4.4存储器映射 21
4.5寄存器映射 23
4.5.1 STM32的外设地址映射 23
4.5.2 C语言对寄存器的封装 26
第5章 新建工程——寄存器版 31
5.1新建本地工程文件夹工程 31
5.1.1新建本地工程文件夹 31
5.1.2新建工程 32
5.2下载程序 38
第6章 使用寄存器点亮LED 39
6.1 GPIO简介 39
6.2 GPIO框图剖析 39
6.2.1基本结构分析 39
6.2.2 GPIO工作模式 42
6.3实验:使用寄存器点亮LED 43
6.3.1硬件连接 44
6.3.2启动文件 44
6.3.3 stm32f4xx.h文件 46
6.3.4 main文件 47
6.3.5下载验证 51
第7章 自己写库——构建库函数雏形 52
7.1 STM32函数库简介 52
7.2采用库来开发及学习的原因 53
7.3实验:构建库函数雏形 53
7.3.1修改寄存器地址封装 54
7.3.2定义访问外设的结构体指针 55
7.3.3定义初始化结构体 59
7.3.4定义引脚模式的枚举类型 60
7.3.5定义GPIO初始化函数 62
7.3.6使用函数点亮LED 64
7.3.7下载验证 66
7.3.8总结 66
第8章 初识STM32标准库 67
8.1 CMSIS标准及库层次关系 67
8.1.1库目录、文件简介 68
8.1.2各库文件间的关系 74
8.2使用帮助文档 75
8.2.1常用官方资料 75
8.2.2初识库函数 76
第9章 新建工程——库函数版 78
9.1新建本地工程文件夹 78
9.2新建工程 79
9.3配置魔术棒选项卡 82
9.4下载器配置 85
9.5选择Flash大小 86
第10章GPIO输出——使用固件库点亮LED 88
10.1硬件设计 88
10.2软件设计 88
10.2.1编程要点 89
10.2.2代码分析 89
10.2.3下载验证 94
10.3 STM32标准库补充知识 94
第11章GPIO输入——按键检测 98
11.1硬件设计 98
11.2软件设计 99
11.2.1编程要点 99
11.2.2代码分析 99
11.2.3下载验证 102
第12章GPIO——位带操作 103
12.1位带简介 103
12.1.1外设位带区 103
12.1.2 SRAM位带区 104
12.1.3位带区和位带别名区地址转换 104
12.2 GPIO位带操作 105
第13章 启动文件 108
13.1启动文件简介 108
13.2查找ARM汇编指令 108
13.3启动文件代码讲解 109
第14章RCC——使用HSE/HSI配置时钟 116
14.1 RCC主要作用——时钟部分 116
14.2 RCC框图剖析——时钟树 116
14.2.1系统时钟 116
14.2.2其他时钟 121
14.3配置系统时钟实验 122
14.3.1使用HSE 122
14.3.2使用HSI 122
14.3.3硬件设计 123
14.3.4软件设计 123
14.3.5下载验证 129
第15章STM32中断应用概览 130
15.1异常类型 130
15.2 NVIC简介 131
15.2.1 NVIC寄存器简介 131
15.2.2 NVIC中断配置固件库 132
15.3优先级的定义 132
15.3.1优先级定义 132
15.3.2优先级分组 133
15.4中断编程 134
第16章EXT I——外部中断/事件控制器 136
16.1 EXTI简介 136
16.2 EXTI功能框图 136
16.3中断/事件线 138
16.4 EXTI初始化结构体详解 139
16.5外部中断控制实验 139
16.5.1硬件设计 140
16.5.2软件设计 140
16.5.3下载验证 144
第17章SysTick——系统定时器 145
17.1 SysTick简介 145
17.2 SysTick寄存器介绍 145
17.3 SysTick定时实验 146
17.3.1硬件设计 146
17.3.2软件设计 146
第18章 通信的基本概念 152
18.1串行通信与并行通信 152
18.2全双工、半双工及单工通信 153
18.3同步通信与异步通信 153
18.4通信速率 154
第19章USART——串口通信 155
19.1串口通信协议简介 155
19.1.1物理层 155
19.1.2协议层 158
19.2 STM32的USART简介 159
19.3 USART功能框图 160
19.4 USART初始化结构体详解 166
19.5 USART 1接发通信实验 167
19.5.1硬件设计 168
19.5.2软件设计 168
19.5.3下载验证 173
19.6 USART1指令控制RGB彩灯实验 174
19.6.1硬件设计 174
19.6.2软件设计 174
19.6.3下载验证 179
第20章DMA 180
20.1 DMA简介 180
20.2 DMA功能框图 180
20.3 DMA数据配置 184
20.4 DMA初始化结构体详解 188
20.5 DMA存储器到存储器模式实验 190
20.5.1硬件设计 190
20.5.2软件设计 190
20.5.3下载验证 195
20.6 DMA存储器到外设模式实验 195
20.6.1硬件设计 195
20.6.2软件设计 195
20.6.3下载验证 199
第21章 常用存储器介绍 200
21.1存储器种类 200
21.2 RAM存储器 200
21.2.1 DRAM 201
21.2.2 SRAM 202
21.2.3 DRAM与SRAM的应用场合 202
21.3非易失性存储器 202
21.3.1 ROM存储器 202
21.3.2 Flash存储器 203
第22章I2C——读写EEPROM 205
22.1 I2C协议简介 205
22.1.1 I2C物理层 205
22.1.2协议层 206
22.2 STM32的I2C特性及架构 209
22.2.1STM32的I2C外设简介 209
22.2.2 STM32的I2C架构剖析 210
22.2.3通信过程 212
22.3 I2C初始化结构体详解 213
22.4 I2C ——读写EEPROM实验 215
22.4.1硬件设计 215
22.4.2软件设计 216
22.4.3下载验证 234
第23章SPI——读写串行Flash 235
23.1 SPI协议简介 235
23.1.1 SPI物理层 235
23.1.2协议层 236
23.2 STM32的SPI特性及架构 238
23.2.1 STM32的SPI外设简介 238
23.2.2 STM32的SPI架构剖析 239
23.2.3通信过程 241
23.3 SPI初始化结构体详解 242
23.4 SPI——读写串行Flash实验 243
23.4.1硬件设计 243
23.4.2软件设计 244
23.4.3下载验证 264
第24章 串行Flash文件系统FatFs 265
24.1文件系统 265
24.2 FatFs文件系统简介 266
24.2.1 FatFs的目录结构 266
24.2.2 FatFs帮助文档 266
24.2.3 FatFs源码 267
24.3 FatFs文件系统移植实验 268
24.3.1 FatFs程序结构图 268
24.3.2硬件设计 269
24.3.3 FatFs移植步骤 269
24.3.4 FatFs底层设备驱动函数 271
24.3.5 FatFs功能配置 276
24.3.6 FatFs功能测试 277
24.3.7下载验证 280
24.4 FatFs功能使用实验 281
24.4.1硬件设计 281
24.4.2软件设计 281
24.4.3下载验证 286
第25章FMC——扩展外部SDRAM 287
25.1 SDRAM控制原理 287
25.1.1 SDRAM信号线 288
25.1.2控制逻辑 289
25.1.3地址控制 289
25.1.4 SDRAM的存储阵列 289
25.1.5数据输入输出 289
25.1.6 SDRAM的命令 290
25.1.7 SDRAM的初始化流程 295
25.1.8 SDRAM的读写流程 296
25.2 FMC简介 297
25.3 FMC框图剖析 298
25.4 FMC的地址映射 300
25.5 SDRAM时序结构体 302
25.6 SDRAM初始化结构体 303
25.7 SDRAM命令结构体 304
25.8 FMC——扩展外部SDRAM实验 305
25.8.1硬件设计 305
25.8.2软件设计 305
25.8.3下载验证 316
第26章LTDC/DMA2D——液晶显示 317
26.1显示器简介 317
26.1.1液晶显示器 317
26.1.2 LED和OLED显示器 318
26.1.3显示器的基本参数 319
26.2液晶屏控制原理 319
26.2.1液晶面板的控制信号 320
26.2.2液晶数据传输时序 321
26.2.3显存 323
26.3 LTDC液晶控制器简介 323
26.3.1图像数据混合 323
26.3.2 LTDC结构框图剖析 324
26.4 DMA2D图形加速器简介 327
26.5 LTDC初始化结构体 329
26.6 LTDC层级初始化结构体 331
26.7 DMA2D初始化结构体 334
26.8 LTDC/DMA2D——液晶显示实验 336
26.8.1硬件设计 336
26.8.2软件设计 338
26.8.3下载验证 358
第27章LTDC——液晶显示中英文 359
27.1字符编码 359
27.1.1 ASCII编码 359
27.1.2中文编码 362
27.1.3 Unicode字符集和编码 365
27.1.4 UTF-32 365
27.1.5 UTF-16 365
27.1.6 UTF-8 366
27.1.7 BOM 367
27.2字模简介 367
27.2.1字模的构成 368
27.2.2字模显示原理 368
27.2.3如何制作字模 370
27.2.4字模寻址公式 371
27.2.5存储字模文件 372
27.3 LTDC——各种模式的液晶显示字符实验 372
27.3.1硬件设计 373
27.3.2显示ASCII编码的字符 373
27.3.3显示GB2312编码的字符 382
27.3.4显示任意大小的字符 391
27.3.5下载验证 398
第28章 电容触摸屏——触摸画板 399
28.1触摸屏简介 399
28.1.1电阻触摸屏检测原理 399
28.1.2电容触摸屏检测原理 401
28.2电容触摸屏控制芯片 402
28.2.1 GT9157芯片的引脚 403
28.2.2上电时序与I2C设备地址 404
28.2.3寄存器配置 404
28.2.4读取坐标信息 406
28.3电容触摸屏——触摸画板实验 408
28.3.1硬件设计 408
28.3.2软件设计 409
28.3.3下载验证 430
第29章ADC——电压采集 431
29.1 ADC简介 431
29.2 ADC功能框图剖析 431
29.2.1 ADC功能 431
29.2.2电压转换 437
29.3 ADC初始化结构体详解 437
29.4独立模式单通道采集实验 438
29.4.1硬件设计 439
29.4.2软件设计 439
29.4.3下载验证 443
29.5独立模式多通道采集实验 443
29.5.1硬件设计 443
29.5.2软件设计 443
29.5.3下载验证 449
29.6三重ADC交替模式采集实验 449
29.6.1硬件设计 449
29.6.2软件设计 450
29.6.3下载验证 455
第30章TIM——基本定时器 456
30.1 TIM简介 456
30.2基本定时器 456
30.3基本定时器功能框图 458
30.4定时器初始化结构体详解 460
30.5基本定时器定时实验 461
30.5.1硬件设计 461
30.5.2软件设计 461
30.5.3下载验证 464
第31章TIM——高级定时器 465
31.1高级控制定时器 465
31.2高级控制定时器功能框图 466
31.3输入捕获应用 476
31.3.1测量脉宽或者频率 476
31.3.2 PWM输入模式 477
31.4输出比较应用 478
31.5定时器初始化结构体详解 480
31.6 PWM互补输出实验 483
31.6.1硬件设计 484
31.6.2软件设计 484
31.6.3下载验证 488
31.7 PWM输入捕获实验 489
31.7.1硬件设计 489
31.7.2软件设计 489
31.7.3下载验证 494
第32章TIM——电容按键检测 495
32.1电容按键原理 495
32.2电容按键检测实验 496
32.2.1硬件设计 497
32.2.2软件设计 497
32.2.3下载验证 504
第33章SDIO—— SD卡读写测试 505
33.1 SDIO简介 505
33.2 SD卡物理结构 506
33.3 SDIO总线 507
33.3.1总线拓扑 507
33.3.2总线协议 508
33.3.3命令 510
33.3.4响应 512
33.4 SD卡的操作模式及切换 514
33.4.1 SD卡的操作模式 514
33.4.2卡识别模式 514
33.4.3数据传输模式 516
33.5 STM32的SDIO功能框图 516
33.6 SDIO初始化结构体 521
33.7 SDIO命令初始化结构体 522
33.8 SDIO数据初始化结构体 523
33.9 SD卡读写测试实验 523
33.9.1硬件设计 524
33.9.2软件设计 524
33.9.3下载验证 549
第34章 基于SD卡的FatFs文件系统 550
34.1 FatFs移植步骤 550
34.2 FatFs接口函数 552
34.3 FatFs功能测试 557
第35章I2S——音频播放与录音输入 561
35.1 I2S简介 561
35.1.1数字音频技术 561
35.1.2 I2S总线接口 562
35.1.3音频数据传输协议标准 562
35.2 I2S功能框图 565
35.3 WM8978音频编译码器 567
35.4 WAV格式文件 569
35.4.1 RIFF文件规范 570
35.4.2 WAV文件 570
35.4.3 WAV文件实例分析 571
35.5 I2S初始化结构体详解 571
35.6录音与回放实验 572
35.6.1硬件设计 573
35.6.2软件设计 573
35.6.3下载验证 601
35.7 MP3播放器 601
35.7.1 MP3文件结构 602
35.7.2 MP3解码库 605
35.7.3 Helix解码库移植 606
35.7.4 MP3播放器功能实现 606
35.7.5下载验证 614
第36章ETH—— LwI P以太网通信 615
36.1互联网模型 615
36.2以太网 616
36.2.1 PHY层 616
36.2.2 MAC子层 617
36.3 TCP/IP协议栈 618
36.3.1需要协议栈的原因 619
36.3.2各网络层的功能 619
36.4以太网外设 620
36.4.1 SMI接口 621
36.4.2 MII和RMII接口 623
36.4.3 MAC数据包发送和接收 624
36.4.4 MAC过滤 626
36.5 PHY: LAN8720A 626
36.6 LwIP:轻型TCP/IP协议栈 629
36.7 ETH初始化结构体详解 629
36.8以太网通信实验:无操作系统LwIP移植 635
36.8.1硬件设计 635
36.8.2移植步骤 635
36.8.3下载验证 661
36.9基于μCOS-Ⅲ移植LwIP实验 663
第37章CAN——通信实验 680
37.1 CAN协议简介 680
37.1.1 CAN物理层 680
37.1.2协议层 684
37.2 STM32的CAN外设简介 690
37.3 CAN初始化结构体 698
37.4 CAN发送及接收结构体 700
37.5 CAN筛选器结构体 701
37.6 CAN——双机通信实验 703
37.6.1硬件设计 703
37.6.2软件设计 704
37.6.3下载验证 713
第38章RS-485通信实验 714
38.1 RS-485通信协议简介 714
38.2 RS-485——双机通信实验 715
38.2.1硬件设计 715
38.2.2软件设计 716
38.2.3下载验证 723
第39章 电源管理——实现低功耗 724
39.1 STM32的电源管理简介 724
39.1.1电源监控器 724
39.1.2 STM32的电源系统 726
39.1.3 STM32的功耗模式 727
39.2电源管理相关的库函数及命令 729
39.2.1配置PVD监控功能 729
39.2.2 WFI与WFE命令 729
39.2.3进入停止模式 730
39.2.4进入待机模式 731
39.3 PWR——睡眠模式实验 732
39.3.1硬件设计 732
39.3.2软件设计 732
39.3.3下载验证 735
39.4 PWR——停止模式实验 735
39.4.1硬件设计 735
39.4.2软件设计 735
39.4.3下载验证 739
39.5 PWR——待机模式实验 739
39.5.1硬件设计 740
39.5.2软件设计 740
39.5.3下载验证 743
39.6 PWR—— PVD电源监控实验 743
39.6.1硬件设计 743
39.6.2软件设计 745
39.6.3下载验证 747
第40章RTC——实时时钟 748
40.1RTC简介 748
40.2 RTC功能框图解析 748
40.3 RTC初始化结构体讲解 751
40.4 RTC时间结构体讲解 752
40.5 RTC日期结构体讲解 753
40.6 RTC闹钟结构体讲解 753
40.7 RTC—日历实验 754
40.7.1硬件设计 754
40.7.2软件设计 754
40.7.3下载验证 760
40.8 RTC—闹钟实验 760
40.8.1硬件设计 760
40.8.2软件设计 760
40.8.3下载验证 765
第41章DCMI—— OV5640摄像头 766
41.1摄像头简介 766
41.1.1数字摄像头与模拟摄像头的区别 766
41.1.2 CCD与CMOS的区别 767
41.2 OV5640摄像头 767
41.2.1 OV5640传感器简介 769
41.2.2 OV5640引脚及功能框图 769
41.2.3 SCCB时序 771
41.2.4 OV5640的寄存器 772
41.2.5像素数据输出时序 773
41.3 STM32的DCMI接口简介 773
41.3.1 DCMI整体框图 774
41.3.2 DCMI接口内部结构 775
41.3.3同步方式 775
41.3.4捕获模式及捕获率 776
41.4 DCMI初始化结构体 776
41.5 DCMI——OV 5640摄像头实验 777
41.5.1硬件设计 777
41.5.2软件设计 779
41.5.3下载验证 797
第42章MDK的编译过程及文件类型全解 798
42.1编译过程 798
42.1.1编译过程简介 798
42.1.2具体工程中的编译过程 799
42.2程序的组成、存储与运行 800
42.2.1 CODE、RO、RW、 ZI Data域及堆栈空间 800
42.2.2程序的存储与运行 801
42.3编译工具链 802
42.3.1设置环境变量 803
42.3.2 armcc、armasm及 armlink 804
42.3.3 armar、 fromelf及用户指令 807
42.4 MDK工程的文件类型 808
42.4.1 uvprojx、 uvoptx、uvguix及ini工程文件 809
42.4.2源文件 811
42.4.3 Output目录下生成的文件 811
42.4.4 Listing目录下的文件 831
42.4.5 sct分散加载文件的格式与应用 837
42.5实验:自动分配变量到外部SDRAM空间 846
42.5.1硬件设计 846
42.5.2软件设计 847
42.5.3下载验证 853
42.6实验:优先使用内部SRAM并把堆区分配到SDRAM空间 853
42.6.1硬件设计 854
42.6.2软件设计 854
42.6.3下载验证 864
第43章在SRAM中调试代码 865
43.1在RAM中调试代码 865
43.2 STM32的启动方式 865
43.3内部Flash的启动过程 867
43.4实验:在内部SRAM中调试代码 869
43.4.1硬件设计 869
43.4.2软件设计 870
43.4.3下载验证 877
第44章 读写内部Flash 878
44.1 STM32的内部Flash简介 878
44.2对内部Flash的写入过程 881
44.3查看工程的空间分布 882
44.4操作内部Flash的库函数 884
44.5实验:读写内部Flash 887
44.5.1硬件设计 887
44.5.2软件设计 887
44.5.3下载验证 893
第45章 设置Flash的读写保护及解除 894
45.1选项字节与读写保护 894
45.1.1选项字节的内容 894
45.1.2 RDP读保护级别 896
45.1.3 PCROP代码读出保护 898
45.2修改选项字节的过程 898
45.3操作选项字节的库函数 899
45.4实验:设置读写保护及解除 901
45.4.1硬件设计 902
45.4.2软件设计 902
45.4.3下载验证 908