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

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

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

着重讲解STM32F429的外设以及外设的应用,让你可以零死角地玩转STM32F429。

内容简介

本书的主要内容将着重介绍STM32的库函数,以及如何使用库的方式进行开发。使初学者能够快速入门能够在此基础上迅速入门,掌握STM32的开发方法。本书内容基于ARM-Cortex M3内核的STM32F429芯片,紧紧围绕“库”展开,系统地讲述了STM32固件库的原理、使用方法。

作者简介

作者刘火良,网名野火,是目前国内大的电子工程师社区阿莫论坛的版主,也是业内畅销的STM32开发板供应商野火嵌入式工作室的联合创始人。野火工作室是嵌入式开发方式中库开发方式的倡导者,也是针对初学者在业内推动学习库开发方法的排头兵。

章节目录

版权信息

前言

第1章 如何安装KEIL5

1.1 温馨提示

1.2 获取KEIL5安装包

1.3 开始安装KEIL5

1.4 安装STM32芯片包

第2章 如何用DAP仿真器下载程序

2.1 仿真器简介

2.2 硬件连接

2.3 仿真器配置

2.4 选择目标板

2.5 下载程序

第3章 初识STM32

3.1 什么是STM32

3.2 STM32能做什么

3.2.1 智能手环

3.2.2 微型四轴飞行器

3.2.3 淘宝众筹

3.3 STM32选型

3.3.1 STM32分类

3.3.2 STM32命名方法

3.3.3 选择合适的MCU

第4章 寄存器

4.1 寄存器简介

4.2 STM32的外观

4.3 芯片里面有什么

4.4 存储器映射

4.5 寄存器映射

4.5.1 STM32的外设地址映射

4.5.2 C语言对寄存器的封装

第5章 新建工程——寄存器版

5.1 新建本地工程文件夹工程

5.1.1 新建本地工程文件夹

5.1.2 新建工程

5.2 下载程序

第6章 使用寄存器点亮LED

6.1 GPIO简介

6.2 GPIO框图剖析

6.2.1 基本结构分析

6.2.2 GPIO工作模式

6.3 实验:使用寄存器点亮LED

6.3.1 硬件连接

6.3.2 启动文件

6.3.3 stm32f4xx.h文件

6.3.4 main文件

6.3.5 下载验证

第7章 自己写库——构建库函数雏形

7.1 STM32函数库简介

7.2 采用库来开发及学习的原因

7.3 实验:构建库函数雏形

7.3.1 修改寄存器地址封装

7.3.2 定义访问外设的结构体指针

7.3.3 定义初始化结构体

7.3.4 定义引脚模式的枚举类型

7.3.5 定义GPIO初始化函数

7.3.6 使用函数点亮LED

7.3.7 下载验证

7.3.8 总结

第8章 初识STM32标准库

8.1 CMSIS标准及库层次关系

8.1.1 库目录、文件简介

8.1.2 各库文件间的关系

8.2 使用帮助文档

8.2.1 常用官方资料

8.2.2 初识库函数

第9章 新建工程——库函数版

9.1 新建本地工程文件夹

9.2 新建工程

9.3 配置魔术棒选项卡

9.4 下载器配置

9.5 选择Flash大小

第10章 GPIO输出——使用固件库点亮LED

10.1 硬件设计

10.2 软件设计

10.2.1 编程要点

10.2.2 代码分析

10.2.3 下载验证

10.3 STM32标准库补充知识

第11章 GPIO输入——按键检测

11.1 硬件设计

11.2 软件设计

11.2.1 编程要点

11.2.2 代码分析

11.2.3 下载验证

第12章 GPIO——位带操作

12.1 位带简介

12.1.1 外设位带区

12.1.2 SRAM位带区

12.1.3 位带区和位带别名区地址转换

12.2 GPIO位带操作

第13章 启动文件

13.1 启动文件简介

13.2 查找ARM汇编指令

13.3 启动文件代码讲解

第14章 RCC——使用HSE/HSI配置时钟

14.1 RCC主要作用——时钟部分

14.2 RCC框图剖析——时钟树

14.2.1 系统时钟

14.2.2 其他时钟

