尚硅谷Java培训

嵌入式STM32单片机

视频介绍

在万物互联的数字时代,嵌入式设备发挥着越来越重要的作用,嵌入式开发获得了更多人的关注。在嵌入式开发领域,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库实现