打电线杆子上的电话,办个证
新手在最短的时间内从零基础自学到就业,我分享下自己的经验,可以作为一个参考。
首先必须新手准备.keil开发工具,51单片机开发板前者用来编写和编译C语言或者汇编程序,后者用于熟悉单片机最小系统以及外设应用电路,验证和调试程序功能。
最主要的是做好如下4点:
第一步:找准需求
需求这个东西只有市场说了算。
既然我们是找工作,那就要分析大多数企业对这个职位的需求。
最好的办法就是直接招聘平台搜索相关的职位,然后看任职要求,我拿单片机开发来举例。
把这些要求全部记录下来,最后挑选出共同点,这就是这个职位的刚需。
第二点:基础理论学习
基础理论知识包括模拟电路、数字电路和C语言知识。新手一上来就要深挖,这是很多人都会犯的错误,不要因为想点亮一个灯,把模电数电系统所有学一遍,掌握精髓即可,实事求是。
第3点:制定系统学习计划
知道职位刚需后,比如说单片机开发的任职刚需是:基础电路、C语言、51单片机、STM32单片机对吧?然后找到相关的教程,认真学习!我估计你坚持不了,单片机学习过程是枯燥乏味、孤独寂寞的过程。要知道,学习知识没有捷径,只有循序渐进,脚踏实地,一步一个脚印,才能学到真功夫,
我当年学习的时候喜欢即时的反馈感,感觉自我价值膨胀了好几倍
第4点:理论与实践相结合
纸上谈兵迟早会败北,拿C语言来说,光是动手也能明白,但你实操就没那么简单了。光是一个C语言没法形成程序,需要更多个人编程和算法,
古今成大事者,必有坚韧不拔之志,学单片机也是如此如果程序不正常试反复检查、修改思路和算法,直到成功,这个过程耗时、费脑、疲精神,意志不坚强者往往被绊倒在这里半途而废,白白浪费时间!
记住习单片机的最终目的是做产品开发,活成老,学到老,虚心向别人请教,才到学到真功夫,否则,一味的自己埋头摸索会走许多弯路,浪费很多时间。
有问题随时找我,我这边整理了一些入门资料,可以找我要,希望能帮助到你们。
1、首先学习C语言,汇编语言。
2、精通数字电路模拟电路;
3、找一部视频跟着项目做;
4、自己动手画原理图PCB;
5、进行电路调试,其中万用表、示波器、电烙铁等等工具都得会用。
单片机工程师需要以下几种技能。
一、有电子基础,熟悉模拟电路和数字电路设计。
二、会画PCB。
三、会汇编语言和C语言,会看datasheet。
四、会搭建IDE开发环境,熟悉编程器、仿真器使用。
五、上位机编程VCVBQT,这项不是必须的,如果会这条的话,算是骨灰级别的了。
做单片机是跨行业的,然而工资待遇普遍比互联网编程低,所以单片机工程师其实是很苦逼的活,优点是稳定,不用经常换工作,除非自己想跳槽。
首先要有数电、模电的基础知识,能看懂各类芯片资料,比如各项参数,特别是文档中的典型电路,能帮助我们节省很多设计成本。
接下来得学学画图软件,比如AD,或者PADS,protell等,熟练掌握一种就可以了,实在不想画板子,调试板子的时候也能辅助搞明白电路图,对于调试板子是很有帮助的。
然后还要学学C语言。现在大部分单片机都是用C来开发,汇编用的不多了,有富裕精力的朋友可以熟悉了解一下。单片机板可以看做是人的躯壳,里面运行的程序是灵魂,相辅相成,缺一不可。
接下来是动手能力,一些基本的焊接技术是必要的,还有万用表,示波器这两样工具要熟练掌握,调试过程,是最能提高水平的过程!
最后就是要多多做不同的项目丰富自己的经验,比如usb转ttl的电路设计,上位机软件如串口助手的操作,这些都有助我们快速的完成单片机项目的设计验证。
我从事单片机系统开发已经16年,简单总结一个成为一个单片机工程师都需要哪些知识和技能:
1、模拟电路和数字电路基础知识:基本的电路知识还是要有的,在学习和工作中不管是设计电路还是学习交流别人的电路,没有基础知识会很困难。而且设计电路都是基于对基础知识的深刻理解。学习别人的电路也是要有基础知识的,不理解的情况下只能抄别人的电路,不能理解,如果出现问题是没有能力解决的。
2、常见的外设电路:常见的外设电路一定要掌握的,但是需要注意的一点是书上的电路和开发板上的电路只是实现功能而已,要想设计出好产品还是学习一下高手设计的产品和电路,因为他们的电路不但能够实现功能,而且能够可靠稳定运行。
3、PCB设计软件和电路仿真软件:AltiumDesigner、PADS一般适用于一般简单的单片机系统的pcb设计,一般还是要掌握的。Cadenceallegro适合做高速PCB设计,他的仿真功能、自动走线、高速信号辅助功能做的很棒,但是如果做简单系统有点复杂,和多人不能适应。电子电路仿真软件multisim、proteus、PSPICE,如果能学会这些软件辅助进行电路设计是很棒的。
4、PCB设计:学会了PCB设计软件不等于就学会了PCB设计,软件只是工具,进行PCB设计还是有很多要求的,如果不深入学习,做的PCB只是把电路连接起来而已。到产品投入运行时如果出现问题会比较头疼,而且如果出现批量运行不可靠,损失将是十分巨大的。
5、电路可靠性设计和整机可靠性设计:我们上学学习的各种电路其实都是实现功能,没有什么可靠性。举个例子:单片机驱动电磁阀,很多人设计就是单片机io控制三极管,然后是继电器,最后驱动电磁阀。然而很多人碰见阀门动作的时候会出现单片机复位、死机等情况。如果不懂可靠设计将会非常痛苦。还有整机可靠性设计,有时电路设计很棒,运行任然不可靠,偶尔出现问题,经常碰见的就是布局不合理和电缆铺设不合理导致的。
6、EMC设计:现在很多产品都是需要进行认证的,如常见的计量认证、3C认证、防爆认证等,进行认证必然要求进行EMC测试,测试不合格是拿不到生成资格的。即使不需要认证也建议样机进行EMC测试,这样会在样机阶段暴露一些设计缺陷,如果已经生产成千上万台机器了,发现有设计缺陷,运行不可靠,有可能是致命的。
7、各种常见仪表的使用:各种常见仪表使用并不难,稍微看下说明书应该都可以。如万用表、示波器、电源等。
8、C语音和汇编语言:汇编语言现在使用很少了,有兴趣可以学一下,一般是用不到的,但是在一下场合是必须的。C语音是必须要会的,现在单片机基本都是用C语音,没什么好说的。
9、常用算法:排序、滤波等常用算法是必须要会的。
10、单片机编译软件:常用的就是keil和IAR,一些单片机的编译软件是专用的,不过这个很容易学,网上资料很多。
11、代码编辑软件:UE、sourceinsight等软件能帮助我们看代码和编写代码,对于一些比较大的项目使用sourceinsight是非常方便的。
12、版本管理软件:版本管理软件很多,我主要是使用SVN,它免费,体积小,非常适合个人使用,很多大公司也是用SVN的。它能非常方便的进行比较、回滚、合并,对于团队合作写代码也是很方便的。
成为单片机工程师,需要硬件和软件技术作为支撑。
硬件基础
首先是模拟电子技术,是模拟量处理技术的基础知识。包括基本放大电路,运算放大电路等等。
然后就是数字电子技术,是数字量处理技术的基础知识。包括门电路、触发器、编译码器、计数器、运算器、存储器等等。
此外,还有电路分析,电动机及其控制电路,液压气动技术,传感器技术,驱动技术等等。
软件基础
首先是C语言、汇编语言,是重要的编程基础,其中C语言更受欢迎、更为重要。此外,还有java、Python等面向对象的高级编程语言。
常用的工具软件,例如,用于单片机编程调试的Keil,用于原理图、PCB设计的电路设计软件protel,用于建模仿真的matlab等等。
单片机编程涉及到的东西很多,我们无需恐惧,也不需要一天学完。一般来说,随着学习的深入,根据需要去选择相关内容。作为优秀的电气电子技术工程师,上述内容是必要的。学习就是一场修炼,随着能力层次的进价,就会发现这些知识丰富的内涵,更广泛的电气世界。
工程师这个称谓可不是随便叫的,他可是程序员的进阶版,不光是只会撸代码就完事的!
完善的单片机工程师,软硬件可是都要会的;
软件:会写C语言是基本,如果想要深层次的了解单片机底层架构,汇编语言也是要熟练的;
硬件:基本的电路知识(如欧姆定律)会算、元器件特性(电容、电阻、电感、二极管等)会用,常用器件(马达、红外等)会依规格书转算法,常用硬件接口会用单片机资源实现(IIC、UART、SPI等硬资源软IO模拟)
常备技能:会用各种分析工具(万用表、示波器、逻辑分析仪等),各种调试工具(串口工具、字库工具、UI生成),英语常用专业术语……
高阶技能:把需求转算法,会规避单片机缺陷,巧用资源节省成本!
一般来说,单片机属于硬件工程师的工作范畴。毕竟单片机驱动编程和电路设计是分不开,只有明白了单片机如何驱动才能设计出更为合理的电路产品。
如果想更好的从事单片机相关工作:
1、必须熟悉C语言。目前基本上所有的单片机的开发环境都支持C语言编程。
2、最好熟悉汇编语言。原因如下:
①、虽然大部分单片机都支持C语言编程,但某些单片机采用汇编语言编程更好一些,如PIC8位单片机。
②、对于一些对时间要求较高的产品,采取汇编语言会更节省时间并且时间可控性更高。
③、由于单片机的启动文件等底层文件都采用汇编语言,产品采用实时系统,如UCOS、FreeRTOS等,必须需要汇编语言进行一致。即使不采用实时系统,熟悉汇编语言也可更好的了解单片机系统。
3、熟悉各种元器件以及电子电路原理。只有熟悉电路原理,才能更好的利用单片机驱动做出好的产品来。
4、熟悉一款单片机的外设功能。单片机方面,基本上熟悉了一款,便可举一反三,能迅速上手其余的单片机。
5、熟练使用相关实验调试设别,如电烙铁、万用表、示波器等。只有熟练使用这些工具,才能迅速的调试出一款合格的产品。
作为嵌入式开发一员,来谈谈如何成为单片机工程师。
最简单直接的就是来看下我们企业对于单片机工程师如何定义的,这样我们对于成为单片机工程师需要掌握的知识图谱技能也就一目了然了。
从上面的JD我们可以看出要成为一个合格的单片机工程师,我们需要做到:
1.精通C语言编程,目前大部分单片机开发都是基于c语言,有时候会涉及到汇编。只有熟练的运用好编程语言这门工具,才能很好的实现需求。
2.熟练的阅读硬件原理图,同时还要能读懂数据手册,只有看懂原理图,如管脚,上拉电阻,总线接口等,才能对应的完成软件的编写。
3.熟练某个平台的单芯片soc,比如51,arduino,树莓派开发,由于单片机(嵌入式)工程师基本上都是和硬件打交道,基于平台开发相关的应用功能,所以势必需要熟悉如i2c,spi,串口,蓝牙等协议。
4.熟练使用万用表,示波器,电烙铁等工具,这样对于问题才能更好的快速定位。
总之,编程经验需要不断的积累,尤其是嵌入式开发,需要懂得相当多的技能,需要我们大量的积累开发经验,并不断的学习新知识,只有这样才能顺应科技的进步,保持自己的竞争力。
极客老王,十年嵌入式相关领域工作经验,涉猎Android手机,路由器,VR,linux内核、网络开发,老司机带你飞,快上车,欢迎关注
单片机工程师?我先理解为从事单片机相关工作的设计人员。
单片机从上世纪80年代开始流行到现在,并且最近几年单片机又火爆了一次,主要得益于智能电器的流行。
其实单片机很简单,单片机在所有系统中的作用就是外围设备信息的采集和控制,数据的计算和分析等等,并且大部分单片机都是相通的,学会某一个单片机,其他的也都差不多。
如果从事单片机行业,个人建议51单片机必学,很多高校的单片机课程也都是51单片机。学习51单片机的作用在于它的直观,通过学习,能把软件编程和硬件联系起来,比如配置定时器,通过写入寄存器的数据可以很直观的认识到底层硬件是怎么连接的,如何通过软件代码实现硬件的动作,理解比较深刻。同时需要学习c语言和数电知识。怎么把自己的想法转成机器语言,这需要一定时间的,还有就是数电了。单片机也数字电路的一部分,内部其实也是很多数字单元组成的。
51单片机学习一段时间后可以选择一款32位单片机学习,推荐使用stm32,这个芯片使用度非常大,网上资料也很多,学习起来比较方便。stm32相对51单片机来说功能更强大,同时也更复杂。开始可以买一块开发版学习。开发板资料都很全,先系统了解一下,对比一下不足,再通过查找资料一点点弥补不足。
推荐图书
做技术很辛苦,一方面积累经验,一方面不断学习,这样你会越来越强大,加油✊✊