这门课讲的是 STM32 单片机开发,面向的典型场景是:你手里有一块开发板,想让它点亮 LED、控制电机、读传感器、驱动屏幕,或者通过串口和电脑通信。课程从 GPIO 引脚操作开始,一路讲到定时器、串口、I2C、SPI、FSMC 以及 LCD 显示,基本覆盖了嵌入式入门阶段最常用的一批外设。学完之后,你能独立完成一个带传感器采集、交互显示、通信上报的小型单片机项目,比如温湿度监测、按键控制屏幕背光、串口打印调试信息这类工作。

适合什么基础,先看哪几块

如果你完全没有单片机经验,这门课可以从头跟。它假设你会一点 C 语言,能看懂 if、for、函数调用就够了,不要求你学过微机原理或寄存器操作。课程里对寄存器、时钟树、中断、外设初始化的讲解都比较细,遇到概念会先讲原理再写代码,所以零基础也能跟上。

建议的学习顺序是:先从 GPIO 和时钟开始,弄懂引脚怎么配置、时钟怎么使能,这是后续所有外设的公共基础。接着看定时器部分,尤其是通用定时器和 PWM 原理,因为 PWM 是控制电机、调光、调速最常用的手段,课程里也给了按键调节 LCD 背光亮度的练习。之后再看串口 USART,学会用轮询和中断两种方式收发数据,这是调试和通信的命脉。I2C 和 SPI 可以放在串口之后,这两个是连接外部芯片最常见的总线,课程里用软件模拟和硬件外设两种方式实现 I2C,能帮你理解协议本质。最后再看 FSMC 和 LCD 显示,这部分偏应用整合,把前面学的外设串起来。

资料怎么配合练习

这套资料是视频加配套代码的形式,不要只看不练。每看完一个视频,最好马上打开工程,照着代码敲一遍,再试着改参数观察现象。比如定时器控制双灯闪烁,你可以改占空比或周期,看闪烁频率和亮度变化;串口发送数据,你可以自己写一个接收回显,验证中断处理流程。课程里很多案例同时用寄存器和 HAL 库实现,建议先跟寄存器版走一遍,理解底层操作,再对照 HAL 库版看封装逻辑,这样以后换芯片或换库也能快速上手。

练习时不要跳过课堂练习,比如按键调节 LCD 背光亮度、定时器控制双灯闪烁,这些是检验你能否独立设计的节点。做完这些练习,再尝试把几个外设组合起来:用定时器产生 PWM 控制 LED 亮度,用 I2C 读一个温度传感器,用串口把数据发到电脑,最后用 FSMC 驱动的 LCD 显示出来。能跑通这个流程,就说明你具备了独立开发一个小项目的核心能力。资料里有些复习和扩展章节,比如 FSMC 的复习总结,可以在做完实验后再回看,用来查漏补缺。

课程目录

