回 帖 发 新 帖 刷新版面

主题:一个老工程师给单片机初学者的几点建议

1 单片机种类不要贪多

单片机生产厂家众多,种类繁多,例如PIC单片机就有多达500种型号!显然要把各种单片机都学会是不可能的,也是没有必要的。实际上一个人会1~2种单片机(例如STC、AVR、STM32等)就足够了。我们多年来做过100多个单片机项目,主要使用的不过就3种单片机。

对于初学者,建议就选一种单片机为主(当然,最基础的51单片机是必学的),把它学透、用精。即使以后需要用到其它种类的单片机,,由于基础扎实很快也能学会,因为单片机功能毕竟都是大同小异的。至于选用哪种单片机,最好请教有经验的老师或工程师。

   

2、学的精比学的多好

有些学习板号称带有几G~几十G的“免费”学习资料,且不说这些海量资料是怎么来的,光把这些资料浏览一遍就够花上数月乃至上年的时间了。看完之后还只是懂个大概,该不会的还是不会,时间长了还都忘光了。倒不如踏踏实实静下心来,吃透每一个知识点,理解每一个细节。本人学习C语言时仅仅利用一套实际产品的源码和一本C语言语法书,对每行程序都做彻底研究,不懂的语法就去查书(现在有网络就更方便了),顺藤摸瓜对每一个知识点都不放过。学完这套源码后,我马上就会编写实用程序了。这种学习方法的好处是把知识点放在实际应用场景中来学,不仅容易理解,而且学完就会用,效率极高。

3、按需学习

单片机种类繁多,应用范围广泛,外围设备众多,要全部学会是不可能的。当然如果你有大把的时间除外。在实际工作中按需学习,这是一种高效率的学习方法,因为学了就用记得牢。而且,一年级的工程师和三年级的工程师同时学习某个功能模块,显然是三年级的工程师要学得快。(知行合一!)

4、能力比知识重要

在工作或学习过程中遇到技术难题,能不能运用所学的知识来快速解决问题,是工程师能力高低的一种体现。这种能力与个人天赋有关,更需要后天的培养。只要做到勤于实践、勤于思考、勤于积累,不放过每一个疑问或问题,你的能力将会不断获得提升。

5、经验比知识重要

有种叫经验的关键东西并不是你看几十G资料能够学得到的。获得经验的途径有两条:自己积累和拜高手为师。自己积累是必须的,但也是艰辛和缓慢的。拜高手为师是一条绝径,但要看缘分。

6、动手比看书重要

看再多的资料,不去动手,也只能是一知半解,时间长了不用就全还给老师了。

中国古代哲学家王阳明的“知行合一”思想,用于指导电子工程师的学习是再合适不过了。在学习板上练练手,做做实验,毫无压力,浅尝辄止,不能算是真正的动手。真正的动手是去承接开发项目,作出实际产品来,这时候就要见真章了,你会觉得压力大了,学习动力足了,这种情况下最能学到真功夫。

7、培养好习惯

很多初学者编程时一上来就用abc定义变量,也不喜欢注释和写文档,图省事(我以前也是),以为这样工作效率高,殊不知已埋下了许多隐患。新司机喜欢开快车,喜欢和别的车较劲,还嫌老司机开车太肉,这都是菜鸟的表现。试想若来一次哪怕是小事故,起码也得陪个几天功夫。平时抢行也就挣个几分几秒的,究竟哪个合算,大家可以合计合计。

好习惯还能救人一命。本人养成一个习惯就是拿电路板时绝不用手去接触芯片和任何金属的东西。有一次我拿着一块电路板在研究和思考问题,足足摆弄了有一个多小时,后来才知道由于前晚电源忘了拔了,板上是带电的,而且都是220V的!是好习惯救了我。

8懂得复用

复用就是这个项目做出来的东西别的项目也能引用。可复用的知识包括软件、电路、体系架构等等。复用的好处是提高开发效率和提高产品质量。这就要求工程师在开发过程中有意识地增加通用性设计,并注重知识的积累。

9、学一点操作系统的基本知识

对于单片机,一直以来没有合适的操作系统,所以大家都不用操作系统,全靠自己动手编写。即便如此,学一点操作系统的基本知识,例如:实时概念、多道系统、多任务、原子操作、可重入函数等等,对于软件设计很有帮助。

当然,如果有合适的操作系统,还是建议大家尽量去使用,其好处是减少工作量、减少出错、方便移植。最近我们推出了TreeOS 1.0实时操作系统,用于单片机,(可以到淘宝搜treeos内有详细的介绍)初学者也能很快掌握,童鞋们不妨试试。

回复列表 (共1个回复)

沙发

有兴趣的朋友可以加QQ3380129414交流

我来回复

您尚未登录,请登录后再回复。点此登录或注册