1.Abstract

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

2.Content

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

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

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

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

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

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

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

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

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

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

3.Conclusion

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

(原创)学习MCU的感悟_初级(MCU,经验)的更多相关文章

  1. 深度学习与计算机视觉(11)_基于deep learning的快速图像检索系统

    深度学习与计算机视觉(11)_基于deep learning的快速图像检索系统 作者:寒小阳 时间:2016年3月. 出处:http://blog.csdn.net/han_xiaoyang/arti ...

  2. 用了这么多年的MCU,你知道哪些MCU原厂最牛?

    单片机诞生于1971年,经历了SCM.MCU.SoC三大阶段.单片机由以前的1位.4位.8位.16位,发展到现在的32位甚至64位. 90年代后随着消费电子产品大发展,单片机技术得到了巨大提高,相继诞 ...

  3. ML学习分享系列(2)_计算广告小窥[中]

    原作:面包包包包包包 改动:寒小阳 && 龙心尘 时间:2016年2月 出处:http://blog.csdn.net/Breada/article/details/50697030 ...

  4. python学习两月总结_汇总大牛们的思想_值得收藏

    下面是我汇总的我学习两个月python(version:3.3.2)的所有笔记 你可以访问:http://www.python.org获取更多信息 你也可以访问:http://www.cnblogs. ...

  5. Oracle学习总结_day05_集合_连接查询

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day05_集合_连接查询 集合操作符 UNION ( ...

  6. 学习C语言感悟

     还记得刚上第一节C语言课的时候,基本上一节课只有最后10分钟的内容听懂了.在此之前从没接触过C语言,想说看看书预习一下吧,可是完全找不到条理,发现老师也不是按书上的顺序讲的.当时就特别着急,想说难道 ...

  7. [原创] Win7全自动精简批处理_绝对原创,绝对给力_感谢无忧给了我一年的潜水

    2011htpcfans发表于 2012-5-5 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=210043 @echo 全自动/手动精简 ...

  8. python学习的一些感悟

    首先声明,这里用到的库是在coursera上学习时,老师建立的一个库 #timer import simplegui import random # global state message = &q ...

  9. 手把手教你学习FPGA系列视频教程_救护车鸣笛声

    本套教程主要面对FPGA初学者,本次DIY活动不仅让初学者掌握FPGA硬件电路设计以及焊接方面的知识,更重要的是让初学者学习硬件描述语言 (VerilogHDL)描述数字电路,以及Quartus II ...

随机推荐

  1. 洛谷P3368 【模板】树状数组 2

    P3368 [模板]树状数组 2 102通过 206提交 题目提供者HansBug 标签 难度普及/提高- 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 如题,已知一个数列,你需要进行下面两 ...

  2. web form 基础知识初整理

    WebForm的基础知识1.(IIS7的标准首页iisstart.htm)ASP.NET 是.NET开发网站应用程序的技术总称 ,有两种方法,1.webform :比如淘宝 2.MVC B/S 一种网 ...

  3. 【转】git push 出现401 错误

    错误信息:error: The requested URL returned error: 401 Unauthorized while accessing https://git.oschina.n ...

  4. 第五百八十二天 how can I 坚持

    好吧,是我错了,昨天,做好自己就行了,别人怎么样是别人的事,永远保持一颗单纯向上的心. 时间过得真快,明天又周六了.. 睡觉.

  5. delphi ftBlob二进制字段读取存储

    aStream:TMemoryStream; 保存到字段 qrypub.ParamByName('Data').LoadFromStream(aStream, ftBlob); 从字段读取到mem里 ...

  6. JStorm第一个程序WordCount详解

    一.Strom基本知识(回顾) 1,首先明确Storm各个组件的作用,包括Nimbus,Supervisor,Spout,Bolt,Task,Worker,Tuple nimbus是整个storm任务 ...

  7. HDOJ(1010)DFS+剪枝

    Tempter of the Bone http://acm.hdu.edu.cn/showproblem.php?pid=1010 #include <stdio.h> #include ...

  8. 无法连接到已配置的开发web服务器

    http://jingyan.baidu.com/article/29697b91099847ab20de3c8b.html 这是防火墙造成的,将防火墙关闭即可

  9. Spark-1.0.1 的make-distribution.sh编译、SBT编译、Maven编译 三种编译方法

    fesh个人实践,欢迎经验交流!本文Blog地址:http://www.cnblogs.com/fesh/p/3775343.html 本文编译方法所支持的hadoop环境是Hadoop-2.2.0, ...

  10. Centos上DNS服务器的简单搭建

    1:安装软件包 yum -y install bind bind-chroot bind-utils bind-libs 2:修改配置文件 1): vim  /etc/named.conf 2):在主 ...