📁 上部-基础篇 📁 04_视频 114_定时器_通用定时器_PWM原理.wmv [29.8 MB] 127_定时器_通用定时器_触发输出和从模式.wmv [64.0 MB] 100_综合案例_花式流水灯_流水灯方案的解析和显示.wmv [122.2 MB] 117_定时器_输出PWM案例_寄存器实现.wmv [101.8 MB] 177_FSMC_复习总结和扩展.wmv [108.4 MB] 191_FSMC控制LCD显示案例_显示图片.wmv [51.1 MB] 173_FSMC_控制外部存储器的读写时序.wmv [49.0 MB] 101_定时器_STM32中的定时器整体介绍.wmv [19.7 MB] 105_定时器_系统嘀嗒定时器案例_HAL库实现.wmv [59.5 MB] 104_定时器_系统嘀嗒定时器案例_寄存器实现.wmv [59.4 MB] 103_定时器_系统嘀嗒定时器_寄存器介绍.wmv [26.1 MB] 125_定时器_测量周期案例_寄存器方式_代码优化.wmv [60.7 MB] 112_定时器_通用定时器_基本介绍和时钟源选择.wmv [40.3 MB] 184_LCD_FSMC控制LCD显示案例_LCD宏定义和底层操作接口.wmv [91.7 MB] 120_定时器_课堂练习_按键调节LCD背光亮度.wmv [74.9 MB] 088_I2C_软件模拟I2C案例_主函数测试.wmv [31.3 MB] 092_I2C_I2C外设寄存器(二)_I2C协议控制.wmv [66.4 MB] 111_定时器_课堂练习_定时器控制双灯闪烁.wmv [96.8 MB] 070_USART_串口发送数据案例_HAL库轮询方式_定长数据的收发.wmv [84.2 MB] 187_LCD_复习回顾.wmv [54.2 MB] 068_USART_串口发送数据案例_寄存器中断方式.wmv [65.9 MB] 186_LCD_FSMC控制LCD显示案例_设置全屏背景色.wmv [77.8 MB] 188_LCD_FSMC控制LCD显示案例_显示英文字符.wmv [185.0 MB] 025_GPIO_Keil+VSCode优化开发体验.wmv [24.1 MB] 093_I2C_硬件实现I2C案例_工程创建和I2C初始化.wmv [31.1 MB] 067_USART_问题解答_状态位的置位和清除.wmv [41.2 MB] 069_USART_问题解答_字符串结束标志的判断.wmv [18.1 MB] 080_I2C_软件模拟I2C案例_时序图整理.wmv [60.2 MB] 096_I2C_硬件实现I2C案例_EEPROM接口实现和测试.wmv [45.9 MB] 031_STM32各时钟用途总结.wmv [13.6 MB] 171_FSMC_基本原理和组成.wmv [73.9 MB] 023_GPIO_工作模式_输入模式.wmv [33.8 MB] 085_I2C_软件模拟I2C案例_I2C主机读取一个字节.wmv [21.7 MB] 163_SPI_SPI模块寄存器介绍.wmv [85.4 MB] 189_LCD_FSMC控制LCD显示案例_显示字符串.wmv [35.4 MB] 185_LCD_FSMC控制LCD显示案例_读取LCD模块ID.wmv [26.6 MB] 084_I2C_软件模拟I2C案例_I2C主机发送一个字节.wmv [15.4 MB] 124_定时器_测量周期案例_寄存器方式_检测周期和频率.wmv [44.0 MB] 089_I2C_I2C原理复习总结.wmv [41.4 MB] 109_定时器_基本定时器案例_寄存器实现.wmv [37.1 MB] 170_课堂练习_向Flash写入大量字符.wmv [91.6 MB] 165_SPI_读写Flash案例_硬件实现_HAL库方式.wmv [58.5 MB] 110_定时器_基本定时器案例_HAL库实现.wmv [66.1 MB] 026_GPIO_流水灯案例_代码基本实现.wmv [61.2 MB] 192_LCD_FSMC控制LCD显示案例_画点线长方形.wmv [81.2 MB] 108_定时器_基本定时器案例_寄存器介绍.wmv [60.2 MB] 098_综合案例_花式流水灯_需求分析和实现思路.wmv [32.2 MB] 115_定时器_通用定时器_输出比较原理和工作模式.wmv [41.0 MB] 161_SPI_读写Flash案例_代码地址问题解答.wmv [31.2 MB] 179_LCD_原理和接口类型.wmv [51.1 MB] 087_I2C_软件模拟I2C案例_EEPROM连续读写多个字节.wmv [24.3 MB] 119_定时器_课堂练习_交替呼吸灯.wmv [26.1 MB] 091_I2C_I2C外设寄存器(一)_基本配置.wmv [79.1 MB] 071_USART_串口发送数据案例_HAL库轮询方式_变长数据的收发.wmv [27.9 MB] 094_I2C_硬件实现I2C案例_I2C协议实现(一)_基本操作.wmv [24.7 MB] 083_I2C_软件模拟I2C案例_I2C基本时序定义.wmv [85.8 MB] 032_HAL库_简介.wmv [32.4 MB] 065_USART_串口通讯案例_轮询方式寄存器实现_接收字符串.wmv [29.7 MB] 024_GPIO_寄存器.wmv [109.7 MB] 076_基础知识复习回顾.wmv [84.5 MB] 081_I2C_软件模拟I2C案例_工程创建和基本宏定义.wmv [34.0 MB] 073_使用Keil进行断点调试.wmv [33.1 MB] 122_定时器_测量周期案例_电路原理和寄存器介绍.wmv [43.9 MB] 086_I2C_软件模拟I2C案例_EEPROM读写一个字节.wmv [53.0 MB] 082_I2C_问题解答_EEPROM读写操作时序.wmv [13.2 MB] 178_FSMC_扩展SRAM案例_HAL库实现.wmv [41.9 MB] 107_定时器_基本定时器_基本组成和原理.wmv [62.8 MB] 175_FSMC_扩展SRAM案例_硬件电路和寄存器介绍.wmv [112.5 MB] 077_I2C_底层原理和协议.wmv [45.7 MB] 075_USART_使用串口进行printf重定向_HAL库实现.wmv [21.2 MB] 090_I2C_STM32中的I2C外设原理框图.wmv [37.8 MB] 072_USART_串口发送数据案例_HAL库中断方式.wmv [104.7 MB] 099_综合案例_花式流水灯_串口下发方案和保存.wmv [47.6 MB] 079_I2C_软件模拟I2C案例_M24C02地址介绍.wmv [12.8 MB] 166_存储器和寄存器_存储器基本介绍和分类.wmv [26.0 MB] 113_定时器_通用定时器_计数模式.wmv [14.0 MB] 118_定时器_输出PWM案例_HAL库实现.wmv [71.4 MB] 022_GPIO_工作模式_复用输出.wmv [16.7 MB] 095_I2C_硬件实现I2C案例_I2C协议实现(二)_收发地址和数据.wmv [40.9 MB] 180_LCD_液晶控制器以及系统组成.wmv [68.6 MB] 123_定时器_测量周期案例_寄存器方式_定时器初始化.wmv [71.1 MB] 029_STM32系统架构.wmv [31.7 MB] 176_FSMC_扩展SRAM案例_寄存器实现.wmv [143.4 MB] 106_定时器_系统嘀嗒定时器_延时函数工具类.wmv [37.3 MB] 126_定时器_测量周期案例_HAL库方式.wmv [89.3 MB] 128_定时器_通用定时器_PWM输入模式.wmv [22.3 MB] 167_存储器和寄存器_不同类型存储器介绍.wmv [59.3 MB] 181_LCD_FSMC控制LCD显示案例_硬件电路设计.wmv [52.1 MB] 066_USART_串口发送数据案例_寄存器轮询方式_代码改进.wmv [84.6 MB] 121_定时器_通用定时器_输入捕获功能.wmv [75.2 MB] 102_定时器_系统嘀嗒定时器.wmv [18.9 MB] 097_I2C_硬件实现I2C案例_HAL方式实现.wmv [63.9 MB] 078_I2C_软件模拟I2C案例_需求描述和硬件电路设计.wmv [31.9 MB] 116_定时器_输出PWM案例_寄存器介绍.wmv [58.2 MB] 030_STM32时钟系统.wmv [50.7 MB] 074_USART_使用串口进行printf重定向_寄存器实现.wmv [39.0 MB] 147_ADC_STM32的ADC模块基本介绍.wmv [21.0 MB] 150_ADC_寄存器介绍.wmv [150.0 MB] 146_ADC_基本原理和基本参数.wmv [42.0 MB] 134_定时器_高级定时器_功能框图和原理介绍.wmv [47.5 MB] 03_代码.zip
 [791.9 MB] 📁 下部-高级篇 📁 04-视频 129_看门狗_窗口看门狗介绍【优质资源‖关注:cunWorkNotes 解锁】.mp4
 [51.5 MB] 070_蓝牙_蓝牙协议栈和基本架构.mp4
 [22.1 MB] 082_LoRa_LoRa应用和组网架构【整理不易‖记得关注:CunWorKNotes】.mp4
 [19.0 MB] 074_蓝牙_广播扫描和通讯.mp4
 [35.5 MB] 076_蓝牙通讯案例_流程梳理和AT命令介绍【公重号:CunWorkNotes】.mp4
 [136.6 MB] 088_LoRa通讯案例_LoRa数据帧格式.mp4
 [18.4 MB] 069_蓝牙_技术类型和常见架构【持续更新‖免费提供:CunworknoteS】.mp4
 [38.6 MB] 080_LoRa_无线通讯分类和低功耗广域网.mp4
 [58.0 MB] 066_Wi-Fi案例二_TCP通讯_TCP服务器启动和数据收发.mp4
 [101.1 MB] 084_LoRa通讯案例_需求描述和硬件连接.mp4
 [40.3 MB] 091_LoRa通讯案例_LoRa普通节点_发送数据代码实现.mp4
 [28.4 MB] 071_蓝牙_BLE协议栈详细介绍.mp4
 [65.0 MB] 085_LoRa通讯案例_驱动层配置和工程创建【不易整理‖请关注:CunWorkNoteS】.mp4
 [46.3 MB] 087_LoRa通讯案例_LLCC68芯片整体介绍.mp4
 [53.4 MB] 095_LoRa通讯案例_LoRa网关节点_双向收发测试.mp4
 [16.8 MB] 024_CAN通讯案例一_环回静默模式测试_HAL库方式_工程配置【更多精选‖公众号:CunWorknotes】 .mp4
 [47.9 MB] 020_CAN通讯案例一_环回静默模式测试_接收报文代码实现【公重号:CunWorkNotes】.mp4
 [47.3 MB] 001_STM32开发高级篇_整体介绍.mp4
 [13.9 MB] 007_CAN通讯_协议层_位时序【公重号:CunWorkNotes】.mp4
 [64.3 MB] 004_CAN通讯_协议层_报文类型.mp4
 [30.9 MB] 015_CAN通讯案例一_环回静默模式测试_需求分析和初始化寄存器介绍【持续更新‖免费提供:CunworknoteS】.mp4
 [40.6 MB] 017_CAN通讯案例一_环回静默模式测试_发送邮箱寄存器介绍.mp4
 [77.0 MB] 117_BKP案例_需求描述和实现思路.mp4
 [15.4 MB] 109_电源控制_低功耗_待机模式_需求分析和实现思路【资源精选‖更多关注:CunworkNotes】.mp4
 [27.3 MB] 120_RTC实验一_闹钟唤醒待机模式_需求分析和寄存器介绍.mp4
 [44.8 MB] 112_RTC_基本介绍.mp4
 [31.1 MB] 097_电源控制_框图和整体区域划分【持续更新‖免费提供:CunworknoteS】.mp4
 [51.4 MB] 116_BKP_备份寄存器功能详细介绍【不易整理‖请关注:CunWorkNoteS】.mp4
 [45.4 MB] 043_以太网案例二_TCP服务端_收发数据【资源精选‖更多关注:CunworkNotes】.mp4
 [20.5 MB] 039_以太网案例一_网络搭建_代码实现和测试.mp4
 [67.6 MB] 036_以太网案例一_网络搭建_需求描述和硬件电路.mp4
 [63.2 MB] 035_以太网_W5500_内部结构和连接主控芯片.mp4
 [29.2 MB] 041_以太网案例二_TCP服务端_Socket寄存器介绍【优质资源‖关注:cunWorkNotes 解锁】.mp4
 [89.1 MB] 044_以太网案例二_TCP服务端_测试和代码改进.mp4
 [85.8 MB] 053_Wi-Fi_工作频段和信道.mp4
 [53.2 MB] 054_Wi-Fi_一些常见概念.mp4
 [23.6 MB] 057_Wi-Fi_AT固件烧录.mp4
 [43.3 MB] 060_Wi-Fi案例二_TCP通讯_需求描述和架构设计【资源精选‖更多关注:CunworkNotes】.mp4
 [15.7 MB] 063_Wi-Fi案例二_TCP通讯_工程创建和头文件定义.mp4
 [28.8 MB] 056_Wi-Fi_ESP32-C3与STM32的连接.mp4
 [31.3 MB] 065_Wi-Fi案例二_TCP通讯_WiFi联网测试.mp4
 [22.3 MB] 059_Wi-Fi案例二_TCP通讯_Wi-Fi工作模式.mp4
 [27.9 MB] 062_Wi-Fi案例二_TCP通讯_TCP服务器收发数据流程.mp4
 [72.8 MB] 061_Wi-Fi案例二_TCP通讯_AT命令整体介绍.mp4
 [50.8 MB] 055_Wi-Fi_ESP32-C3模块介绍.mp4
 [25.0 MB] 048_以太网案例五_简易版Web服务器_代码实现和测试.mp4
 [111.6 MB] 058_Wi-Fi案例一_测试AT指令_代码实现.mp4
 [108.9 MB] 045_以太网案例三_TCP客户端_代码实现和测试.mp4
 [56.6 MB] 040_以太网案例二_TCP服务端_需求描述和架构设计.mp4
 [51.1 MB] 033_以太网_常见网络协议.mp4
 [41.1 MB] 042_以太网案例二_TCP服务端_启动服务端.mp4
 [76.5 MB] 051_Wi-Fi_背景知识_无线电波的频率划分.mp4
 [48.7 MB] 037_以太网案例一_网络搭建_官方库移植.mp4
 [83.8 MB] 049_Wi-Fi_概念和基础知识.mp4
 [21.6 MB] 038_以太网案例一_网络搭建_驱动层SPI修改.mp4
 [29.2 MB] 052_Wi-Fi_背景知识_无线通讯基本原理.mp4
 [51.8 MB] 034_以太网_W5500_芯片基本介绍.mp4
 [60.1 MB] 050_Wi-Fi_发展历程和802.11标准.mp4
 [31.0 MB] 047_以太网案例五_简易版Web服务器_需求描述.mp4
 [36.5 MB] 046_以太网案例四_UDP通讯_代码实现和测试.mp4
 [79.9 MB] 115_BKP_备份寄存器基本介绍.mp4
 [18.4 MB] 124_RTC实验二_扩展练习_LCD显示实时时钟.mp4
 [30.6 MB] 121_RTC实验一_闹钟唤醒待机模式_寄存器方式实现.mp4
 [64.5 MB] 126_RTC实验二_实时时钟_HAL库方式实现(二).mp4
 [55.8 MB] 103_电源控制_低功耗_睡眠模式_寄存器方式实现.mp4
 [57.0 MB] 098_电源控制_上电复位和掉电复位.mp4
 [21.3 MB] 101_电源控制_三种低功耗模式介绍.mp4
 [34.6 MB] 128_看门狗_独立看门狗介绍.mp4
 [57.9 MB] 123_RTC实验二_实时时钟_寄存器方式实现.mp4
 [109.5 MB] 127_RTC实验二_实时时钟_HAL库方式实现(三).mp4
 [136.6 MB] 100_电源控制_低功耗模式整体简介.mp4
 [60.2 MB] 119_BKP案例_HAL库方式实现.mp4
 [51.8 MB] 110_电源控制_低功耗_待机模式_寄存器方式实现.mp4
 [60.5 MB] 102_电源控制_低功耗_睡眠模式_需求分析和实现思路.mp4
 [10.7 MB] 113_RTC_功能框图和基本功能.mp4
 [27.5 MB] 125_RTC实验二_实时时钟_HAL库方式实现(一).mp4
 [48.2 MB] 114_RTC_功能模块详细介绍.mp4
 [38.9 MB] 118_BKP案例_寄存器方式实现.mp4
 [49.7 MB] 104_电源控制_低功耗_睡眠模式_HAL库方式实现.mp4
 [98.9 MB] 105_电源控制_低功耗_停机模式_需求分析和实现思路.mp4
 [18.8 MB] 107_电源控制_低功耗_停机模式_获取时钟和验证.mp4
 [83.6 MB] 099_电源控制_PVD.mp4
 [36.6 MB] 111_电源控制_低功耗_待机模式_HAL库方式实现.mp4
 [56.1 MB] 108_电源控制_低功耗_停机模式_HAL库方式实现.mp4
 [40.0 MB] 106_电源控制_低功耗_停机模式_寄存器方式实现.mp4
 [64.9 MB] 122_RTC实验一_闹钟唤醒待机模式_HAL库方式实现.mp4
 [99.5 MB] 003_CAN通讯_物理层介绍.mp4
 [49.9 MB] 029_CAN通讯案例二_双机收发测试_HAL库方式实现.mp4
 [29.5 MB] 011_CAN通讯_STM32的CAN外设_三种测试模式.mp4
 [16.9 MB] 032_以太网_以太网层次和OSI7层模型.mp4
 [49.8 MB] 008_CAN通讯_协议层_位填充.mp4
 [10.6 MB] 014_CAN通讯_STM32的CAN外设_位时序.mp4
 [24.4 MB] 028_CAN通讯案例二_双机收发测试_寄存器方式实现.mp4
 [43.8 MB] 022_CAN通讯案例一_环回静默模式测试_过滤器配置代码实现.mp4
 [32.5 MB] 019_CAN通讯案例一_环回静默模式测试_接收邮箱寄存器介绍.mp4
 [38.9 MB] 010_CAN通讯_STM32的CAN外设_三种工作模式.mp4
 [26.4 MB] 018_CAN通讯案例一_环回静默模式测试_发送报文代码实现.mp4
 [31.7 MB] 002_CAN通讯_产生背景和基本介绍.mp4
 [30.6 MB] 030_以太网_基本概念和底层原理.mp4
 [65.9 MB] 026_CAN通讯案例一_环回静默模式测试_HAL库方式_收发报文代码实现和测试.mp4
 [71.6 MB] 2-笔记【资源精选‖更多关注:CunworkNotes】.exe [148.5 MB] 1-资料.exe [2.0 GB] 3-代码.exe [277.9 MB]