-------------------------------------------
教程简介:
在万物互联的数字时代,嵌入式设备发挥着越来越重要的作用,嵌入式开发获得了更多人的关注。在嵌入式开发领域,STM32系列MCU以其高性价比、丰富的外设和易用的工具备受青睐,在物联网、工业控制、消费电子、医疗设备、监控等领域广为应用。
尚硅谷精心打造的STM32教程,对STM32的原理和应用做了细致的讲解,教程与尚硅谷自研的STM32开发板配合使用(可以在淘宝搜尚硅谷店铺购买),囊括了大量的应用案例和课堂练习,并对寄存器和HAL库两种开发方式都做了详细的介绍。
教程分为基础篇和进阶篇两大部分,基础篇介绍了基本概念和原理,掌握常用开发工具,初步上手进行STM32的开发设计,内容包括:STM32简介、开发板简介、快速上手案例、GPIO、总体结构和时钟系统、中断系统、USART串口通讯和I2C通讯;进阶篇对STM32中更多外设做了详细介绍,涉及到了更深入的原理和更加丰富的应用场景,内容包括:定时器、DMA、ADC、SPI通信、存储器寄存器、FSMC和LCD显示。
教程学习需具备数电、模电和计算机基本原理基础,适合想要学习单片机知识的初学者,同时也适合具备单片机开发经验,想要掌握STM32开发的嵌入式开发人员。
-------------------------------------------
教程目录:
001.STM32课程简介
002.概述_ARM内核简介
003.概述_STM32简介
004.概述_STM32应用场景
005.概述_STM32命名规范
006.概述_STM32开发方式
007.概述_STM32开发工具的选择
008.概述_Keil MDK下载和安装
009.开发板_实物图和原理图
010.开发板_STM32最小系统
011.开发板_STM32开发板快速验证
012.点灯案例_工程创建
013.点灯案例_编译配置
014.点灯案例_寄存器代码实现
015.点灯案例_复习回顾和扩展练习_点亮三灯
016.点灯案例_优化(一)_使用宏定义的寄存器名称
017.点灯案例_优化(二)_使用位运算操作
018.点灯案例_优化(三)_使用宏定义表示对应位
019.GPIO_概述
020.GPIO_工作模式_推挽输出和开漏输出
021.GPIO_工作模式_问题解答_数据传输方向
022.GPIO_工作模式_复用输出
023.GPIO_工作模式_输入模式
024.GPIO_寄存器
025.GPIO_Keil+VSCode优化开发体验
026.GPIO_流水灯案例_代码基本实现
027.GPIO_流水灯案例_代码改进实现
028.GPIO_课堂练习_往返流水灯
029.STM32系统架构
030.STM32时钟系统
031.STM32各时钟用途总结
032.HAL库_简介
033.HAL库_STM32CubeMX安装
034.HAL库_流水灯案例_HAL库工程创建
035.HAL库_流水灯案例_HAL库代码实现
036.HAL库_系统时钟配置的源码解析
037.软件常见问题解答
038.课堂练习_依次开关灯
039.中断系统_基本概念
040.中断系统_中断的作用
041.中断系统_STM32的中断
042.中断系统_中断体系架构
043.中断系统_NVIC
044.中断系统_中断优先级底层原理和配置
045.中断系统_EXTI原理和寄存器
046.中断系统_按键中断案例_需求分析和电路原理
047.中断系统_复习回顾
048.中断系统_按键中断案例_寄存器介绍
049.中断系统_按键中断案例_寄存器方式实现
050.中断系统_按键中断案例_HAL库方式实现
051.中断系统_课堂练习_按键开关灯
052.中断系统_课堂练习_按键开关流水灯
053.中断系统_课堂练习_按键手动流水灯
054.USART_串行和并行通讯
055.USART_单工半双工全双工
056.USART_同步和异步
057.USART_串口通讯协议
058.USART_USART外设基本介绍
059.USART_功能框图原理介绍
060.USART_波特率的设置
061.USART_串口通讯案例_电路原理和寄存器介绍
062.USART_串口通讯案例_轮询方式寄存器实现_初始化
063.USART_串口通讯案例_轮询方式寄存器实现_收发单个字符
064.USART_串口通讯案例_轮询方式寄存器实现_发送字符串
065.USART_串口通讯案例_轮询方式寄存器实现_接收字符串
066.USART_串口发送数据案例_寄存器轮询方式_代码改进
067.USART_问题解答_状态位的置位和清除
068.USART_串口发送数据案例_寄存器中断方式
069.USART_问题解答_字符串结束标志的判断
070.USART_串口发送数据案例_HAL库轮询方式_定长数据的收发
071.USART_串口发送数据案例_HAL库轮询方式_变长数据的收发
072.USART_串口发送数据案例_HAL库中断方式
073.使用Keil进行断点调试
074.USART_使用串口进行printf重定向_寄存器实现
075.USART_使用串口进行printf重定向_HAL库实现
076.基础知识复习回顾
077.I2C_底层原理和协议
078.I2C_软件模拟I2C案例_需求描述和硬件电路设计
079.I2C_软件模拟I2C案例_M24C02地址介绍
080.I2C_软件模拟I2C案例_时序图整理
081.I2C_软件模拟I2C案例_工程创建和基本宏定义
082.I2C_问题解答_EEPROM读写操作时序
083.I2C_软件模拟I2C案例_I2C基本时序定义
084.I2C_软件模拟I2C案例_I2C主机发送一个字节
085.I2C_软件模拟I2C案例_I2C主机读取一个字节
086.I2C_软件模拟I2C案例_EEPROM读写一个字节
087.I2C_软件模拟I2C案例_EEPROM连续读写多个字节
088.I2C_软件模拟I2C案例_主函数测试
089.I2C_I2C原理复习总结
090.I2C_STM32中的I2C外设原理框图
091.I2C_I2C外设寄存器(一)_基本配置
092.I2C_I2C外设寄存器(二)_I2C协议控制
093.I2C_硬件实现I2C案例_工程创建和I2C初始化
094.I2C_硬件实现I2C案例_I2C协议实现(一)_基本操作
095.I2C_硬件实现I2C案例_I2C协议实现(二)_收发地址和数据
096.I2C_硬件实现I2C案例_EEPROM接口实现和测试
097.I2C_硬件实现I2C案例_HAL方式实现
098.综合案例_花式流水灯_需求分析和实现思路
099.综合案例_花式流水灯_串口下发方案和保存
100.综合案例_花式流水灯_流水灯方案的解析和显示
101.定时器_STM32中的定时器整体介绍
102.定时器_系统嘀嗒定时器
103.定时器_系统嘀嗒定时器_寄存器介绍
104.定时器_系统嘀嗒定时器案例_寄存器实现
105.定时器_系统嘀嗒定时器案例_HAL库实现
106.定时器_系统嘀嗒定时器_延时函数工具类
107.定时器_基本定时器_基本组成和原理
108.定时器_基本定时器案例_寄存器介绍
109.定时器_基本定时器案例_寄存器实现
110.定时器_基本定时器案例_HAL库实现
111.定时器_课堂练习_定时器控制双灯闪烁
112.定时器_通用定时器_基本介绍和时钟源选择
113.定时器_通用定时器_计数模式
114.定时器_通用定时器_PWM原理
115.定时器_通用定时器_输出比较原理和工作模式
116.定时器_输出PWM案例_寄存器介绍
117.定时器_输出PWM案例_寄存器实现
118.定时器_输出PWM案例_HAL库实现
119.定时器_课堂练习_交替呼吸灯
120.定时器_课堂练习_按键调节LCD背光亮度
121.定时器_通用定时器_输入捕获功能
122.定时器_测量周期案例_电路原理和寄存器介绍
123.定时器_测量周期案例_寄存器方式_定时器初始化
124.定时器_测量周期案例_寄存器方式_检测周期和频率
125.定时器_测量周期案例_寄存器方式_代码优化
126.定时器_测量周期案例_HAL库方式
127.定时器_通用定时器_触发输出和从模式
128.定时器_通用定时器_PWM输入模式
129.定时器_课堂练习_测量不同频率的PWM方波
130.定时器_复习回顾_从模式和PWM输入模式
131.定时器_测量占空比案例_寄存器介绍
132.定时器_测量占空比案例_寄存器方式实现
133.定时器_测量占空比案例_HAL库方式实现
134.定时器_高级定时器_功能框图和原理介绍
135.定时器_高级定时器案例_寄存器介绍
136.定时器_高级定时器案例_寄存器方式实现
137.定时器_高级定时器案例_HAL库方式实现
138.定时器_复习回顾_定时器总结
139.DMA_基本原理和功能框图
140.DMA_寄存器介绍
141.DMA案例1_ROM到RAM_寄存器实现
142.DMA案例1_ROM到RAM_HAL库实现
143.DMA案例2_RAM到串口_寄存器实现
144.DMA案例2_RAM到串口_HAL库实现
145.DMA_复习回顾
146.ADC_基本原理和基本参数
147.ADC_STM32的ADC模块基本介绍
148.ADC_逐次逼近型ADC工作原理
149.ADC_ADC外设工作原理
150.ADC_寄存器介绍
151.ADC_单通道转换案例_寄存器方式
152.ADC_单通道转换案例_HAL库方式
153.ADC_ADC框图和寄存器复习回顾
154.ADC_多通道转换案例_寄存器方式
155.ADC_多通道转换案例_HAL库方式
156.SPI_SPI通信介绍
157.SPI_W25Q32芯片介绍和读写操作
158.SPI_读写Flash案例_软件模拟实现(一)_SPI通信协议
159.SPI_读写Flash案例_软件模拟实现(二)_Flash接口声明和读取ID测试
160.SPI_读写Flash案例_软件模拟实现(三)_读写Flash
161.SPI_读写Flash案例_代码地址问题解答
162.SPI_STM32的SPI外设
163.SPI_SPI模块寄存器介绍
164.SPI_读写Flash案例_硬件实现_寄存器方式
165.SPI_读写Flash案例_硬件实现_HAL库方式
166.存储器和寄存器_存储器基本介绍和分类
167.存储器和寄存器_不同类型存储器介绍
168.存储器和寄存器_STM32的存储器映射
169.存储器和寄存器_寄存器的本质和地址映射
170.课堂练习_向Flash写入大量字符
171.FSMC_基本原理和组成
172.FSMC_外部设备地址映射
173.FSMC_控制外部存储器的读写时序
174.FSMC_SRAM芯片IS62WV51216
175.FSMC_扩展SRAM案例_硬件电路和寄存器介绍
176.FSMC_扩展SRAM案例_寄存器实现
177.FSMC_复习总结和扩展
178.FSMC_扩展SRAM案例_HAL库实现
179.LCD_原理和接口类型
180.LCD_液晶控制器以及系统组成
181.LCD_FSMC控制LCD显示案例_硬件电路设计
182.LCD_FSMC控制LCD显示案例_FSMC的寻址
183.LCD_FSMC控制LCD显示案例_FSMC配置
184.LCD_FSMC控制LCD显示案例_LCD宏定义和底层操作接口
185.LCD_FSMC控制LCD显示案例_读取LCD模块ID
186.LCD_FSMC控制LCD显示案例_设置全屏背景色
187.LCD_复习回顾
188.LCD_FSMC控制LCD显示案例_显示英文字符
189.LCD_FSMC控制LCD显示案例_显示字符串
190.FSMC控制LCD显示案例_显示汉字
191.FSMC控制LCD显示案例_显示图片
192.LCD_FSMC控制LCD显示案例_画点线长方形
193.FSMC控制LCD显示案例_画圆
194.FSMC控制LCD显示案例_HAL库实现