配套资源





第1章嵌入式系统概述

1.1嵌入式系统的发展

1.2嵌入式系统的定义和特点

1.3嵌入式系统的开发流程

第2章初识STM32

2.1ARM Cortex系列架构

2.2STM32系列MCU

2.3STM32固件库

2.3.1获取HAL库固件包

2.3.2HAL库文件分析

第3章STM32的开发工具介绍及安装

视频讲解: 68分钟,5集
3.1生成工程模板——STM32CubeMX

3.1.1STM32CubeMX的安装

3.1.2固件包的安装

3.1.3配置并生成代码模板

3.2编辑编译工程——MDKARM、STM32CubeIDE

3.2.1MDKARM

3.2.2STM32CubeIDE

3.3调试下载工具

3.3.1STLINK

3.3.2DAPLink

3.4串行通信工具

3.5STM32硬件开发平台

3.6实验: 用STM32CubeMX和MDK创建工程项目并调试

3.6.1配置STM32CubeMX工程

3.6.2使用MDK打开并编辑工程

3.6.3连接开发板调试程序

3.7main()函数之前的启动流程


第4章通用输入/输出接口

视频讲解: 84分钟,5集
4.1GPIO简介

4.2GPIO的内部架构

4.3工作模式

4.3.1浮空输入

4.3.2上拉输入

4.3.3下拉输入

4.3.4推挽输出

4.3.5开漏输出

4.3.6模拟输入

4.3.7模拟输出

4.3.8复用功能推挽模式

4.3.9复用功能开漏模式

4.4GPIO的STM32CubeMX配置

4.5GPIO的寄存器

4.6GPIO的HAL库函数

4.7实验: GPIO输出之点亮LED灯

4.7.1应用场景及目的

4.7.2原理图

4.7.3程序流程

4.7.4程序配置

4.7.5实验现象

4.8实验: GPIO输入之按键输入检测

4.8.1应用场景及目的

4.8.2原理图

4.8.3程序流程

4.8.4程序配置

4.8.5实验现象

4.9习题

第5章中断控制器NVIC与EXTI

视频讲解: 44分钟,3集
5.1什么是中断

5.2嵌套向量中断控制器NVIC

5.2.1NVIC简介

5.2.2NVIC的优先级

5.2.3NVIC的STM32CubeMX配置

5.3EXTI

5.3.1EXTI简介

5.3.2EXTI的内部架构

5.3.3GPIO的外部中断

5.3.4EXTI的STM32CubeMX配置

5.3.5EXTI的寄存器

5.3.6EXTI的HAL库配置流程

5.4实验: 用外部中断进行按键上升沿/下降沿检测

5.4.1应用场景及目的

5.4.2原理图

5.4.3程序流程

5.4.4程序配置

5.4.5实验现象

5.5习题

第6章时钟树与SysTick

视频讲解: 31分钟,3集
6.1时钟树

6.1.1时钟树简介

6.1.2时钟源

6.1.3多路复用器与分频/倍频器

6.1.4总线与外设

6.1.5时钟树的STM32CubeMX配置

6.2SysTick

6.2.1SysTick简介

6.2.2SysTick的HAL库函数

6.3实验: SysTick之闪灯实验

6.3.1应用场景及目的

6.3.2程序配置

6.3.3实验现象

6.4习题

第7章串行通信USART

视频讲解: 85分钟,5集
7.1通信方式分类

7.1.1按照连接方式分类

7.1.2按照同步方式分类

7.1.3按照传输方向分类

7.2串行通信简介

7.2.1常见的串行通信协议

7.2.2波特率和采样速率

7.2.3USART的数据帧格式

7.3USART简介

7.4USART的内部架构

7.5USART的STM32CubeMX配置

7.6USART的寄存器

7.7USART的HAL库函数

7.7.1初始化函数

7.7.2轮询模式

7.7.3中断模式

7.8实验: USART之重定向printf()

7.8.1应用场景及目的

7.8.2原理图

7.8.3程序配置

7.8.4实验现象

7.9实验: USART之定长数据的发送与接收(轮询方式)

7.9.1应用场景及目的

7.9.2程序配置

7.9.3实验现象

7.10实验: USART之不定长数据的发送与接收(中断方式)

7.10.1应用场景及目的

7.10.2程序配置

7.10.3实验现象

7.11习题

第8章直接存储器访问

视频讲解: 28分钟,2集
8.1DMA简介

8.2DMA的内部架构

8.3DMA的通道

8.4DMA的中断

8.5DMA的STM32CubeMX配置

8.6DMA的寄存器

8.7DMA的HAL库函数

8.8实验: USART之空闲中断与 DMA配合接收

8.8.1应用场景及目的

8.8.2程序配置

8.8.3实验现象

8.9习题

第9章定时器TIM

视频讲解: 121分钟,8集
9.1定时器TIM简介

9.2基本定时器TIM6/TIM7

9.2.1概述

9.2.2基本定时器的内部架构

9.3通用定时器TIM2/TIM3/TIM4/TIM5

9.3.1概述

9.3.2通用定时器的内部架构

9.3.3通用定时器的寄存器

9.4计数模式

9.4.1计数原理

9.4.2计数模式的STM32CubeMX配置

