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): 主要学习外设,通过程序配置外设实现想要的功能。
常见外设类型#
- GPIO: 通用输入输出口
- UART: 串口通信
- SPI: 串行外设接口
- I2C: 两线式串行总线
- ADC: 模数转换器
- DAC: 数模转换器
- 定时器: 各种定时功能
GPIO详解#
GPIO基本概念#
GPIO(General Purpose Input/Output)是通用输入输出口,可以配置为输入或输出模式。
GPIO配置模式#
输入模式#
- 浮空输入: 引脚悬空,读取外部信号
- 上拉输入: 内部上拉电阻,默认高电平
- 下拉输入: 内部下拉电阻,默认低电平
- 模拟输入: 用于ADC等模拟功能
输出模式#
- 推挽输出: 强驱动能力,适合驱动LED等
- 开漏输出: 只能拉低,需要外接上拉电阻
- 复用推挽输出: 用于外设功能
- 复用开漏输出: 用于外设功能
GPIO配置步骤#
- 时钟使能: 使能GPIO端口时钟
- 引脚配置: 设置引脚模式、速度、上下拉
- 输出控制: 设置输出高低电平
开发环境搭建#
硬件准备#
- STM32F103C8T6开发板
- ST-Link调试器
- USB数据线
- 面包板和杜邦线
软件工具#
- Keil MDK: 集成开发环境
- STM32CubeMX: 图形化配置工具
- STM32CubeIDE: ST官方IDE
- STM32CubeProgrammer: 程序烧录工具
学习路径建议#
初级阶段#
- 熟悉开发环境
- 学习GPIO基本操作
- 掌握时钟配置
- 理解中断机制
中级阶段#
- 学习各种通信协议
- 掌握定时器使用
- 学习ADC/DAC应用
- 理解DMA机制
高级阶段#
- 学习RTOS应用
- 掌握高级外设
- 项目实战开发
- 性能优化技巧
常见问题与解决方案#
编译问题#
- 检查库文件路径
- 确认芯片型号选择
- 检查时钟配置
下载问题#
- 检查连接线
- 确认芯片供电
- 检查下载器驱动
运行问题#
- 检查时钟配置
- 确认外设初始化
- 检查中断配置
总结#
STM32是一个功能强大的微控制器平台,通过系统性的学习,可以掌握嵌入式开发的核心技能。建议从基础开始,循序渐进,多做实践项目来巩固所学知识。
本文档会持续更新,记录学习过程中的新发现和心得。