STM32库开发实战指南:基于STM32F103霸道

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

点击购买

 

描述


主要内容

本书基于STM32F103芯片,着重讲解STM32F103的外设及其应用,力争全面分析每个外设的功能框图和外设的使用方法,让读者可以轻松玩转STM32F103。全书基本上每章对应一个外设,主要内容大概分为三个部分:第一部分为简介,第二部分为外设功能框图分析,第三部分为代码讲解。

本书内容翔实,案例丰富,配有大量示例代码,可作为高校电子信息、通信工程、信息工程等专业的教材,也适合作为从事嵌入式领域科技工作者的参考书。


再版说明

本书是《STM32库开发实战指南》的第2版,第1版解决了当时市面上几乎没有关于STM32库开发技术书籍的燃眉之急,并且受到了广大读者的好评。
但由于技术的革新、读者的反馈以及自身经验的积累,我们发现第1版书籍还存在一些缺陷:目前配套的硬件开发板已更新换代,部分程序已不再适用;从寄存器开发过渡到库函数开发的教学过程不够平滑; 介绍STM32各种外设的深入度不足。
因此,第2版中对大部分的内容进行了改进:升级代码,匹配最新的开发板;增加了自行编写库函数的入门章节,引导读者加深对库函数原理的理解;每个章节增加了STM32外设框图剖析,增加了库函数结构体说明,使读者更了解基本原理,便于以后迁移至不同的芯片平台;以本书为教材,制作了教学课件,并录制了非常详细的教学视频,使之更适合于高校、培训机构及员工培训时使用。


本书的学习顺序

本书分为基础篇和提高篇。基础篇需要按照顺序学习,讲究循序渐进,步步为营。学习完基础篇之后,已经算是基本入门STM32开发了。提高篇属于高级例程,学习的时候并不一定要按照书中的章节排序,可根据需要跳跃式地学习。


本书的编写风格

本书着重讲解STM32F103的外设以及外设的应用,力争全面分析每个外设的功能框图和外设的使用方法,让读者可以全面 、细致地掌握STM32F103系列芯片。基本每个章节对应一个外设,每章的主要内容大致分为3个部分:第1部分为简介,第2部分为外设功能框图分析,第3部分为代码讲解。
外设简介是作者用自己的话把外设概括性地介绍一遍,力图语句简短,通俗易懂,并不会完全照抄数据手册的介绍。
外设功能框图分析则是每章的重点,该部分会详细讲解功能框图中每个部分的作用,这是学习STM32F103的精髓所在,掌握了整个外设的框图则可以熟练地使用该外设,进而熟练地编程,日后学习其他型号的单片机也将会得心应手。因为即使单片机的型号不同,外设的框图也是基本一样的。这一步的学习比较枯燥,但是必须下功夫学,方能达成所愿。
代码分析则是针对使用该外设的实验进行讲解,主要分析代码流程和一些编程的注意事项。在掌握了框图之后,代码部分则是手到擒来。


本书的参考资料

本书的主要参考资料为:《STM32F10x-?中文参考手册》《STM32F10x-?数据手册》以及《Cortex-M3权威指南》。它们是ST及ARM官方的资料,属于精华版,全面翔实,无所不包。限于篇幅问题,本书不可能面面俱到,只侧重于框图分析和代码讲解,有关寄存器的详细描述则略过。在学习本书的时候,涉及寄存器描述部分还请参考上述两本手册,这样学习效果会更佳。
本书的配套资料


硬件平台

本书配套的硬件平台为:野火STM32F103-霸道开发板,型号简称为“霸道”。学习的时候如果基于该硬件平台做实验,必会达到事半功倍的效果,可以省去中间移植时遇到的各种问题。


教学视频

为提高学习效率,我们为本书制作了配套的课件PPT以及教学视频,请到论坛http://www.firebbs.cn上观看或下载。


本书的技术论坛

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

其他信息

配套硬件

野火STM32F103霸道开发板

出版社

页数

917

ISBN

出版时间

2017-06

版次

2

目录

