先说一下情况吧,是这样的,最近同学几个合伙做个小项目,不算复杂,跟市面上的工程项目完全没法比,用难再需要使用的一个芯片是老师给的,从没用过,没有历程,至于一份电子版的数据手册,一切的一切都只能是从头开始,从底层开始,我们几个并开始从最底层的逻辑时序、寄存器操作开始,但经过几天的研究,确实毫无效果可言。
为此,我们几个郁闷了好长时间,开始疯狂的上网搜资料,拷代码,却终究是不得而返,还让老师骂了一顿,因为这个项目是我们主动要求老师放给我们的,结果却耽误了工期。
我们几个人很受打击,最终决定大家一起静下心来分析分析,到底我们败在了什么地方?
最后总经过两天的思考、讨论、总结、检讨···,我们发现了问题的所在,想来想去,这估计是很大一部分初学者正在面临的一个“瓶颈问题”。
总结失败几点原因:
1、“都是开发板惹的祸”,可以说从开始学习单片机,哪怕是最基础的51、以致后来的MSP430、ARM,我没从未离开过开发板,而且这长达一年多的时间,养成了我们对开发板极大的依赖,尽管自己焊过51最小系统、绘制过430最小系统板,但都是参考的别人已有的电路图,连最基本的电路基本都没分析过,为什么要在这几个电阻,该加个多大的,不加会怎么样,太大了/太小了会有什么后果,等等此类问题,我们从未分析过,全是COPY、COPY、再COPY,以致自己做过的东西不少,能力却未曾提高。
2、“全是例程误导我”,我们买来的开发板,往往都会带有丰富的例程,通常这也是卖家吹嘘、比拼的地方,但就是这些附带的历程,让我们与底层的开发绝缘了,有了例程,我们不用再一个代码一个代码地敲键盘,不用再去研究那些器件的数据手册、通信接口、寄存器、内部原理、以及很多商家没给我们加进去的功能,哪怕是将这些程序改到别的地方,我们也不过是在宏定义里改两个引脚配置而已,从未尝试过从底层写驱动、敲代码、写函数,从未尝试过快平台移植代码,开发呢些没用过的功能等等。
3、“现实环境太无奈”,这跟上面两个说的是不同的方面,我们都是大学生,大学里现在吵得火热的“大学生就业难”、“你是考研还是就业”、“你报XXX培训班了吗”“你考四六级证了吗”等等,好像上大学就是为了干这些,似乎没有这些,你就会陷入“毕业即失业”的困境。面对这些外来的干扰,越来越多的学生坐不住了,我们这些人也一样,尽管一直在学习自己的爱好,但当被人问得多了的时候,心里也难免会发毛、会害怕,从而导致一年来真正静下心来学这些东西的时间越来越少。
大体也就总结怎么多吧,经过这次失败,也算是教训深刻吧,再说将来的路还长,现在发现这些,应该不算晚吧。
那么,到底如何迈入单片机开发世界?
首先,我觉得有了单片机实验板你就要多练习,最好是自己有台电脑,少下载几部电影,少网络游戏,把实验板和电脑连好,安装上必备的软件,下载参考程序,并修改参考程序,从最简单的交通灯实验做起,等你发现你能控制交通灯,并了解交通的软硬设计的时候你已经入门了,你会发现单片机是多么迷人的东西啊,这不是在学习知识,而是在提升自我的价值。
用途那么广的交通的设计都不在话下了,你还会觉得你没有学到东西吗。还会觉得自己什么都不会吗?计算机编程、电子技术的专业知识都用上了啊。
当你编写的程序按你的意愿实现时,你比做什么事都开心,那种学习的收获感和成就感还有充实感是非常难得的,然后让数码管亮起来显示你所需要的数字。
这两部分会了以后,你已经不能自拔了,你已经开始考虑你这辈子要走哪一行了。就这样学习,在写程序的时候你肯定会遇到很多问题,而这时你再去翻书找,这其中你会找你之前学过的编程的书,还有数电模电的书,你会发现原来之前学的知识还是有用的。遇到不懂再去找以前学过的书本查阅这才是 “温故而知新,可以为师矣”的大道理啊。
知识必须用于现实生活中,解决实际问题,用单片机设计个简易的家电定时器、红外遥控器什么,这样才能发挥它的作用。