14.3 配置系统时钟实验

14.3.1 使用HSE

14.3.2 使用HSI

14.3.3 硬件设计

14.3.4 软件设计

14.3.5 下载验证

第15章 STM32中断应用概览

15.1 异常类型

15.2 NVIC简介

15.2.1 NVIC寄存器简介

15.2.2 NVIC中断配置固件库

15.3 优先级的定义

15.3.1 优先级定义

15.3.2 优先级分组

15.4 中断编程

第16章 EXTI——外部中断/事件控制器

16.1 EXTI简介

16.2 EXTI功能框图

16.3 中断/事件线

16.4 EXTI初始化结构体详解

16.5 外部中断控制实验

16.5.1 硬件设计

16.5.2 软件设计

16.5.3 下载验证

第17章 SysTick——系统定时器

17.1 SysTick简介

17.2 SysTick寄存器介绍

17.3 SysTick定时实验

17.3.1 硬件设计

17.3.2 软件设计

第18章 通信的基本概念

18.1 串行通信与并行通信

18.2 全双工、半双工及单工通信

18.3 同步通信与异步通信

18.4 通信速率

第19章 USART——串口通信

19.1 串口通信协议简介

19.1.1 物理层

19.1.2 协议层

19.2 STM32的USART简介

19.3 USART功能框图

19.4 USART初始化结构体详解

19.5 USART1接发通信实验

19.5.1 硬件设计

19.5.2 软件设计

19.5.3 下载验证

19.6 USART1指令控制RGB彩灯实验

19.6.1 硬件设计

19.6.2 软件设计

19.6.3 下载验证

第20章 DMA

20.1 DMA简介

20.2 DMA功能框图

20.3 DMA数据配置

20.4 DMA初始化结构体详解

20.5 DMA存储器到存储器模式实验

20.5.1 硬件设计

20.5.2 软件设计

20.5.3 下载验证

20.6 DMA存储器到外设模式实验

20.6.1 硬件设计

20.6.2 软件设计

20.6.3 下载验证

第21章 常用存储器介绍

21.1 存储器种类

21.2 RAM存储器

21.2.1 DRAM

21.2.2 SRAM

21.2.3 DRAM与SRAM的应用场合

21.3 非易失性存储器

21.3.1 ROM存储器

21.3.2 Flash存储器

第22章 I2C——读写EEPROM

22.1 I2C协议简介

22.1.1 I2C物理层

22.1.2 协议层

22.2 STM32的I2C特性及架构

22.2.1 STM32的I2C外设简介

22.2.2 STM32的I2C架构剖析

22.2.3 通信过程

22.3 I2C初始化结构体详解

22.4 I2C——读写EEPROM实验

22.4.1 硬件设计

22.4.2 软件设计

22.4.3 下载验证

第23章 SPI——读写串行Flash

23.1 SPI协议简介

23.1.1 SPI物理层

23.1.2 协议层

23.2 STM32的SPI特性及架构

23.2.1 STM32的SPI外设简介

23.2.2 STM32的SPI架构剖析

23.2.3 通信过程

23.3 SPI初始化结构体详解

23.4 SPI——读写串行Flash实验

23.4.1 硬件设计

23.4.2 软件设计

23.4.3 下载验证

第24章 串行Flash文件系统FatFs

24.1 文件系统

24.2 FatFs文件系统简介

24.2.1 FatFs的目录结构

24.2.2 FatFs帮助文档

24.2.3 FatFs源码

24.3 FatFs文件系统移植实验

24.3.1 FatFs程序结构图

24.3.2 硬件设计

24.3.3 FatFs移植步骤

24.3.4 FatFs底层设备驱动函数

24.3.5 FatFs功能配置

24.3.6 FatFs功能测试

24.3.7 下载验证

24.4 FatFs功能使用实验

24.4.1 硬件设计

24.4.2 软件设计

24.4.3 下载验证

第25章 FMC——扩展外部SDRAM

25.1 SDRAM控制原理

25.1.1 SDRAM信号线

25.1.2 控制逻辑

25.1.3 地址控制

25.1.4 SDRAM的存储阵列

25.1.5 数据输入输出

