(原创)学习MCU的感悟_初级(MCU,经验)

1.Abstract

    想了许多,不知道怎么开始,这算是学习和应用MCU的第四个年头了;过程虽然坎坎坷坷,但仍然还是坚持到了今天,也总算是折腾入行了。为了写的还是能够读下去,还特意写了一个小提纲,将这一路走来的经验沉淀一下,以便以后某段时间回来看看,那么,就这样开始吧。

2.Content

    先讲述一个过程吧,以时间轴的拉开序幕。我接触MCU是在读大学学专业课的时候。在学它之前,略微对它有些了解(毕竟CPU这个名字实在是太热门了),但究竟是个什么,就没有什么概念了。好在是修它之前学过电路技术基础,所以由它构成基本的电路部分还是能看得懂,能进行一定分析的,这给学习带来了不少的好处。学习MCU的时候,这东西运行起来还得靠编写指令代码,于是乎就去学它的指令系统。给我最初的印象是这东西功能非常强大,任何一个较为复杂的数字电路功能都可以由它实现,只要写好指令代码,烧录到芯片中,就可以实现了,再也不需要用很多片数字芯片去堆,省去了很多的引线;而且设计的方法也变了,用编写指令代码的方式只需要逻辑上转换转换就可以了,用数字芯片去堆,则要画各种各样的图和表,最后整合才能实现;实在是方便了不少!紧接着的一段时间,就是将它当一个无限资源的黑盒子,买了一块实验板进行编各种有意思的小程序。

    重要的一个转折点是逢上全国大学生电子竞赛,相对比赛结果来说,对我的历练显得更重要些,很多问题暴露出来了,电路技术基础学得不够牢固、编写程序逻辑不甚清晰、分析能力还是比较薄弱、实践能力不是很强等等,其中最能撼动我的,就是为什么要写程序?这个问题困惑了我很久,以前做的都是一些小程序,点点灯、花样灯、动态点阵、实时时钟……还有很多都是借用别人的程序,自己根本就没看明白,然后就直接用进来了。然而,应用到真正的要使用的场合,这些都不再需要了,还有很多组就根本不使用MCU!后来就重拾起书本,准备从书本中找找答案。

    暂时把时间轴拉到现在,因为现在我对这个问题的理解比较深刻,所以做起总结也会更贴切一些。解释它之前,先引进一个射击的例子。首先考虑下 子弹是用来做什么的?训练营里有各种各样的枪支,真枪也好,玩具枪也好,它只是一个楔子;我们大多使用的是将它瞄准各种各样的靶子,打中后就觉得不错了,水平很高超;不知不觉的,就养成了子弹就是用来打靶子的观点。而真正的意义果真是这么?不是的,子弹的真正意义是用来杀人的!当子弹穿过敌人的胸膛,让敌人根本无力回击,这才是一颗子弹的真正意义!或许之前有用过无数颗子弹,但只有这一颗,才算是真正有意义的,它用在了它应该被用到的地方,起到了强而有力的效果!那么,一个不熟悉子弹的人,不熟悉枪械、不熟悉风速、弹道、射程的人算得上是了解射击么?答案自然明显。回到问题上来了,一个不熟悉MCU内部结构,不熟悉它的功能、不熟悉它的用途的人算得上是了解MCU么?道理是一样的,编写的程序犹如例子中的子弹,它可以是无数个,但用到了它该用到的地方——工业现场、实际项目等中才算得上是真正有意义!

    把时间轴拉回去,所找的答案也明晰起来,即写程序是为了应用在实际项目中,为需要而写程序。在写出精巧的程序出来之前,必须得十分了解MCU的内部结构,资源,功能等等,要知道它是如何工作的——即打开这个黑匣子,深入到里边学习。于是乎,往后看得书就比较多了,多花时间努力去了解和掌握MCU的结构。写的程序虽然没以前多,但是与硬件连接比较紧密,预期的跟起初设计的相差不了多少。在这个层次上,许多东西都通了,比如,从一个MCU到另外一个型号的MCU,差别其实不大,只是结构稍有不同,功能有些不同罢了,整体的学习方法都是一样,特别有种触类旁通的感觉。这段时间内,邂逅了数字逻辑设计,我也被深深迷住了,MCU更贴近人的思维,可以做的事情稍微复杂点,但是使用数字逻辑设计出来的电路就非常精准,误差小,非常适合应用于复杂度不高的高速应用场合,比如调制解调,数据压缩等等。这些是MCU所不具备的,实际应用中可以结合各自的优点,各自发挥所长,构成一个完整的系统。

    而后毕业前的时间就是专心学习MCU的内部结构,数字系统逻辑设计。也有幸第二次参加了电子设计竞赛,这次是在电子技术基础上能力上有所锻炼,还是那句话,相对于比赛结果,对我的历练显得更为重要。常用的电路模型和分析方法都深深地印在脑子里,大学时的课本经常留在身边,密密麻麻做了许多笔记,每次翻书的时候,总能从中学到点什么。

    毕业以后,幸运的是,我还可以继续念书(硕士),还可以带一部分本科生,这已经是第二年了。给别人一碗水,自己就得有一桶水的基础,我也在不停地在学习。每每他们看到我能很完整的分析一个系统的功能,实现出预期的效果,都会心生佩服,纷纷讨教经验和方法。时常我都想静下心来整理一下,用文字的方式记录和积淀下来,写随笔可能是一件非常好表达方式。

  基础最为重要——基础并不是一天两天就能打起来的,它是一个反复的过程,需要长时间的积累,常用的书都应该专用的备一本,对里边的东西应该能了如指掌,特别是对理论的分析,要能在用到的时候准确找到位置。也要去不断的琢磨,好的书本通常都是比较耐看的,看一遍或许收获不大,多看几遍,就会顿悟许多。

  勤动手——对于一些感兴趣的,可以动手去试试,搭搭电路,写写程序是必要的。画板子、调电路、写程序、调程序等基本技能需要掌握,这些都是辅助设计的一些技能,以后不一定每一样都用到,但前期还是多动动手,学习和了解一下。

  多和前辈交流——虚心学习别人的经验是非常重要的,交流主要有两大途径,有声的和无声的,有声的是指前辈们就在你面前给你评析,无声的是指别人设计好的图纸或者源码,可以拿过来进行参考和学习。有很多时候都是原地在画圈,在不明朗的时候,前辈的一丝指点可能让人很容易跳出这个圈子,获得进步。

  培养点业余的兴趣爱好——培养一点业余的兴趣爱好对生活情调有很大帮助,除了学习、工作、家庭,还应该有自己的空间,这些兴趣爱好可以转移注意力,交到更多的朋友。隔行如隔山,毕竟从事一个行业的人是有限的,圈子是有限的,有一些共同的兴趣爱好,就相当于自己多了一份潜在的魅力,可以多感受一下其他的思想,陶冶情操。

3.Conclusion

    写了这么多,感觉还没有写完,就当先写了一个草稿,每当再回头看时,往上再充实一些。

原文地址:https://www.cnblogs.com/hechengfei/p/4116106.html