01
前言
大家好,我叫张巧龙。 今天转载的文章来自一位本科生,他在嵌入式学习方面有自己独特的经历。
以下为正文:
本文主要针对大学刚刚接触嵌入式的同学。
很多新手感觉嵌入式入门并不容易,涉及的内容和知识点太多。
你掌握了C语言的基础知识吗? 你懂汇编语言吗? 怎样学习电路原理? 你能看懂接单电路图吗? 你是如何学习AD软件的? 你能画电路吗?
本文主要包括以下内容:
02
嵌入式前景
从某种意义上来说,下一个时代是物联网时代。 未来的生活一定是智能化、互联化的。 所有的家用电器都会集中在一个终端上,周围的一切都可以通过这个终端来控制,就像扎克·伯格为自己的家用设备编写了一个系统,让他可以通过语音助手来控制整个家。
这些智能设备需要我们的嵌入式开发人员将这些设备嵌入到程序中并让您控制它们。
最近发生的华为、中兴芯片事件,刺痛了每一个中国人的心。 由于华为受到美国制裁,麒麟芯片将因国内技术、设备、工艺水平无法生产7纳米芯片而成为绝版。 在芯片领域,国家投入了数千亿,而这方面的人才非常稀缺。
据传,阿里巴巴收购了唯一一家独立嵌入式CPU IP Core公司中天微,就是为了做芯片,解决我们无“核”的痛苦。 我们学了嵌入式就可以恰到好处地使用它。
嵌入式工作后就可以做自己想做的事情,是一个非常智能的设备。 如果开发一个设备,比如门禁、热敏打印机、电子表、扫地机器人等,岂不是很棒?
嵌入式学习涉及软件知识以及硬件知识。 当你看到自己正在学习的是一个可以实际操作的单片机时,感觉很好。
前景很好,我之前说过,你不用担心找不到工作。
最后,如果你真的喜欢嵌入式,那就努力学习吧。 后期学习嵌入还是有点困难的。 这个时候,兴趣就发挥作用了。 既然你喜欢它,知道它好,那么无论它有多难,你都必须学它。 这肯定能学好,不在于谁更聪明,而在于谁学习时间长,学到的知识多。
03
如何开始使用嵌入式
如果你想在大学期间学好嵌入式技能,那么从大一开始。 嵌入式并不容易学。 嵌入式涉及的东西太多,不像软件那么容易学。
你可能满街见过JAVA、Python、大数据、数据库培训,但很少听说过嵌入式培训吧?
正是因为起步困难。 你不仅需要掌握软件的知识,还需要掌握硬件的知识,还需要学习各种硬件之间的通信原理。 也就是说,嵌入式学习需要一定的学术基础。
当你大一的时候,一定要多参加学校的活动,多交一些朋友。 在此期间,要留意实验室何时接收新生。 最好在新生入学时就进入实验室。 当然,大一主要学习C语言。
我大二即将开始学习单片机。 这就需要老师、学长来指导我,需要一个实验室的环境,我们可以一起做项目。 我会学得更快。 如果一想到尽快放弃在宿舍的学习,我觉得想要学好几乎是不可能的。
如果你是大一第一学期加入实验室,最后一个学期就应该学完C语言。 在实验室里学习C语言的进度肯定比在课堂上要快。 如果你不会学习C语言,就问别人或者上网搜索。 这样,下学期我就开始学习单片机了。 我刚开始学习的时候,一定要有一套材料,不然会很困难。
04
如何掌握单片机?
大一的时候,我很迷茫,我的想法和高中一样没有改变。 我总觉得学习意味着必须一遍又一遍地阅读和做每件事,然后才能擅长它。 如果真是这样的话,那么你的上限就只能是“工匠”了。
所谓精通,就是知道自己所觉知的是什么。 那么知道你所知道的是什么意思呢? 这一点非常关键,掌握单片机的核心架构,有自己的编程思想。
我当时大二下学期,已经学会了单片机的所有模块,但是我不太擅长使用它们,无法将每个模块组合起来做一个项目。
后来我有幸参加了蓝桥杯。 当时的课题是制作一款可以改变时间的万年历。 我们需要将温湿度模块、时钟模块、按键模块、液晶显示模块添加到程序中,并使其正常运行。 最后在 main 函数中调用各个模块的函数来创建项目。 不一定每个知识点都懂,但是你要准确地运用它,才算学会了。
大一应该学最重要的C语言和51单片机。 大二还可以学51单片机。 你还应该仔细学习高等数学。 对考研或者以后的工作都有用。 大二的时候,一定要学完51单片机,做几个小项目,然后学习一些自己感兴趣的模块,比如红外感应模块、WIFI模块、蓝牙模块、指纹检测模块……
拥有很多模块,你可以实现自己的想法。
比如制作一个跑马灯、动态数码管显示,模拟“全世界只有妈妈好听的铃声”,或者制作一个高难度的时钟计时或红外控制。 无论你想做什么,都可以询问老师是否有相关模块。
大二的时候,还应该学习画原理图、C++、数据结构、数据库的软件protel99se或者AD(Altium Designer)。 这些都是课堂上的课程,所以就在课堂上努力学习吧。
英语在以后的工作中也非常重要。 需要阅读英文文献,做好英语四、六级的准备。
也可以在大二下学期开始学习stm32单片机。 大二暑假留在学校实验室学习STM32。 我每天只是看视频,学习一些基础知识。
大三需要学习一门计算机语言,VC或者C#,同时需要学习STM32才能熟练。 可以先学习STM32上的UCOS实时操作系统。 大三的时候,我需要参加更多的大项目,参加更多的比赛。 我们实验我经常参加电子竞技比赛,还有挑战杯和蓝桥杯,用我做的东西参与其中。
如果你在大三还有时间,你可以开始做你的毕业项目,通常应该在两个月内完成。 暑假我们选择留在学校做毕业设计,实验室的老师给我们出题目。
之后,使用ARM来学习LINUX。 当然,你只需要在学校熟悉LINUX就可以了。 如果你掌握了所有这些知识,那么你一定学得很好。 以后可以去实习,尽快走向社会磨练自己的技能。
明白了为什么要学的东西那么多之后,我们就不能只选择一个方向来学习吗?
其实,你在大学里学到的知识都是基础知识。 你所学到的知识为你以后学习更深入的知识奠定了基础。 当你选择一个新的方向时,如果你在大学时已经接触过它,那么学习会更容易。 这并不难。 如果你根本没有见过,那么肯定要花很多时间去学习。 工作的时候不会给你那么多的时间去学习,所以多学点肯定是有用的。
05
使用微控制器的最快方法是做项目。
看完一篇知识,单片机的基础知识,一定要做一个项目。 只有做项目才能学得更快。 我简单说一下我做项目的经历。
大一的时候我对无线控制非常感兴趣。 我发现无线控制非常有趣。 响应设备和控制设备之间的数据交互是看不见、摸不着的,但却可以准确、高速地相互通信。 经过一段时间的学习,我选择了红外线作为无线通讯工具。
完成的项目为“基于物联网的教室空调控制系统”,主要实现红外码学习和传输、添加WIFI通讯功能、定时功能、温湿度检测等功能。
首先,接到这个项目后,我们需要了解基本功能,设计一个方案,思考这个方案是否可行,各个模块如何协同工作? 我们等等具体需要的模块,然后选择合适的MCU,不需要足够大,然后选择要使用的模块硬件。
准备工作做好后,就可以开始进行PCB的构图了。 当然,如果没有条件,您可以选择现有的带有您需要的模块的单片机。 硬件准备好后,就可以嵌入自己最擅长的软件编程了。
编程过程中比较注重细节,以及个人的编程习惯,会导致一些难以排查的bug。 在这个过程中难免会出现各种bug。 养成良好的编程习惯,比如对代码进行注释。