9.4.3计数模式的HAL库函数

9.5输入捕获模式

9.5.1输入捕获原理

9.5.2输入捕获模式的STM32CubeMX配置

9.5.3输入捕获模式的HAL库函数

9.6输出比较模式

9.6.1输出比较原理

9.6.2输出比较模式的STM32CubeMX配置

9.6.3输出比较模式的HAL库函数

9.7PWM模式

9.7.1STM32的PWM模式

9.7.2PWM的STM32CubeMX配置

9.7.3PWM的HAL库函数

9.8实验: 基于基本定时器的翻转LED指示灯

9.8.1应用场景及目的

9.8.2原理图

9.8.3程序配置

9.8.4实验现象

9.9实验: 基于通用定时器的按键输入捕获实验

9.9.1应用场景及目的

9.9.2程序流程

9.9.3原理图

9.9.4程序配置

9.9.5实验现象

9.10实验: 基于通用定时器的PWM驱动风扇和电动机

9.10.1应用场景和目的

9.10.2程序流程

9.10.3原理图

9.10.4程序配置

9.10.5实验现象

9.11习题

第10章模数转换器

视频讲解: 63分钟,5集
10.1模数转换简介

10.2STM32的ADC简介

10.2.1概述

10.2.2ADC的内部架构

10.3ADC时钟与采样时间

10.3.1ADC时钟

10.3.2ADC采样时间

10.4规则通道与注入通道

10.4.1STM32CubeMX配置

10.4.2寄存器

10.4.3HAL库函数

10.5单次转换与连续转换模式

10.5.1单次转换

10.5.2连续转换

10.5.3不连续转换

10.5.4STM32CubeMX配置

10.5.5寄存器

10.5.6HAL库函数

10.6ADC的DMA传输方式


10.7实验: ADC 单通道轮询方式读取

10.7.1应用场景及目的

10.7.2程序配置

10.7.3实验现象

10.8实验: ADC 多通道轮询方式读取

10.8.1应用场景及目的

10.8.2程序配置

10.8.3实验现象

10.9实验: ADC的DMA读取(五向按键)

10.9.1应用场景及目的

10.9.2程序流程

10.9.3原理图

10.9.4程序配置

10.9.5实验现象

10.10习题

第11章串行外设接口

视频讲解: 72分钟,4集
11.1SPI总线简介

11.2STM32的SPI接口

11.2.1特性

11.2.2SPI的内部架构

11.3SPI的STM32CubeMX配置

11.4SPI的寄存器

11.5SPI的HAL库函数

11.6实验: 用SPI总线驱动显示屏

11.6.1应用场景及目的

11.6.2LCD基础知识

11.6.3ILI9341驱动芯片

11.6.4程序流程

11.6.5原理图

11.6.6程序配置

11.6.7实验现象

11.7实验: 用SPI总线显示图片

11.7.1应用场景及目的

11.7.2图片转换原理

11.7.3程序配置

11.7.4实验现象

11.8习题

第12章四路串行外设接口

视频讲解: 37分钟,2集
12.1QSPI简介

12.2STM32的QSPI接口

12.3STM32CubeMX配置

12.4HAL库函数

12.5实验: 用QSPI总线驱动NOR Flash W25Q128

12.5.1应用场景及目的

12.5.2W25Q128

12.5.3程序流程

12.5.4原理图

12.5.5程序配置

12.5.6实验现象

12.6习题

第13章内部集成电路总线I2C

视频讲解: 54分钟,4集
13.1I2C总线基础知识

13.1.1I2C简介

13.1.2电路原理

13.1.3通信时序

13.2STM32的I2C接口

13.2.1特性

13.2.2内部架构

13.3I2C的STM32CubeMX配置

13.4I2C的HAL库函数

13.5实验: 用I2C总线读取温湿度传感器

13.5.1应用场景及目的

13.5.2SHT20温湿度传感器

13.5.3程序流程

13.5.4原理图

13.5.5程序配置

13.5.6实验现象

13.6实验: 用I2C总线驱动触摸屏

13.6.1应用场景及目的

13.6.2FT6336触摸屏芯片

13.6.3原理图

13.6.4程序配置

13.6.5实验现象

第14章实时时钟

视频讲解: 35分钟,2集
14.1RTC简介

14.2RTC的功能

14.2.1RTC二进制、BCD或混合模式

14.2.2实时时钟和日历

14.2.3可编程闹钟

14.2.4时间戳功能

14.2.5备份寄存器

14.3RTC的STM32CubeMX配置

14.4RTC的寄存器

14.5RTC的HAL库函数

14.6实验: 驱动RTC

14.6.1应用场景及目的

14.6.2程序配置

14.6.3实验现象

14.7习题

第15章独立看门狗

视频讲解: 13分钟,2集
15.1IWDG简介

15.2内部架构

15.3功能和时序

15.4STM32CubeMX配置

15.5IWDG的HAL库函数

15.6IWDG的寄存器

15.7实验: 用按键实现看门狗重载

15.7.1应用场景及目的

15.7.2程序配置

15.7.3实验现象

15.8习题

第16章综合项目: 智能手表

16.1软件系统方案

16.2TouchGFX

16.3界面设计

参考文献