STM32库开发实战指南:基于STM32F103 MiNi开发板

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

 

描述


主要内容

本书基于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-MiNi开发板。学习的时候如果基于该硬件平台做实验,必会达到事半功倍的效果,可以省去中间移植时遇到的各种问题。


教学视频

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


本书的技术论坛

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

其他信息

配套硬件

野火STM32F103 MiNi开发板

出版社

页数

682

ISBN

出版时间

2017-06

版次

2

目录

第1章 如何使用本书 1
1.1 本书的学习顺序 1
1.2 本书的参考资料 1
1.3 本书的编写风格 1
1.4 本书的配套硬件 1
1.5 本书的技术论坛 2
第2章 如何安装KEIL5 4
2.1 温馨提示 4
2.2 获取KEIL5安装包 4
2.3 开始安装KEIL5 4
2.4 安装STM32芯片包 7
第3章 如何用DAP仿真器下载程序 9
3.1 仿真器简介 9
3.2 硬件连接 9
3.3 仿真器配置 10
3.4 选择目标板 12
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章 新建工程—寄存器版 44
7.1 新建工程 44
7.2 下载程序 51
第8章 使用寄存器点亮LED灯 52
8.1 GPIO简介 52
8.2 GPIO框图剖析 52
8.3 实验:使用寄存器点亮LED灯 59
第9章 自己写库—构建库函数雏形 67
9.1 什么是STM32函数库 67
9.2 为什么采用库来开发及学习? 68
9.3 实验:构建库函数雏形 68
第10章 初识STM32标准库 83
10.1 CMSIS标准及库层次关系 83
10.2 使帮助文档 91
第11章 新建工程—库函数版 94
11.1 新建工程 94
第12章 GPIO输出—使用固件库点亮LED 104
12.1 硬件设计 104
12.2 软件设计 104
12.3 STM32标准库补充知识 108
第13章 GPIO输入—按键检测 112
13.1 硬件设计 112
13.2 软件设计 113
第14章 GPIO—位带操作 117
14.1 位带简介 117
14.2 GPIO位带操作 119
第15章 启动文件详解 122
15.1 启动文件简介 122
15.2 查找ARM汇编指令 122
15.3 启动文件代码讲解 124
第16章 RCC—使用HSE/HSI配置时钟 130
16.1 RCC主要作用—时钟部分 130
16.2 RCC框图剖析—时钟部分 130
16.3 配置系统时钟实验 135
第17章 STM32中断应用概览 142
17.1 异常类型 142
17.2 NVIC简介 143
17.3 优先级的定义 144
17.4 中断编程 145
第18章 EXTI—外部中断/事件控制器 147
18.1 EXTI简介 147
18.2 EXTI功能框图 147
18.3 中断/事件线 149
18.4 EXTI初始化结构体详解 150
18.5 外部中断控制实验 151
第19章 SysTick—系统定时器 156
19.1 SysTick简介 156
19.2 SysTick寄存器介绍 156
19.3 SysTick定时实验 157
第20章 通讯的基本概念 165
20.1 串行通讯与并行通讯 165
20.2 全双工、半双工及单工通讯 166
20.3 同步通讯与异步通讯 167
20.4 通讯速率 169
第21章 USART—串口通讯 170
21.1 串口通讯协议简介 170
21.2 STM32的USART简介 175
21.3 USART功能框图 175
21.4 USART初始化结构体详解 180
21.5 USART1接发通信实验 182
21.6 USART1指令控制RGB彩灯实验 188
21.7 课后练习 192
第22章 DMA—直接存储器访问 193
22.1 DMA简介 193
22.2 DMA功能框图 193
22.3 DMA数据配置 196
22.4 DMA初始化结构体详解 197
22.5 DMA存储器到存储器模式实验 198
22.6 DMA存储器到外设模式实验 202
第23章 常用存储器介绍 206
23.1 存储器种类 206
23.2 RAM存储器 206
23.3 非易失性存储器 208
第24章 I2C—读写EEPROM 211
24.1 I2C协议简介 211
24.2 软件I2C和硬件I2C 215
24.3 I2C—读写EEPROM实验 216
第25章 SPI—读写串行FLASH 236
25.1 SPI协议简介 236
25.2 STM32的SPI特性及架构 240
25.3 SPI初始化结构体详解 243
25.4 SPI—读写串行FLASH实验 244
第26章 串行FLASH文件系统FatFs 264
26.1 文件系统 264
26.2 FatFs文件系统简介 265
26.3 FatFs文件系统移植实验 268
26.4 FatFs功能使用实验 281
第27章 LCD—液晶显示 287
27.1 显示器简介 287
27.2 液晶控制原理 290
27.3 秉火3.2/2.8寸液晶屏简介 295
27.4 模拟8080接口时序 299
27.5 液晶显示实验 300
第28章 LCD—液晶显示中英文 324
28.1 字符编码 324
28.2 什么是字模? 332
28.3 各种模式的液晶显示字符实验 338
第29章 电阻触摸屏—触摸画板 361
29.1 触摸屏简介 361
29.2 电阻触摸屏—触摸画板实验 366
第30章 ADC—电压采集 384
30.1 ADC简介 384
30.2 ADC功能框图剖析 385
30.3 ADC初始化结构体详解 390
30.4 独立模式单通道采集实验 391
30.5 独立模式多通道采集实验 396
30.6 双重ADC同步规则模式采集实验 400
第31章 TIM—基本定时器 407
31.1 定时器分类 407
31.2 基本定时器功能框图讲解 407
31.3 定时器初始化结构体详解 409
31.4 基本定时器定时实验 409
第32章 TIM—高级定时器 413
32.1 高级控制定时器 413
32.2 高级控制定时器功能框图 413
32.3 输入捕获应用 423
32.4 输出比较应用 425
32.5 定时器初始化结构体详解 427
32.6 PWM互补输出实验 430
32.7 脉宽测量输入捕获实验 434
32.8 PWM输入捕获实验 439
第33章 TIM—电容按键检测 448
33.1 电容按键原理 448
33.2 电容按键检测实验 450
第34章 IWDG—独立看门狗 458
34.1 IWDG简介 458
34.2 IWDG功能框图剖析 458
34.3 怎么用IWDG 460
34.4 IWDG超时实验 460
第35章 WWDG—窗口看门狗 464
35.1 WWDG简介 464
35.2 WWDG功能框图剖析 465
35.3 怎么用WWDG 467
35.4 WWDG喂狗实验 467
第36章 SD卡—读写测试(SPI模式) 472
36.1 SD卡简介 472
36.2 SD卡物理结构 473
36.3 SD卡命令控制说明 476
36.4 SD卡的初始化流程及工作模式 480
36.5 SD卡读写测试实验 483
第37章 基于SD卡的FatFs文件系统 508
37.1 FatFs移植步骤 508
37.2 FatFs接口函数 510
37.3 FatFs功能测试 513
第38章 DAC—输出正弦波 517
38.1 DAC简介 517
38.2 DAC功能框图剖析 517
38.3 DAC初始化结构体详解 518
38.4 DAC输出正弦波实验 520
第39章 电源管理—实现低功耗 530
39.1 STM32的电源管理简介 530
39.2 电源管理相关的库函数及命令 535
39.3 PWR—睡眠模式实验 538
39.4 PWR—停止模式实验 541
39.5 PWR—待机模式实验 545
39.6 PWR—PVD电源监控实验 548
第40章 RTC—实时时钟 553
40.1 RTC实时时钟简介 553
40.2 RTC外设框图剖析 554
40.3 UNIX时间戳 555
40.4 与RTC控制相关的库函数 556
40.5 利用RTC提供北京时间 559
第41章 MDK的编译过程及文件类型全解 572
41.1 编译过程 572
41.2 程序的组成、存储与运行 574
41.3 编译工具链 577
41.4 MDK工程的文件类型 585
41.5 实验:自动分配变量到指定的SRAM空间 625
41.6 实验:优先使用内部SRAM并把堆区分配到指定空间 634
第42章 在SRAM中调试代码 642
42.1 在RAM中调试代码 642
42.2 STM32的启动方式 642
42.3 内部FLASH的启动过程 644
42.4 实验:在内部SRAM中调试代码 646
第43章 读写内部FLASH 659
43.1 STM32的内部FLASH简介 659
43.2 对内部FLASH的写入过程 661
43.3 查看工程的空间分布 662
43.4 操作内部FLASH的库函数 663
43.5 实验:读写内部FLASH 666
第44章 设置FLASH的读写保护及解除 669
44.1 选项字节与读写保护 669
44.2 修改选项字节的过程 672
44.3 操作选项字节的库函数 672
44.4 实验:设置读写保护及解除 676
联系我们 682

资料下载

资料百度云下载链接:

 

密码:

在线阅读

在线阅读