第1章 如何使用本书 2
1.1 本书的学习顺序 2
1.2 本书的参考资料 2
1.3 本书的编写风格 2
1.4 本书的配套硬件 2
1.5 本书的技术论坛 3
第2章 如何安装KEIL5 5
2.1 温馨提示 5
2.2 获取KEIL5安装包 5
2.3 开始安装KEIL5 5
2.4 安装STM32芯片包 8
第3章 如何用DAP仿真器下载程序 10
3.1 仿真器简介 10
3.2 硬件连接 10
3.3 仿真器配置 11
3.4 选择目标板 13
3.5 下载程序 13
第4章 如何用串口下载程序 15
4.1 安装USB转串口驱动 15
4.2 硬件连接 15
4.3 开始下载 16
4.4 ISP一键下载原理分析 18
第5章 初识STM32 21
5.1 什么是STM32 21
5.2 STM32能做什么 21
5.3 STM32怎么选型 24
第6章 什么是寄存器 29
6.1 什么是寄存器 29
6.2 STM32长啥样 29
6.3 芯片里面有什么 30
6.4 存储器映射 33
6.5 寄存器映射 36
第7章 新建工程—寄存器版 45
7.1 新建工程 45
7.2 下载程序 52
第8章 使用寄存器点亮LED灯 53
8.1 GPIO简介 53
8.2 GPIO框图剖析 53
8.3 实验:使用寄存器点亮LED灯 60
第9章 自己写库—构建库函数雏形 68
9.1 什么是STM32函数库 68
9.2 为什么采用库来开发及学习? 69
9.3 实验:构建库函数雏形 69
第10章 初识STM32标准库 84
10.1 CMSIS标准及库层次关系 84
10.2 使帮助文档 92
第11章 新建工程—库函数版 95
11.1 新建工程 95
第12章 GPIO输出—使用固件库点亮LED 106
12.1 硬件设计 106
12.2 软件设计 106
12.3 STM32标准库补充知识 111
第13章 GPIO输入—按键检测 115
13.1 硬件设计 115
13.2 软件设计 116
第14章 GPIO—位带操作 120
14.2 GPIO位带操作 122
第15章 启动文件详解 125
15.1 启动文件简介 125
15.2 查找ARM汇编指令 125
15.3 启动文件代码讲解 127
第16章 RCC—使用HSE/HSI配置时钟 133
16.1 RCC主要作用—时钟部分 133
16.2 RCC框图剖析—时钟部分 133
16.3 配置系统时钟实验 138
第17章 STM32中断应用概览 145
17.1 异常类型 145
17.2 NVIC简介 146
17.3 优先级的定义 147
17.4 中断编程 148
第18章 EXTI—外部中断/事件控制器 150
18.1 EXTI简介 150
18.2 EXTI功能框图 150
18.3 中断/事件线 152
18.4 EXTI初始化结构体详解 153
18.5 外部中断控制实验 154
第19章 SysTick—系统定时器 159
19.1 SysTick简介 159
19.2 SysTick寄存器介绍 159
19.3 SysTick定时实验 160
第20章 通讯的基本概念 167
20.1 串行通讯与并行通讯 167
20.2 全双工、半双工及单工通讯 168
20.3 同步通讯与异步通讯 169
20.4 通讯速率 171
第21章 USART—串口通讯 173
21.1 串口通讯协议简介 173
21.2 STM32的USART简介 178
21.3 USART功能框图 179
21.4 USART初始化结构体详解 183
21.5 USART1接发通信实验 185
21.6 USART1指令控制RGB彩灯实验 191
第22章 DMA—直接存储区访问 196
22.1 DMA简介 196
22.2 DMA功能框图 196
22.3 DMA数据配置 199
22.4 DMA初始化结构体详解 200
22.5 DMA存储器到存储器模式实验 201
22.6 DMA存储器到外设模式实验 206
第23章 常用存储器介绍 210
23.1 存储器种类 210
23.2 RAM存储器 210
23.3 非易失性存储器 212
第24章 I2C—读写EEPROM 215
24.1 I2C协议简介 215
24.2 STM32的I2C特性及架构 220
24.3 I2C初始化结构体详解 224
24.4 I2C—读写EEPROM实验 226
第25章 SPI—读写串行FLASH 243
25.1 SPI协议简介 243
25.2 STM32的SPI特性及架构 247
25.3 SPI初始化结构体详解 250
25.4 SPI—读写串行FLASH实验 251
第26章 串行FLASH文件系统FatFs 271
26.1 文件系统 271
26.2 FatFs文件系统简介 272
26.3 FatFs文件系统移植实验 275
26.4 FatFs功能使用实验 288
第27章 FSMC—扩展外部SRAM 294
27.1 SRAM控制原理 294
27.2 FSMC简介 298
27.3 FSMC框图剖析 298
27.4 FSMC的地址映射 300
27.5 FSMC控制SRAM的时序 302
27.6 SRAM时序结构体 303
27.7 SRAM初始化结构体 304
27.8 FSMC—扩展外部SRAM实验 306
第28章 LCD—液晶显示 316
28.1 显示器简介 316
28.2 液晶控制原理 319
28.3 野火3.2寸液晶屏简介 324
28.4 使用STM32的FSMC模拟8080接口时序 329
28.5 NOR FLASH时序结构体 333
28.6 FSMC初始化结构体 334
28.7 FSMC—液晶显示实验 335
第29章 LCD—液晶显示中英文 360
29.1 字符编码 360
29.2 什么是字模? 368
29.3 各种模式的液晶显示字符实验 374
第30章 电阻触摸屏—触摸画板 397
30.1 触摸屏简介 397
30.2 电阻触摸屏—触摸画板实验 403
第31章 ADC—电压采集 421
31.1 ADC简介 421
31.2 ADC功能框图剖析 422
31.3 ADC初始化结构体详解 427
31.4 独立模式单通道采集实验 428
31.5 独立模式多通道采集实验 433
31.6 双重ADC同步规则模式采集实验 437
第32章 TIM—基本定时器 444
32.1 定时器分类 444
32.2 基本定时器功能框图讲解 444
32.3 定时器初始化结构体详解 446
32.4 基本定时器定时实验 446
第33章 TIM—高级定时器 451
33.1 高级控制定时器 451
33.2 高级控制定时器功能框图 451
33.3 输入捕获应用 461
33.4 输出比较应用 463
33.5 定时器初始化结构体详解 465
33.6 PWM互补输出实验 468
33.7 脉宽测量输入捕获实验 472
33.8 PWM输入捕获实验 478
第34章 TIM—电容按键检测 486
34.1 电容按键原理 486
34.2 电容按键检测实验 488
第35章 IWDG—独立看门狗 496
35.1 IWDG简介 496
35.2 IWDG功能框图剖析 496
35.3 怎么用IWDG 498
35.4 IWDG超时实验 498
第36章 WWDG—窗口看门狗 502
36.1 WWDG简介 502
36.2 WWDG功能框图剖析 503
36.3 怎么用WWDG 505
36.4 WWDG喂狗实验 505
第37章 SDIO—SD卡读写测试 510
37.1 SDIO简介 510
37.2 SD卡物理结构 511
37.3 SDIO总线 513
37.4 SD卡的操作模式及切换 519
37.5 STM32的SDIO功能框图 522
37.6 SDIO初始化结构体 526
37.7 SDIO命令初始化结构体 527
37.8 SDIO数据初始化结构体 528
37.9 SD卡读写测试实验 528
第38章 基于SD卡的FatFs文件系统 556
38.1 FatFs移植步骤 556
38.2 FatFs接口函数 558
38.3 FatFs功能测试 563
第39章 DAC—输出正弦波 567
39.1 DAC简介 567
39.2 DAC功能框图剖析 567
39.3 DAC初始化结构体详解 568
39.4 DAC输出正弦波实验 570
39.5 课后练习 579
第40章 全彩LED灯实验 580
40.1 全彩LED灯简介 580
40.2 全彩LED灯控制原理 580
40.3 硬件设计 581
40.4 软件设计 581
第41章 呼吸灯与SPWM波 588
41.1 呼吸灯简介 588
41.2 呼吸灯与PWM控制原理 588
41.3 硬件设计 590
41.4 单色呼吸灯实验 591
41.5 全彩呼吸灯及输出SPWM波实验 601
第42章 CAN—通讯实验 615
42.1 CAN协议简介 615
42.2 STM32的CAN外设简介 626
42.3 CAN初始化结构体 634
42.4 CAN发送及接收结构体 636
42.5 CAN筛选器结构体 637
42.6 CAN—双机通讯实验 639
第43章 RS-485通讯实验 649
43.1 RS-485通讯协议简介 649
43.2 RS-485的物理层 649
43.3 RS-485—双机通讯实验 650
第44章 电源管理—实现低功耗 658
44.1 STM32的电源管理简介 658
44.2 电源管理相关的库函数及命令 663
44.3 PWR—睡眠模式实验 666
44.4 PWR—停止模式实验 669
44.5 PWR—待机模式实验 673
44.6 PWR—PVD电源监控实验 676
第45章 RTC—实时时钟 681
45.1 RTC实时时钟简介 681
45.2 RTC外设框图剖析 682
45.3 UNIX时间戳 683
45.4 与RTC控制相关的库函数 684
45.5 利用RTC提供北京时间 687
第46章 MDK的编译过程及文件类型全解 701
46.1 编译过程 701
46.2 程序的组成、存储与运行 704
46.3 编译工具链 706
46.4 MDK工程的文件类型 714
46.5 实验:自动分配变量到外部SRAM空间 755
46.6 实验:优先使用内部SRAM并把堆区分配到外部SRAM 764
第47章 在SRAM中调试代码 774
47.1 在RAM中调试代码 774
47.2 STM32的启动方式 774
47.3 内部FLASH的启动过程 776
47.4 实验:在内部SRAM中调试代码 778
第48章 读写内部FLASH 791
48.1 STM32的内部FLASH简介 791
48.2 对内部FLASH的写入过程 793
48.3 查看工程的空间分布 794
48.4 操作内部FLASH的库函数 795
48.5 实验:读写内部FLASH 798
第49章 设置FLASH的读写保护及解除 801
49.1 选项字节与读写保护 801
49.2 修改选项字节的过程 804
49.3 操作选项字节的库函数 804
49.4 实验:设置读写保护及解除 808
第50章 MPU6050传感器—姿态检测 814
50.1 姿态检测 814
50.2 传感器 819
50.3 MPU6050模块简介 821
50.4 MPU6050—获取原始数据实验 824
50.5 MPU6050—利用DMP进行姿态解算 833
50.6 MPU6050—使用第三方上位机 846
第51章 OV7725摄像头驱动 852
51.1 摄像头简介 852
51.2 OV7725摄像头 853
51.3 摄像头驱动实验 867

资料下载

资料百度云下载链接:

 

密码:

在线阅读

在线阅读