STM32库开发实战指南:基于STM32F407

    • 零死角带你玩转STM32
    • 基于STM32F407标准库
    • 配套野火STM32F407霸天虎开发板

 

描述


本书的参考资料

本书参考资料为:《STM32F4xx 中文参考手册》和《Cortex®-M4内核编程手册》,这两本是ST官方的手册,属于精华版,面面俱到,无所不包。限于篇幅问题,本书不可能面面具到,着重框图分析和代码讲解,有关寄存器的详细描述则略过,在学习本书的时候,涉及到寄存器描述部分还请参考这两本手册,这样学习效果会更佳。


本书的编写风格

本书着重讲解F407外设以及外设的应用,力争全面分析每个外设的功能框图和外设的使用方法,让读者可以零死角的玩转STM32—F407。基本每个章节对应一个外设,每章的主要内容大概分为三个部分,第一部分为简介,第二部分为外设功能框图分析,第三部分为代码讲解。

外设简介则是用自己的话把外设概括性的介绍一遍,力图语句简短,通俗易懂,并不会完全照抄数据手册的介绍。

外设功能框图分析则是章节的重点,该部分会详细讲解功能框图的每个部分的作用,这是学习F407的精髓所在,掌握了整个外设的框图则可以熟练的使用该外设,熟练的编程,日后学习其他型号的单片机,也将会得心应手。因为即使单片机的型号不同,外设的框图分析的方法还是基本一样的。这一步的学习比较枯燥,但是必须死磕,方能达成所愿。

代码分析则是讲解使用该外设的实验讲解,主要分析代码流程,和一些编程的注意事项。在掌握了框图之后,代码部分则是手到擒来而已。


本书的配套硬件

本书配套的硬件平台为:野火STM32-F407霸天虎开发板。学习的时候如果配套该硬件平台做实验,学习必会达到事半功倍的效果,可以省去中间移植时遇到的各种问题。


本书的技术论坛

如果在学习过程中遇到问题,可以到论坛发帖交流 ,开源共享,共同进步。鉴于水平有限,本书难免有纰漏,热心的读者也可把勘误发到论坛好让我们改进做得更好,祝您学习愉快,M4的世界,野火与您同行。

 

其他信息

配套硬件

野火STM32F407霸天虎开发板

出版社

页数

1038

ISBN

出版时间

2017-02-01

版次

1

目录

