ZeroHour's Site

Back

STM32学习笔记#

概述#

STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器。常应用在嵌入式开发领域,如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品等。

命名规则解析#

  • ST: 公司名称
  • M: microcontroller/MCU 微控制器/单片机
  • 32: 32位单片机(51单片机是8位),也有STM8

具体型号:STM32F103C8T6#

硬件参数#

  • 主频: 72MHz
  • RAM(运行内存): 20K(实际存储介质:SRAM)
  • ROM(程序存储器): 64K(实际存储介质:Flash闪存)
  • 供电: 2.0~3.6V(标准3.3V)
  • 封装: LQFP48(48个引脚)

型号参数详解#

  • F: 通用类型
  • 103: 增强型
  • C: 48脚
  • 8: 64K字节的闪存存储器
  • T: LQFP封装
  • 6: 工业级温度范围:-40~85℃

外设学习#

外设(Peripheral): 主要学习外设,通过程序配置外设实现想要的功能。

常见外设类型#

  1. GPIO: 通用输入输出口
  2. UART: 串口通信
  3. SPI: 串行外设接口
  4. I2C: 两线式串行总线
  5. ADC: 模数转换器
  6. DAC: 数模转换器
  7. 定时器: 各种定时功能

GPIO详解#

GPIO基本概念#

GPIO(General Purpose Input/Output)是通用输入输出口,可以配置为输入或输出模式。

GPIO配置模式#

输入模式#

  • 浮空输入: 引脚悬空,读取外部信号
  • 上拉输入: 内部上拉电阻,默认高电平
  • 下拉输入: 内部下拉电阻,默认低电平
  • 模拟输入: 用于ADC等模拟功能

输出模式#

  • 推挽输出: 强驱动能力,适合驱动LED等
  • 开漏输出: 只能拉低,需要外接上拉电阻
  • 复用推挽输出: 用于外设功能
  • 复用开漏输出: 用于外设功能

GPIO配置步骤#

  1. 时钟使能: 使能GPIO端口时钟
  2. 引脚配置: 设置引脚模式、速度、上下拉
  3. 输出控制: 设置输出高低电平

开发环境搭建#

硬件准备#

  • STM32F103C8T6开发板
  • ST-Link调试器
  • USB数据线
  • 面包板和杜邦线

软件工具#

  • Keil MDK: 集成开发环境
  • STM32CubeMX: 图形化配置工具
  • STM32CubeIDE: ST官方IDE
  • STM32CubeProgrammer: 程序烧录工具

学习路径建议#

初级阶段#

  1. 熟悉开发环境
  2. 学习GPIO基本操作
  3. 掌握时钟配置
  4. 理解中断机制

中级阶段#

  1. 学习各种通信协议
  2. 掌握定时器使用
  3. 学习ADC/DAC应用
  4. 理解DMA机制

高级阶段#

  1. 学习RTOS应用
  2. 掌握高级外设
  3. 项目实战开发
  4. 性能优化技巧

常见问题与解决方案#

编译问题#

  • 检查库文件路径
  • 确认芯片型号选择
  • 检查时钟配置

下载问题#

  • 检查连接线
  • 确认芯片供电
  • 检查下载器驱动

运行问题#

  • 检查时钟配置
  • 确认外设初始化
  • 检查中断配置

总结#

STM32是一个功能强大的微控制器平台,通过系统性的学习,可以掌握嵌入式开发的核心技能。建议从基础开始,循序渐进,多做实践项目来巩固所学知识。


本文档会持续更新,记录学习过程中的新发现和心得。

STM32学习笔记
https://zerohour.github.io/blog/electronics/081301
Author ZeroHour
Published at 2024年8月13日
Comment seems to stuck. Try to refresh?✨