25.1.6 SDRAM的命令

25.1.7 SDRAM的初始化流程

25.1.8 SDRAM的读写流程

25.2 FMC简介

25.3 FMC框图剖析

25.4 FMC的地址映射

25.5 SDRAM时序结构体

25.6 SDRAM初始化结构体

25.7 SDRAM命令结构体

25.8 FMC——扩展外部SDRAM实验

25.8.1 硬件设计

25.8.2 软件设计

25.8.3 下载验证

第26章 LTDC/DMA2D——液晶显示

26.1 显示器简介

26.1.1 液晶显示器

26.1.2 LED和OLED显示器

26.1.3 显示器的基本参数

26.2 液晶屏控制原理

26.2.1 液晶面板的控制信号

26.2.2 液晶数据传输时序

26.2.3 显存

26.3 LTDC液晶控制器简介

26.3.1 图像数据混合

26.3.2 LTDC结构框图剖析

26.4 DMA2D图形加速器简介

26.5 LTDC初始化结构体

26.6 LTDC层级初始化结构体

26.7 DMA2D初始化结构体

26.8 LTDC/DMA2D——液晶显示实验

26.8.1 硬件设计

26.8.2 软件设计

26.8.3 下载验证

第27章 LTDC——液晶显示中英文

27.1 字符编码

27.1.1 ASCII编码

27.1.2 中文编码

27.1.3 Unicode字符集和编码

27.1.4 UTF-32

27.1.5 UTF-16

27.1.6 UTF-8

27.1.7 BOM

27.2 字模简介

27.2.1 字模的构成

27.2.2 字模显示原理

27.2.3 如何制作字模

27.2.4 字模寻址公式

27.2.5 存储字模文件

27.3 LTDC——各种模式的液晶显示字符实验

27.3.1 硬件设计

27.3.2 显示ASCII编码的字符

27.3.3 显示GB2312编码的字符

27.3.4 显示任意大小的字符

27.3.5 下载验证

第28章 电容触摸屏——触摸画板

28.1 触摸屏简介

28.1.1 电阻触摸屏检测原理

28.1.2 电容触摸屏检测原理

28.2 电容触摸屏控制芯片

28.2.1 GT9157芯片的引脚

28.2.2 上电时序与I2C设备地址

28.2.3 寄存器配置

28.2.4 读取坐标信息

28.3 电容触摸屏——触摸画板实验

28.3.1 硬件设计

28.3.2 软件设计

28.3.3 下载验证

第29章 ADC——电压采集

29.1 ADC简介

29.2 ADC功能框图剖析

29.2.1 ADC功能

29.2.2 电压转换

29.3 ADC初始化结构体详解

29.4 独立模式单通道采集实验

29.4.1 硬件设计

29.4.2 软件设计

29.4.3 下载验证

29.5 独立模式多通道采集实验

29.5.1 硬件设计

29.5.2 软件设计

29.5.3 下载验证

29.6 三重ADC交替模式采集实验

29.6.1 硬件设计

29.6.2 软件设计

29.6.3 下载验证

第30章 TIM——基本定时器

30.1 TIM简介

30.2 基本定时器

30.3 基本定时器功能框图

30.4 定时器初始化结构体详解

30.5 基本定时器定时实验

30.5.1 硬件设计

30.5.2 软件设计

30.5.3 下载验证

第31章 TIM——高级定时器

31.1 高级控制定时器

31.2 高级控制定时器功能框图

31.3 输入捕获应用

31.3.1 测量脉宽或者频率

31.3.2 PWM输入模式

31.4 输出比较应用

31.5 定时器初始化结构体详解

31.6 PWM互补输出实验

31.6.1 硬件设计

31.6.2 软件设计

31.6.3 下载验证

31.7 PWM输入捕获实验

31.7.1 硬件设计

31.7.2 软件设计

31.7.3 下载验证

第32章 TIM——电容按键检测

32.1 电容按键原理

32.2 电容按键检测实验

32.2.1 硬件设计

32.2.2 软件设计

32.2.3 下载验证

第33章 SDIO——SD卡读写测试

33.1 SDIO简介

33.2 SD卡物理结构

33.3 SDIO总线

