背景
一年前,我在学习一个嵌入式课程的 WiFi 报警主机项目。项目进行到一半,因为研究生生活和家庭生活心力交织的原因,不得不停了下来。这一停就是整整一年。
最近,我决定重新启程,把这个项目完成。
当时的进度
回顾一年前的学习记录,我已经完成了:
✅ 已完成模块(约43%)
基础框架
- STM32F103C8 环境搭建
- 协作式(时间片轮询?) RTOS 移植
- HAL 层驱动开发
核心功能
- 6 按键输入(支持短按、长按)
- OLED 显示系统
- EEPROM 数据存储
- RF 无线接收(433MHz)
GUI 系统
- 桌面界面
- 设置菜单导航
- 传感器配对功能
🔲 待完成功能
- 传感器列表显示
- 传感器编辑/删除
- 主机防御模式
- 报警系统
- WiFi 配网
- APP 远程控制
重新开始
遇到的第一个问题
打开尘封一年的项目,第一件事就是查看代码。我使用 VSCode + Keil Assistant 插件进行开发,但遇到了一个让人头疼的问题:
现象:头文件明明存在,编译通过,但 VSCode 显示波浪线错误,无法跳转到定义。
影响:代码编写体验很差,效率低下。
解决过程
经过分析,我发现了问题所在:
根本原因:VSCode 的 IntelliSense 配置不正确
- include path 指向错误
- 缺少必要的宏定义(STM32F10X_MD)
- Keil Assistant 插件生成了冲突的配置
解决方案:
- 配置
.vscode/c_cpp_properties.json - 添加正确的 include paths
- 添加编译器宏定义
- 手动选择正确的配置
- 配置
心得:
IntelliSense 配置是现代 C/C++ 开发的标准流程, 不是可有可无的选项。配置好之后,开发体验提升巨大。
这段经历让我意识到,环境配置是开发的第一步,不应该被忽视。
智能体辅助学习系统
在准备继续学习时,我做了一件重要的事情:为项目创建了智能体辅助学习系统。
为什么需要智能体?
我停学一年的原因之一是:遇到问题时没有人讨论,卡住时容易放弃。
现在有了 AI 助手,情况完全不同了。
智能体系统的组成
我为项目创建了以下几个文件:
1. CLAUDE.md - 项目架构文档
详细记录了:
- 代码结构(APP → OS → HAL → SPL)
- RTOS 工作原理
- GUI 系统设计
- 重要文件说明
作用:帮助智能体理解项目架构,给出准确的建议。
2. LEARNING_PROGRESS.md - 学习进度跟踪
记录了:
- 8 大功能模块的完成情况
- 当前位置和下一步任务
- 知识点掌握情况
作用:可视化学习进度,保持学习动力。
3. .cursorrules - 智能体行为规则
定义了:
- 代码审查标准
- 讲解方式
- 学习策略
作用:确保智能体给出适合我的回答。
4. TASKS/ 目录 - 任务指南
为每个待实现功能创建详细指南:
- 功能需求
- 实现思路
- 参考代码
- 注意事项
作用:分解复杂任务,降低难度。
智能体能帮我做什么?
代码审查
// 我:帮我检查这段代码
// 智能体:发现3个问题...
原理讲解
// 我:OS_ClockInterruptHandle 函数是怎么工作的?
// 智能体:[详细解释 + 代码示例]
任务规划
// 我:传感器列表功能应该怎么实现?
// 智能体:[分步骤指导 + 参考代码]
学习建议
// 我:卡住了,不知道下一步怎么办
// 智能体:[分析当前状态,建议学习路径]
学习策略的改进
对比一年前和现在,我的学习方式有了很大变化:
❌ 一年前的学习方式
看视频 → 跟着敲代码 → 遇到问题 → 查资料 → 卡住 → 放弃
问题:
- 被动接收,缺乏思考
- 遇到问题孤立无援
- 理解不深入,容易遗忘
✅ 现在的学习方式
理解需求 → 自己尝试 → 遇到问题问智能体 → 深入理解 → 写博客总结
优势:
- 主动学习,加深理解
- 实时解答,不卡顿
- 输出倒逼输入,巩固知识
接下来的计划
短期目标(1个月)
完成传感器管理模块:
- ✅ 传感器列表显示 ← 当前任务
- 传感器详情查看
- 传感器编辑
- 传感器删除
中期目标(3个月)
完成剩余功能:
- 防御模式系统
- 报警功能
- WiFi 集成
- APP 控制
长期目标
- 系统总结整个项目
- 整理成完整教程
- 分享到博客和 GitHub
心得体会
1. 学习需要记录
这次重新开始,我最庆幸的是一年前留下了详细的 git 提交记录。通过查看提交历史,我能快速回忆起当时的思路。
建议:学好 git,养成频繁提交的习惯。
2. 环境很重要
好的开发环境能大幅提升效率。花时间配置工具是值得的。
建议:配置好 IntelliSense,使用智能体辅助。
3. 输出倒逼输入
准备写博客,让我在写代码时更加认真思考。
建议:尝试写技术博客,分享你的学习过程。
4. 不要害怕暂停
暂停一年,不代表失败。重要的是重新开始。
建议:不管多久,只要愿意重新开始,就不晚。
结语
如果你也在学习嵌入式开发,或者学习其他技术,希望我的经历能给你一些启发:
- 遇到问题不要怕,智能体可以帮你
- 搭建学习系统,让学习更高效
- 记录学习过程,写技术博客
- 停学了没关系,重新开始就好
重新启程,继续加油! 💪
