第1周:基础搭建与GPIO控制
学习目标:建立开发环境,掌握最基础的硬件控制能力
每日学习(2-3小时):
- 环境搭建(2天)
- 安装Keil MDK-ARM + STM32CubeMX
- 使用CubeMX创建第一个工程(选择STM32F103C8T6)
- 生成代码并烧录到开发板(LED点亮验证)
- GPIO编程(3天)
- 推挽输出/开漏输出模式区别
- 使用
HAL_GPIO_WritePin()
控制LED - 按键输入检测(轮询方式)
- 时钟系统(2天)
- 理解HSI/HSE/PLL时钟源
- 通过CubeMX配置72MHz系统时钟
- 调试技巧(1天)
- 使用
printf
重定向到串口 - 基础断点调试
- 使用
核心掌握:
- 工程创建流程
- GPIO的8种工作模式
- 时钟树配置逻辑
- 基础调试方法
第2周:通信协议与常用外设
学习目标:掌握数据交互与传感器驱动
每日学习:
- USART串口(3天)
- 阻塞式发送/接收
- 中断接收模式
- 与PC通信(使用串口助手)
- ADC采集(2天)
- 单通道电压采集
- 多通道扫描模式
- 光敏电阻数据读取
- 定时器基础(3天)
- 定时中断配置
- 基本PWM输出
- 呼吸灯实现
- 项目框架(2天)
- 模块化编程技巧
- 状态机设计模式
核心掌握:
- 异步串口通信协议
- 模拟信号数字化处理
- 定时器中断与PWM生成
- 代码组织结构优化
第3周:中断系统与高级应用
学习目标:实现高效系统控制
每日学习:
- 中断系统(3天)
- EXTI外部中断配置
- NVIC优先级管理
- 按键中断消抖处理
- DMA传输(2天)
- 内存到外设数据传输
- ADC+DMA高效采集
- FreeRTOS基础(3天)
- 任务创建与调度
- 信号量/消息队列
- 多任务LED控制
- 低功耗模式(2天)
- STOP模式唤醒
- RTC闹钟中断
核心掌握:
- 中断嵌套与响应机制
- 零CPU占用的DMA传输
- 实时操作系统基础
- 功耗优化策略
实战项目路线(难度阶梯)
第1周项目:
- 智能呼吸灯(GPIO+PWM)
- 使用PWM实现亮度渐变
- 强化:定时器配置、占空比计算
- 电子骰子(GPIO+外部中断)
- 按键触发随机数生成
- 强化:中断消抖、LED数码管控制
第2周项目:
- 环境监测站(ADC+USART)
- 采集温湿度并串口输出
- 强化:传感器校准、数据格式化
- 无线门铃(定时器+中断)
- 通过433MHz模块实现远程触发
- 强化:RF解码、低功耗设计
第3周项目:
- 多任务数据记录仪(FreeRTOS+DMA)
- 同时记录GPS数据与环境参数
- 强化:SD卡存储、任务同步
学习资源包
- 速查手册:
- 硬件推荐:
- 主控板:STM32F103C8T6(蓝色药丸)
- 传感器包:DHT11+光敏+MPU6050
- 调试工具:ST-Link V2 + 逻辑分析仪
- 调试技巧:
- 使用
SEGGER SystemView
分析RTOS任务 - 通过
STM32CubeMonitor
实时监测变量
- 使用
关键学习策略
- 逆向学习法:从CubeMX生成的代码反向理解寄存器配置
- 模块化开发:为每个外设创建独立的
.c/.h
文件 - 版本控制:使用Git管理工程版本(每个项目一个分支)
- 硬件解剖:每周拆解一个经典开发板原理图