33.3.1 总线拓扑

33.3.2 总线协议

33.3.3 命令

33.3.4 响应

33.4 SD卡的操作模式及切换

33.4.1 SD卡的操作模式

33.4.2 卡识别模式

33.4.3 数据传输模式

33.5 STM32的SDIO功能框图

33.6 SDIO初始化结构体

33.7 SDIO命令初始化结构体

33.8 SDIO数据初始化结构体

33.9 SD卡读写测试实验

33.9.1 硬件设计

33.9.2 软件设计

33.9.3 下载验证

第34章 基于SD卡的FatFs文件系统

34.1 FatFs移植步骤

34.2 FatFs接口函数

34.3 FatFs功能测试

第35章 I2S——音频播放与录音输入

35.1 I2S简介

35.1.1 数字音频技术

35.1.2 I2S总线接口

35.1.3 音频数据传输协议标准

35.2 I2S功能框图

35.3 WM8978音频编译码器

35.4 WAV格式文件

35.4.1 RIFF文件规范

35.4.2 WAV文件

35.4.3 WAV文件实例分析

35.5 I2S初始化结构体详解

35.6 录音与回放实验

35.6.1 硬件设计

35.6.2 软件设计

35.6.3 下载验证

35.7 MP3播放器

35.7.1 MP3文件结构

35.7.2 MP3解码库

35.7.3 Helix解码库移植

35.7.4 MP3播放器功能实现

35.7.5 下载验证

第36章 ETH——LwIP以太网通信

36.1 互联网模型

36.2 以太网

36.2.1 PHY层

36.2.2 MAC子层

36.3 TCP/IP协议栈

36.3.1 需要协议栈的原因

36.3.2 各网络层的功能

36.4 以太网外设

36.4.1 SMI接口

36.4.2 MII和RMII接口

36.4.3 MAC数据包发送和接收

36.4.4 MAC过滤

36.5 PHY:LAN8720A

36.6 LwIP:轻型TCP/IP协议栈

36.7 ETH初始化结构体详解

36.8 以太网通信实验:无操作系统LwIP移植

36.8.1 硬件设计

36.8.2 移植步骤

36.8.3 下载验证

36.9 基于μCOS-III移植LwIP实验

第37章 CAN——通信实验

37.1 CAN协议简介

37.1.1 CAN物理层

37.1.2 协议层

37.2 STM32的CAN外设简介

37.3 CAN初始化结构体

37.4 CAN发送及接收结构体

37.5 CAN筛选器结构体

37.6 CAN——双机通信实验

37.6.1 硬件设计

37.6.2 软件设计

37.6.3 下载验证

第38章 RS-485通信实验

38.1 RS-485通信协议简介

38.2 RS-485——双机通信实验

38.2.1 硬件设计

38.2.2 软件设计

38.2.3 下载验证

第39章 电源管理——实现低功耗

39.1 STM32的电源管理简介

39.1.1 电源监控器

39.1.2 STM32的电源系统

39.1.3 STM32的功耗模式

39.2 电源管理相关的库函数及命令

39.2.1 配置PVD监控功能

39.2.2 WFI与WFE命令

39.2.3 进入停止模式

39.2.4 进入待机模式

39.3 PWR——睡眠模式实验

39.3.1 硬件设计

39.3.2 软件设计

39.3.3 下载验证

39.4 PWR——停止模式实验

39.4.1 硬件设计

39.4.2 软件设计

39.4.3 下载验证

39.5 PWR——待机模式实验

39.5.1 硬件设计

39.5.2 软件设计

39.5.3 下载验证

39.6 PWR——PVD电源监控实验

39.6.1 硬件设计

39.6.2 软件设计

39.6.3 下载验证

第40章 RTC——实时时钟

40.1 RTC简介

40.2 RTC功能框图解析

40.3 RTC初始化结构体讲解

40.4 RTC时间结构体讲解

40.5 RTC日期结构体讲解

40.6 RTC闹钟结构体讲解

40.7 RTC—日历实验

40.7.1 硬件设计

40.7.2 软件设计

40.7.3 下载验证

40.8 RTC—闹钟实验

40.8.1 硬件设计

