经验之谈单片机项目开发流程
现在来分享一下我和队友做小项目走的流程。(这些经验仅供参考,愿你们弃其糟粕,取其精华)
以下是我从若干个项目中总结下来的理论,记住实践是检验真理的唯一标准!大家加油吧,在你们的项目中,你们可以尝试使用下面的方法。
单片机项目开发
1、确定项目功能
和队友讨论你们要做的项目具有哪些功能,各功能可行性是怎么样的,需要使用哪些元器件来完成这些功能,有没有相关的产品或者作品参考,分析,讨论写下详细的作品说明书。
事先一定要确定好作品说明书,后期制作基本都是参考说明书(后期可以继续完善说明书)
一般这步结束后,会有如下几个文档
a.作品详情思维导图
b.作品功能说明书(实现那些功能,项目要求是啥)
c.作品方案设计文档(用哪些东西,有哪些替代方案)
2、收集相关资料
包括芯片数据手册
模块使用手册
参考例程
相关作品资料
3、搭出硬件测试环境
用最小系统板+模块+自己焊的小电路搭建出硬件测试环境
单片机项目开发
4、用viso画出程序流程图
微软的viso画图软件很好用,需要学会画程序流程图。(团队间可以一起讨论)程序流程图搞定,整个程序的逻辑写起来就简单了。程序流程图怎么画?这里无法表达清楚,仅做提示:
完成系统初始化,设置标志位,根据标志位执行动作
5、将各模块各功能分而治之
(分文件写驱动代码)
这个很重要,方便以后程序的移植!所以最好不要在同一个文件中写不同模块的功能代码!不要!不要!不要!
6、分功能测试驱动代码(分功能写出测试程序)
之前大二上学期的时候做过若干的小项目,都没考虑过这步,而是直接上手集成所有代码于一个项目下,然而集成完成后发现功能无法正常实现。然后就查bug,查bug,查bug,查bug。由于代码太多,bug很难查的。所以很蛋疼,而且费了很多时间,还不一定能查出来。
也就是说我认为比较正确的方法是:把一个大工程分解成各个小工程,每个小工程呢,只实现其中的一项小功能,实现完成后,再将测试通过的驱动代码,放到大工程下。
总结起来就是:分模块,分功能写驱动测试工程。说起来全是泪,都是自己摸索出来的。
单片机项目开发
7、整合测试通过的驱动文件
驱动文件全部测试通过后,就可以集成到一个项目下了,同时主文件中的函数也可以根据程序流程图进行编写逻辑了
如果需要画pcb电路板的话还需要做如下流程
8、根据确定好的io口,画电路原理图
(期间可能会用到模电相关知识)
9、pcb布局布线,开板,焊板
布局布线也要分模块画。
10、分模块调试pcb硬件
硬件调试期间会教你熟练使用万用表和示波器等(PS说多了也是泪)。期间芯片有可能焊接出问题,引脚电平输出有问题。这些的测试我们常采用 写出让芯片引脚高低电平变换的代码,然后用万用表进行测量。