第1章 如何使用本书 1
1.1 本书的参考资料 1
1.2 本书的编写风格 1
1.3 本书的配套硬件 1
1.4 本书的技术论坛 2
第2章 如何安装KEIL5 3
2.1 温馨提示 3
2.2 获取KEIL5安装包 3
2.3 开始安装KEIL5 3
2.4 安装STM32芯片包 6
第3章 如何用DAP仿真器下载程序 8
3.1 仿真器简介 8
3.2 硬件连接 8
3.3 仿真器配置 9
3.4 选择目标板 11
3.5 下载程序 11
第4章 如何用串口下载程序 14
4.1 安装USB转串口驱动 14
4.2 硬件连接 14
4.3 开始下载 15
4.4 ISP一键下载原理分析 16
第5章 初识STM32 19
5.1 什么是STM32 19
5.2 STM32能做什么 19
5.3 STM32怎么选型 23
第6章 什么是寄存器 27
6.1 什么是寄存器 27
6.2 STM32芯片外观 27
6.3 芯片里面有什么 29
6.4 存储器映射 30
6.5 寄存器映射 33
第7章 新建工程—寄存器版 42
7.1 新建本地工程文件夹 42
7.2 开始新建工程 42
7.3 下载程序 49
第8章 使用寄存器点亮LED灯 50
8.1 GPIO简介 50
8.2 GPIO框图剖析 50
8.3 实验:使用寄存器点亮LED灯 56
第9章 自己写库—构建库函数雏形 66
9.1 什么是STM32固件库 66
9.2 为什么采用库来开发及学习? 67
9.3 实验:构建库函数雏形 67
第10章 初识STM32固件库 81
10.1 CMSIS标准及库层次关系 81
10.2 使帮助文档 90
第11章 新建工程—库函数版 93
11.1 新建本地工程文件夹 93
11.2 开始新建工程 94
11.3 下载程序 103
第12章 GPIO输出—使用固件库点亮LED 105
12.1 硬件设计 105
12.2 软件设计 105
12.3 下载验证 111
12.4 STM32标准库补充知识 111
第13章 GPIO输入—按键检测 114
13.1 硬件设计 114
13.2 软件设计 115
13.3 下载验证 118
第14章 GPIO—位带操作 119
14.1 位带简介 119
14.2 GPIO位带操作 121
第15章 启动文件详解 124
15.1 启动文件简介 124
15.2 查找ARM汇编指令 124
15.3 启动文件代码讲解 126
第16章 RCC—使用HSE/HSI配置时钟 132
16.1 RCC主要作用—时钟部分 132
16.2 RCC框图剖析—时钟树 132
16.3 配置系统时钟实验 139
第17章 STM32中断应用概览 147
17.1 异常类型 147
17.2 NVIC简介 148
17.3 优先级的定义 149
17.4 中断编程 150
第18章 EXTI—外部中断/事件控制器 152
18.1 EXTI简介 152
18.2 EXTI功能框图 152
18.3 中断/事件线 154
18.4 EXTI初始化结构体详解 155
18.5 外部中断控制实验 156
第19章 SysTick—系统定时器 161
19.1 SysTick简介 161
19.2 SysTick寄存器介绍 161
19.3 SysTick定时实验 162
第20章 通讯的基本概念 169
20.1 串行通讯与并行通讯 169
20.2 全双工、半双工及单工通讯 170
20.3 同步通讯与异步通讯 171
20.4 通讯速率 173
第21章 USART—串口通讯 174
21.1 串口通讯协议简介 174
21.2 STM32的USART简介 179
21.3 USART功能框图 179
21.4 USART初始化结构体详解 186
21.5 USART1接发通信实验 187
21.6 USART1指令控制RGB彩灯实验 194
第22章 DMA—直接存储区访问 200
22.1 DMA简介 200
22.2 DMA功能框图 200
22.3 DMA数据配置 204
22.4 DMA初始化结构体详解 208
22.5 DMA存储器到存储器模式实验 210
22.6 DMA存储器到外设模式实验 215
第23章 常用存储器介绍 221
23.1 存储器种类 221
23.2 RAM存储器 221
23.3 非易失性存储器 223
第24章 I2C—读写EEPROM 226
24.1 I2C协议简介 226
24.2 STM32的I2C特性及架构 230
24.3 I2C初始化结构体详解 235
24.4 I2C—读写EEPROM实验 236
第25章 SPI—读写串行FLASH 254
25.1 SPI协议简介 254
25.2 STM32的SPI特性及架构 258
25.3 SPI初始化结构体详解 261
25.4 SPI—读写串行FLASH实验 262
第26章 串行FLASH文件系统FatFs 282
26.1 文件系统 282
26.2 FatFs文件系统简介 282
26.3 FatFs文件系统移植实验 286
26.4 FatFs功能使用实验 298
第27章 FSMC—扩展外部SRAM 305
27.1 SRAM控制原理 305
27.2 FSMC简介 309
27.3 FSMC框图剖析 309
27.4 FSMC的地址映射 311
27.5 FSMC控制SRAM的时序 312
27.6 SRAM时序结构体 313
27.7 SRAM初始化结构体 314
27.8 FSMC—扩展外部SRAM实验 316
第28章 LCD—液晶显示 327
28.1 显示器简介 327
28.2 液晶控制原理 330
28.3 野火4.5寸液晶屏简介 335
28.4 使用STM32的FSMC模拟8080接口时序 339
28.5 NOR FLASH时序结构体 343
28.6 FSMC初始化结构体 344
28.7 FSMC—液晶显示实验 345
第29章 LCD—液晶显示中英文 371
29.1 字符编码 371
29.2 什么是字模? 379
29.3 各种模式的液晶显示字符实验 385
第30章 电容触摸屏—触摸画板 408
30.1 触摸屏简介 408
30.2 电容触摸屏控制芯片 413
30.3 电容触摸屏—触摸画板实验 419
第31章 ADC—电压采集 441
31.1 ADC简介 441
31.2 ADC功能框图剖析 442
31.3 ADC初始化结构体详解 447
31.4 独立模式单通道采集实验 449
31.5 独立模式多通道采集实验 454
31.6 三重ADC交替模式采集实验 459
第32章 TIM—基本定时器 466
32.1 TIM简介 466
32.2 基本定时器 467
32.3 基本定时器功能框图 467
32.4 定时器初始化结构体详解 470
32.5 基本定时器定时实验 471
第33章 TIM—高级定时器 475
33.1 高级控制定时器 475
33.2 高级控制定时器功能框图 476
33.3 输入捕获应用 485
33.4 输出比较应用 487
33.5 定时器初始化结构体详解 489
33.6 PWM互补输出实验 492
33.7 PWM输入捕获实验 497
第34章 TIM—电容按键检测 506
34.1 电容按键原理 506
34.2 电容按键检测实验 508
第35章 IWDG—独立看门狗 517
35.1 IWDG简介 517
35.2 IWDG功能框图剖析 517
35.3 怎么用IWDG 519
35.4 IWDG超时实验 519
第36章 WWDG—窗口看门狗 523
36.1 WWDG简介 523
36.2 WWDG功能框图剖析 524
36.3 怎么用WWDG 527
36.4 WWDG喂狗实验 527
第37章 SDIO—SD卡读写测试 533
37.1 SDIO简介 533
37.2 SD卡物理结构 534
37.3 SDIO总线 536
37.4 SD卡的操作模式及切换 542
37.5 STM32的SDIO功能框图 544
37.6 SDIO初始化结构体 548
37.7 SDIO命令初始化结构体 549
37.8 SDIO数据初始化结构体 550
37.9 SD卡读写测试实验 551
第38章 基于SD卡的FatFs文件系统 574
38.1 FatFs移植步骤 574
38.2 FatFs接口函数 576
38.3 FatFs功能测试 580
第39章 DAC—输出正弦波 585
39.1 DAC简介 585
39.2 DAC功能框图剖析 585
39.3 DAC初始化结构体详解 586
39.4 DAC输出正弦波实验 588
第40章 全彩LED灯实验 599
40.1 全彩LED灯简介 599
40.2 全彩LED灯控制原理 599
40.3 硬件设计 600
40.4 软件设计 601
第41章 呼吸灯与SPWM波 608
41.1 呼吸灯简介 608
41.2 呼吸灯与PWM控制原理 608
41.3 硬件设计 610
41.4 单色呼吸灯实验 611
41.5 全彩呼吸灯及输出SPWM波实验 623
第42章 I2S—音频播放与录音输入 639
42.1 I2S简介 639
42.2 I2S功能框图 643
42.3 WM8978音频编译码器 646
42.4 WAV格式文件 647
42.5 I2S初始化结构体详解 650
42.6 录音与回放实验 650
42.7 MP3播放器 675
第43章 ETH—Lwip以太网通信 688
43.1 互联网模型 688
43.2 以太网 689
43.3 TCP/IP协议栈 692
43.4 以太网外设(ETH) 694
43.5 PHY:LAN8720A 700
43.6 LwIP:轻型TCP/IP协议栈 703
43.7 ETH初始化结构体详解 703
43.8 以太网通信实验:无操作系统LwIP移植 709
43.9 基于uCOS-III移植LwIP实验 733
第44章 CAN—通讯实验 748
44.1 CAN协议简介 748
44.2 STM32的CAN外设简介 759
44.3 CAN初始化结构体 767
44.4 CAN发送及接收结构体 769
44.5 CAN筛选器结构体 770
44.6 CAN—双机通讯实验 772
第45章 RS-485通讯实验 782
45.1 RS-485通讯协议简介 782
45.2 RS-485—双机通讯实验 784
第46章 电源管理—实现低功耗 794
46.1 STM32的电源管理简介 794
46.2 电源管理相关的库函数及命令 800
46.3 PWR—睡眠模式实验 803
46.4 PWR—停止模式实验 806
46.5 PWR—待机模式实验 810
46.6 PWR—PVD电源监控实验 813
第47章 RTC—实时时钟 818
47.1 RTC简介 818
47.2 RTC功能框图解析 818
47.3 RTC初始化结构体讲解 821
47.4 RTC时间结构体讲解 821
47.5 RTC日期结构体讲解 822
47.6 RTC闹钟结构体讲解 822
47.7 RTC—日历实验 823
47.8 RTC—闹钟实验 829
第48章 MDK的编译过程及文件类型全解 834
48.1 编译过程 834
48.2 程序的组成、存储与运行 836
48.3 编译工具链 839
48.4 MDK工程的文件类型 845
48.5 实验:自动分配变量到外部SRAM空间 883
48.6 实验:优先使用内部SRAM并把堆区分配到外部SRAM空间 891
第49章 在SRAM中调试代码 901
49.1 在RAM中调试代码 901
49.2 STM32的启动方式 901
49.3 内部FLASH的启动过程 903
49.4 实验:在内部SRAM中调试代码 906
第50章 读写内部FLASH 915
50.1 STM32的内部FLASH简介 915
50.2 对内部FLASH的写入过程 917
50.3 查看工程的空间分布 918
50.4 操作内部FLASH的库函数 920
50.5 实验:读写内部FLASH 923
第51章 设置FLASH的读写保护及解除 930
51.1 选项字节与读写保护 930
51.2 修改选项字节的过程 933
51.3 操作选项字节的库函数 934
51.4 实验:设置读写保护及解除 936
第52章 MPU6050传感器—姿态检测 943
52.1 姿态检测 943
52.2 传感器 948
52.3 MPU6050简介 949
52.4 MPU6050的特性参数 950
52.5 MPU6050—获取原始数据实验 951
52.6 MPU6050—利用DMP进行姿态解算 959
52.7 MPU6050—使用第三方上位机 972
第53章 DCMI—OV2640摄像头 978
53.1 摄像头简介 978
53.2 OV2640摄像头 979
53.3 STM32的DCMI接口简介 987
53.4 DCMI初始化结构体 990
53.5 DCMI—OV2640摄像头实验 991
第54章 DCMI—OV5640摄像头 1004
54.1 摄像头简介 1004
54.2 OV5640摄像头 1005
54.3 STM32的DCMI接口简介 1011
54.4 DCMI初始化结构体 1014
54.5 DCMI—OV5640摄像头实验 1016
联系我们 1038

资料下载

资料百度云下载链接:

 

密码:

在线阅读

在线阅读