40.8.2 软件设计

40.8.3 下载验证

第41章 DCMI——OV5640摄像头

41.1 摄像头简介

41.1.1 数字摄像头与模拟摄像头的区别

41.1.2 CCD与CMOS的区别

41.2 OV5640摄像头

41.2.1 OV5640传感器简介

41.2.2 OV5640引脚及功能框图

41.2.3 SCCB时序

41.2.4 OV5640的寄存器

41.2.5 像素数据输出时序

41.3 STM32的DCMI接口简介

41.3.1 DCMI整体框图

41.3.2 DCMI接口内部结构

41.3.3 同步方式

41.3.4 捕获模式及捕获率

41.4 DCMI初始化结构体

41.5 DCMI——OV5640摄像头实验

41.5.1 硬件设计

41.5.2 软件设计

41.5.3 下载验证

第42章 MDK的编译过程及文件类型全解

42.1 编译过程

42.1.1 编译过程简介

42.1.2 具体工程中的编译过程

42.2 程序的组成、存储与运行

42.2.1 CODE、RO、RW、ZI Data域及堆栈空间

42.2.2 程序的存储与运行

42.3 编译工具链

42.3.1 设置环境变量

42.3.2 armcc、armasm及armlink

42.3.3 armar、fromelf及用户指令

42.4 MDK工程的文件类型

42.4.1 uvprojx、uvoptx、uvguix及ini工程文件

42.4.2 源文件

42.4.3 Output目录下生成的文件

42.4.4 Listing目录下的文件

42.4.5 sct分散加载文件的格式与应用

42.5 实验:自动分配变量到外部SDRAM空间

42.5.1 硬件设计

42.5.2 软件设计

42.5.3 下载验证

42.6 实验:优先使用内部SRAM并把堆区分配到SDRAM空间

42.6.1 硬件设计

42.6.2 软件设计

42.6.3 下载验证

第43章 在SRAM中调试代码

43.1 在RAM中调试代码

43.2 STM32的启动方式

43.3 内部Flash的启动过程

43.4 实验:在内部SRAM中调试代码

43.4.1 硬件设计

43.4.2 软件设计

43.4.3 下载验证

第44章 读写内部Flash

44.1 STM32的内部Flash简介

44.2 对内部Flash的写入过程

44.3 查看工程的空间分布

44.4 操作内部Flash的库函数

44.5 实验:读写内部Flash

44.5.1 硬件设计

44.5.2 软件设计

44.5.3 下载验证

第45章 设置Flash的读写保护及解除

45.1 选项字节与读写保护

45.1.1 选项字节的内容

45.1.2 RDP读保护级别

45.1.3 PCROP代码读出保护

45.2 修改选项字节的过程

45.3 操作选项字节的库函数

45.4 实验:设置读写保护及解除

45.4.1 硬件设计

45.4.2 软件设计

45.4.3 下载验证

STM32库开发实战指南:基于STM32F4是2017年由机械工业出版社华章分社出版,作者杨森。

得书感谢您对《STM32库开发实战指南:基于STM32F4》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
图数据库实战 电子书
图数据库入门教程书籍,采用Gremlin语言,完整展示图应用程序的构建过程,从入门到实践学习图数据库。
鸿蒙应用开发实战 电子书
本书为华为鸿蒙系统HarmonyOS开发图书,以JavaScript为开发语言,提供完整源代码。
ReactNative移动开发实战 电子书
React native入门书籍,打造高品质移动用户体验。
Vue企业开发实战 电子书
《大型电商网站大麦网开发:vue、ES6与Webpack技能结合》
Vulkan开发实战详解 电子书
本书共分为19章,介绍了Vulkan的诞生、特点、开发环境的搭建以及运行机制、渲染管线和调试技术,着色器编程语言—GLSL、投影及各种变换、光照、纹理映射、3D模型的加载、混合与雾、两种测试及片元丢弃、顶点着色器的妙用、片元着色器的妙用、真实光学环境的模拟、阴影及高级光照、几种高级着色器特效、骨骼动画、Vulkan的性能优化等,最后以一个休闲游戏—方块历险记的案例来展示Vulkan的功能与技术。本