source-stm32-three-tutorials.md 5.5 KB


tags: [source-summary] type: source source: "STM32学习笔记(三教程综合) — 环境搭建与GPIO详解" author: "铁头山羊 / 江协科技 / STM32 HAL库入门" date: 2026-07-09 url: "" created: 2026-07-09

updated: 2026-07-09

三教程综合 STM32 入门笔记

来源

基于三个教程系列的 ASR 转录文本与配套源码整理:

  • 铁头山羊 HAL 库教程(B站):CubeMX + HAL 库为主,偏原理讲解,GPIO 输出速度与 EMI 讲解深入
  • 江协科技标准库教程(B站):标准库(StdPeriph)为主,工程模板、Delay 模块(SysTick 寄存器操作)、LED/Key/Buzzer/LightSensor 模块化代码
  • STM32 HAL库入门(B站):CubeMX 图形化配置演示,闪灯/按钮实验

新增原始笔记

位于 raw/Joplin/嵌入式+Linux/STM32学习笔记(三教程综合)/

Note 1:STM32-环境搭建与工程模板.md

完整覆盖:

  • STM32 vs 51 差异对比(铁头山羊第一课核心观点:零基础可直接学 STM32)
  • Keil MDK 安装(含 Device Pack、注册授权、ST-Link 驱动)
  • CubeMX + HAL 库方案定位
  • 项目五目录结构(Start/User/Hardware/Library/System)
  • stm32f10x_conf.h 外设开关机制
  • 启动文件选择(MD/LD/HD)
  • Delay 模块(SysTick 寄存器操作原理:LOAD/VAL/CTRL/COUNTFLAG)
  • main.c 模板(标准库八字诀:时钟→结构体→配置→初始化)
  • 3 种 GPIO 电平操作方法
  • 标准库 vs HAL 库对比表格
  • 烧录方法(ST-Link SWD、FlyMcu 串口 ISP、bootloader 擦除恢复)
  • GPIO 初始化寄存器级原理(CRL/CRH 分析)
  • 常见问题排查表

Note 2:STM32-GPIO详解.md

完整覆盖:

  • GPIO 内部结构框图(P-MOS/N-MOS/ODR/IDR/I/O Pad)
  • 8 种工作模式详解(附 P-MOS/N-MOS 状态表)
    • 4 种输出:推挽、开漏、复用推挽、复用开漏
    • 4 种输入:浮空、上拉、下拉、模拟
  • 推挽 vs 开漏对比(含线与能力、电平兼容)
  • 输出速度详解(2/10/50MHz、上升/下降时间、EMI 关系、选型建议)
  • CRL/CRH 寄存器 MODE 位含义
  • LED 驱动代码(低电平点亮电路原理、模块化 LED.c、LED 闪烁、LED 流水灯)
  • HAL 库等效 API 对照表
  • 蜂鸣器模块代码
  • Key 模块(上拉输入 + 延时消抖 + 等待松手)
  • 光敏传感器控制蜂鸣器
  • 8 种输入模式选择指南
  • 常见误区纠正(速度、上拉下拉、开漏、浮空等)

Note 3:STM32学习笔记(上)-UART串口通信.md

完整覆盖:

  • 串行 vs 并行、同步 vs 异步通信概念
  • UART 数据帧结构(起始位/数据位/校验位/停止位)
  • 波特率与位时序
  • TX/RX 交叉连接
  • STM32 USART 模块结构、GPIO 引脚配置(PA9/PA10)
  • CubeMX 配置与标准外设库初始化
  • 轮询发送(TXE/TC 标志位)
  • 发送字节/数组/字符串/数字
  • printf 重定向(fputc + MicroLIB)与自封装 Serial_Printf
  • 中断接收(RXNE 中断 + NVIC 配置)
  • 接收标志位与数据变量、回传实验
  • 中断进阶:命令解析控制 LED 可变间隔闪烁
  • 常用问题:波特率不一致、TX 接 TX、MicroLIB、接收丢数据、电平转换

Note 4:STM32学习笔记(中)-I2C通信.md

完整覆盖:

  • I2C 总线结构(SCL/SDA/上拉电阻)
  • 开漏输出与线与逻辑、I2C vs UART 对比
  • 起始/停止条件、数据帧格式、ACK/NACK
  • 速度模式(SM 100kHz / FM 400kHz)
  • STM32 I2C 外设配置(引脚/重映射/复用开漏/时钟)
  • 内部结构框图与关键标志位(SB/ADDR/AF/TXE/BTF/RXNE/BUSY)
  • 硬件 I2C 写数据完整流程(等待空闲→起始位→寻址→发数据→停止位)
  • ADDR 清零规范(先读 SR1 再读 SR2)
  • 硬件 I2C 读数据流程(重复起始位 + NACK 结束)
  • 软件 I2C GPIO 模拟实现(Start/Stop/SendByte/RecvByte/Ack)
  • MPU6050 六轴传感器驱动(寄存器读写、初始化、数据读取)
  • 硬件 vs 软件 I2C 对比表格
  • 常见问题:总线锁死、上拉电阻、地址冲突

Note 5:STM32学习笔记(下)-SPI通信.md

完整覆盖:

  • SPI 四线制(SCLK/MOSI/MISO/NSS)与一主多从结构
  • 全双工数据交换机制(16 位环形移位寄存器)
  • CPOL/CPHA 定义的 4 种时序模式详解
  • MSB First vs LSB First
  • STM32 SPI 外设配置(CubeMX 全双工主机模式/软件 NSS/波特率计算)
  • 标准外设库初始化代码
  • HAL 库 API:HAL_SPI_Transmit / Receive / TransmitReceive
  • NSS 手动控制与接收缓冲区初值 0xFF 要点
  • W25Q64 Flash 存储结构(块/扇区/页)
  • W25Q64 指令集:写使能(0x06)、扇区擦除(0x20)、页编程(0x02)、读数据(0x03)、读 ID(0x9F)
  • 等待忙(状态寄存器 BUSY 位查询 + 超时保护)
  • 完整实验:LED 状态保存与恢复(按钮控制 + Flash 存储,断电不丢失)
  • 软件 SPI GPIO 模拟实现(Start/Stop/SwapByte 模式 0)
  • 硬件 vs 软件 SPI 对比表格
  • 常见问题:NSS 未拉低、模式不匹配、忘记写使能、跨页写入、擦除时间长

与现有 wiki 的关系

说明:以下原 wiki 页面已归档或重构,目前对应的完整笔记请参考 raw/Joplin/嵌入式+Linux/STM32学习笔记/(尚硅谷系列)。

  • 尚硅谷笔记 01~06(基础篇)覆盖 STM32概述、GPIO、中断、时钟、USART
  • 尚硅谷笔记 07~12(进阶篇)覆盖 I2C、定时器、PWM、DMA、ADC、SPI+FSMC
  • 尚硅谷笔记 13~17(高级篇)覆盖 CAN、以太网、WiFi、BLE、LoRa
  • 尚硅谷笔记 18~21(扩展篇)覆盖低功耗、RTC、看门狗、附录