冯·诺依曼结构
要学习一个东西,总得知道它是什么吧~ 对于咱们天天接触的计算机,小伙伴们真的了解它吗?
现在的计算机大多数都是基于冯·诺依曼结构。
数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备
一台能够正常工作的计算机都是有CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备等几个主要部件。
而在单片机中,这些部件都被做到一块集成电路芯片
上了,因此单片机有时候也称为微型控制器MCU
现在市面上可以了解到的单片机其实蛮多的。 这儿罗列几个常见的吧~
结合我自己的经历以及请教了已经在做嵌入式工作的学长学姐以及自己的指导老师之后,综合建议是先学习51单片机。
为什么了?
2.1.1、入手成本低,老少咸宜
这是从某宝上直接截取的卖价,常规来说,就是70RMB,相当于买一个夏师傅的永昼的价格了,相信大家只要不是我这种穷得是让兄弟帮忙买的,应该都能接受的吧~
我记得当初查找一个漫反射波的资料吧,硬是在某度和某DN翻阅了许久都没有找到合适的(当然,也肯定有我十分菜的原因…)。
有了这些得天独厚的优势,此时学习51单片机只需要记住在学习的时候,不仅仅当做51这个类型的MCU来学习。
而是应该化零为整(hh,闫式DP)的思想来考虑,要把它当做单片机
来学习,把单片机内部的资源都搞清楚、弄明白,将每个模块的用法尽力理解透彻。
那么当遇到一个没有见过的型号的时候,就能够快速上手,举一反三、融会贯通
。
我去年第一次接触单片机的时候,就是陷入了只停留在代码逻辑层面的误区,就导致自己学的感觉就是,痛苦。
当时是在省赛的早上,寻迹的模块突然不灵了,我自己挺蒙的,以为代码被我误改或者线搭错了?倒腾的了半个小时,心急如焚,此时过来一个其他院的师兄,直接把手指依次放到负责寻迹模块的传感器下面,我记得是大概是用了三分钟的样子,找到出问题的传感器了。
单片机确实是硬件层面的,说抽象一点确实没有程序那么可以直接debug,但是也记住,它就是一件实打实的物品,一个看得见摸得着的东西,那么直接对它操作,它是可以直接进行反馈的。
切忌直接听取某乎里的大神说,可以看什么什么书,还依着书单依次去买书了,我就是那种呆B。
我不知道他们是什么居心,或者我太菜了,我观念里学的只是依赖书本,那是为了要应付考试了吧~
单片机的东西是必须落实到代码的操作部上,然后当遇到问题了,在反过头来把书当做字典来获得自己需要的信息,用需求刺激输入的效果,我相信会更好。
刚出生的孩子叫“爸爸”、“妈妈”的时候,他其实不知道“爸爸”、“妈妈”是什么意思,但是当带着孩子见到爸爸就让他喊“爸爸”,见到妈妈就让他喊“妈妈”,次数多了,孩子就知道谁是爸爸,谁是妈妈了。其实背英语单词也是这种的,见的次数多了,就记住了。
刚开始接触单片机的时候,也属于单片机行业的新生儿。单片机的样子, 单片机内部资源,单片机外围的各种器件,以及对单片机使用C语言,可能都是不太熟悉的,头脑中也没有相应的概念嘛。
没关系,有些概念和方法不理解也没有关系,甚至不需要去理解,只需要跟着去鹦鹉学舌式的学习,一遍遍去模仿
,就比如程序,大家跟着抄下来,甚至抄个两三遍,过段时间会发现,好多东西也认识了,好多概念也慢慢清楚了,也能大概看懂别人的小程序了,此时切忌觉得自己看会了就简单复制粘贴。
再类比到我比较熟悉额算法吧,闫总说,其实学算法其实也是体力活,也就是这个意思了,在一遍一遍的记忆之后,能够他规定的时间里将一个算法独立的A出来,大致也就是掌握了,只是日后可能会有小疏漏、小遗忘。学习是一个记忆的过程,一个模仿的过程,这个游戏,感觉更像谁能够在更少的时间里记住更多的东西,而你记住的这些东西能在你需要的时候,从脑子里蹦出来 。
大多数人学习的时候,可能特别是学数学或是在Bilibili大学看老师敲代码,看到就懂啦,等到自己实际着手去写的时候,却是遍地通红…
我听了前辈们的建议,将他们的劝诫直接放在这儿吧,是分享,也是对自己的提醒。吾日三省吾身
在学习完当前课程的内容,把第一步顺利完成以后,然后把视频、源代码统统关掉。
自己通过原理图和查找非源代码的其他任何资料
,把当节课的程序重新默写出来,边写边多少理解那么一点点,而不是纯粹的死记,应该说是记忆加理解的结合。
甚至学过几节课以后,可以回头把前面曾经这样实现过的内容,再按照这种方法实现一遍。千万不要认为这一步没有必要,这一步是能否学会单片机关键的一步喔。
听着好像挺高端的样子,玄之又玄的味道了,说直白一点了,面向谷歌和百度编程
倘若是从零开发一个产品,可能会走很多弯路,也会遇到前人曾经遇到过的问题,别人可能也记录了博客,此时就可以借助他人的经验来解决问题了。百度、谷歌、CSDN或是Stack Overflow,总有人曾经遇到过类似的吧~
同时也鼓励大家记录自己怎么解决bug,相互帮助,共同成长啦啦啦~
每个一段时间可以总结一下所学的知识,可以自己做思维导图,也可以输出博客。著名的费曼学习法了。
有台电脑、有块开发板这种废话我就不说了吧。主要说说
心理上的准备:
战略上藐视它
,别人能做出的东西,咱们为什么做不出来,就比别人差吗,不见得吧。
战术上重视它
,因为始终是面向一个冰冷的机器,无法直接从内部剖析它。在学习的时候,着重去从底层思考实现原理。
很多人想问的应该是学嵌入式以后好找工作吗,这个了,我学嵌入式只是为了学科竞赛以及还我指导老师的人情。
我不画饼,我以前听Unity3D游戏开发的课程时候,是一个清华的老师在讲,他只是说,嵌入式位置比较少,技术越老越吃香。
我不用我点破了吧~