EDA365电子工程师网
标题:
单片机学习心得
[打印本页]
作者:
wzs6668
时间:
2016-7-4 15:02
标题:
单片机学习心得
写给爱好单片机以及正在学习单片机的同学们
5 A5 G& N m; T
% T. F. t# z& J; _; a& f
, K4 J3 m0 S1 |: L# V. i( f
刚才我看到一个帖子,回答了一个单片机学习者的问题。但是我个人觉得这个问题比较有普遍性,想谢谢自己的经历,给那些爱好单片机,以及正在学习单片机的朋友们。
! Z) j* {+ ]( F& K5 [* x) ]
我大一的时候,就加入了学校电子实验室,学习51单片机,那个时候没日没夜的学单片机编程。从最简单的LED到后来的各种协议,用51单片机运用自如。后来上了大二,我记得那个时候正逢湖北省电子设计大赛,我有幸被选拔为参赛成员,由于大赛的规定,我不得不转入msp430单片机的学习。由于有熟练的51单片机的基础,所以在学习430的时候,上手很快。熟悉了430的寄存器,基本上就能够上手变成了,就这样,我学习了半年的MSP430单片机。
) W3 U" u! C! `2 R3 C5 S
在学习单片机的同时,自已学习电路以及PCB的设计,从基本的模块到整个大的系统,自己都尝试做PCB。可以说PCB是我一直坚持学习的。从大一到大四,以至于现在我仍然设计一些PCB,但是相比于学校的,公司里面的更为复杂,要求更为苛刻。因为涉及到高频PCB布线,我就不详述了。总之,学习单片机的同时,硬件也在步步跟进。自己做开发板,自己做一些小玩意。
" s; O3 x! Y; G* k" J
后来,玩430觉得不过瘾,又买了PIC和AVR的开发板学习,可是学来学去,总是那么几个模块,那么几个协议。后来我自己尝试着做了一套AVR的开发板,花了一个暑假的时间,调通了所有的配套模块。当时是在大二下学期的时候,当时还准备把开发板发到淘宝去卖,后来发现,淘宝各种类型的开发板太多了,生活费都赚不来,所以,我把我那些开发板都分给了我的学弟们。后来想学习高速PCB设计,那时候有幸认识了黄文聪博士,是带我进入高频PCB设计的老师,不是他,或许我还永远停留在altiumDesigner的层面,在黄老师的指导下,我学习了cadence以及allegro PCB布线,学习了各种布线要求,以及DDR布线技巧,等长约束等各类约束技巧。以至于后来我大学找工作跟面试官谈起allegro 高速布线,面试官都有些诧异。
! X- `' {, O& v# P
后来有幸认识了学校的一个教授,那个时候正是STM32正火热的时候,我第一次接触STM32,感觉很兴奋,当时学的STM32F103能够倍频到72M,当时学习用STM32驱动摄像头等各种模块,因为当时有一个小项目是做视频采集的。所以用51或者430基本上力不从心,速度太慢,刷屏超级慢。所以,我投入了很多精力去学习STM32。从基本的GPIO到各种协议的驱动。都一遍遍的看代码,写代码。那个时候有点傻,第一次学习STM32的时候,竟然是用寄存器编程的。那次写一个ADC的程序,光寄存器就是有好几十个。现在想想,悔不当初,用库开发又快。但是转念想想,学了寄存器也挺实用的。至少现在用库开发的时候,知道寄存器里面是怎么配置的。从大三上学期学习STM32一直到现在,敲过的代码不算少了。但是我总觉得还差点什么。
$ |* @2 M$ j! l% O0 A$ `
是的,还差点什么?我在大三的暑假的时候,在与带我的教授聊天中,我知道差点什么了。那就是算法,单片机的核心不是说你能如何熟练的玩转单片机。如何的熟悉每一个寄存器,每一个寄存器的地址。这些都不是的。我后来总结了一下,无论是51,,40,avr,pic,stm32。我们学习的时候,一开始就是点亮发光二极管。后来就是学习I2C,SPI等各种外设。但是驱动这些外设真的不难,有参考代码,有官方的数据手册,这一切都不是问题。特别是我现在工作之后,特别能体会到这点,单片机种类不限于多,在于算法的精。在公司,用什么型号的单片机,完全老大说了算,今天选飞思卡尔,明天用LPC的,后天又用英飞凌的单片机。等等,大学时间有限,你如何能学完所有单片机。单片机种类和型号那么多,你如何能记住全部的寄存器?
/ x3 Y% A8 w$ r/ n9 {& h
再谈谈找工作吧。
* `- O+ Z% q' R! g
当时我满以为我精通4大单片机,4-6层PCBLayout,找工作应该很顺利吧?可是,却也有不尽如人意的时候。我面试的第一家公司是CVTE,广州视源。那待遇是没的说,我当时带着自己厚厚的一本项目集,第一轮面试的时候,我把项目集交给了面试的HR,面试竟然很顺利的通过了。大家都知道CVTE的要求之高,后来我如约收到了CVTE的专业笔试短信,我后来专心准备了一番,功夫不负有心人,笔试竟然过了,笔试考试的全部是模拟电子方面的内容,后来我在专业面试环节挂了。面试我的应该是一名技术大牛,跟我谈了很多的技术问题,我当时还自我感觉良好。最后一句话让我记忆深刻:我觉得你专业技术运用的不够灵活,就这样,我被淘汰了。
5 G1 M! R4 r: E$ F# {4 r1 _0 N8 J
之后,我又应聘了台达,应聘的方向是做电源。笔试面试都过了,后来连三方协议都签了,最后我还是违约了。我拒绝了台达,因为后来我发现,不是提供的研发岗位,只是跟我说以后能转研发岗位。我觉得不靠谱,就拒绝了。
$ E; n* b& L$ `0 T* [! Q0 d% ^
后来又陆陆续续面试过几家公司,有人家不同意我的,也有我不满意企业的。就这样来来回回折腾了一个月。由于找工作非常疲惫,当时打算,有研发岗就去。就这样,当时广州数控来武汉理工开宣讲会,我去投了简历,简历上明确写了岗位意向是研发岗位。后来如愿与广州数控签约了。 工作中,经常要设计PCB以及各类模块的调试,有的时候一些底层的代码也要自己写。但是单片机型号就不固定了。各种型号的都有。现在想起来,以前在学校的时候,把太多时间浪费在各种类型单片机的学习中去了。但是另一方面,各种类型的单片机的学习,增加了你在找工作中的筹码。
* U7 O) B% v7 a
工作了这么久,想写点心得给未毕业的学弟们,也是我以前认识的一些误区,分享一下。
# e% a/ ~* Y- u) U
( A4 h1 l& S, K! G" y: k
1、MCU学的种类不在于多,在于精,再设计过程中,什么样型号的单片机都可能被用到,在我看来,只要是不涉及加载系统的,单片机都一回事,从基本的51到ARMv7,没有本质区别。无非是资源的多少,处理速度的问题,以及开发调试便利性的问题。
) l4 [2 G6 J4 a/ b/ G
2、要非常熟练基本的通信协议,了解本质和原理,I2C、UART、SPI、CAN、485等等这些最最基本的协议。不要纠结于是调试飞思卡尔某型号的SPI,还是STM32的SPI,亦或是MSP430的SPI等等。
( T4 p6 Y4 Z8 |) N
3、扎实的C语言基础,多把时间花在对C语言深层次的理解上,说实在的,用51单片机点一个LED,和你用ARM点一个LED,没有区别。切莫成为“一灯大师”。掌握单片机语法和算法,是最重要的。我记得以前在大学,单片机种类自学了很多,基本的51单片机、AVR,MSP430,PIC16F,STM32,现在想想,学的有点过了。单片机种类真的不是问题,重要的是算法。
, F) D9 M6 Z; j
4,模拟电子和数字电子,这个是最最基本的必须要掌握的。不要局限于课本,课本的知识只能应付考试,在工程设计中,课本上的内容完全不够用,建议买一些小日本或者美国佬编写的模拟电子的书。
8 P" [' U$ o8 J$ P+ k6 I
5,说到设计PCB的软件,入门用AD,想升级的使用PADS或者Cadence。如果还有用protel的,趁早转AD或者PADS。AD适合2-4层低速电路板设计,PADS在手机主板设计领域比较多(以前华强北的手机主板基本都是PADS画的),至于Cadence,中兴华为联想小米等公司现在主流设计软件,就不多说了。
) } d9 e1 N$ T) }
最后我想说的是,学好技术,不会说工作不好找的。待遇不会差的。在大学里,不要太沉迷于单片机的设计,如果有精力,转嵌入式设计,或者安卓开发。这个以后是很好的发展趋势,需求量也大,我找工作那会,安卓开发人才急缺,如果你觉得搞安卓开发和嵌入式linux做不来,那就老老实实学好单片机和模电数电等硬件软件开发。
) R8 i! Q) @& Z) E' |/ \7 }
我不知道有多少同学能够认真看完,这点文字敲了半个小时,想写点什么,但是有些话还是没有写出来,希望同学们自己体会。做技术贵在坚持,贵在积累。就像当时我面试的时候,有个面试官问我,焊接温度用多少合适,当时我自己用的焊台,所以能够脱口而出300-350。所以,希望大家在平时的设计中,多积累,多学习,多百度。
1 E" c$ |8 M& j6 ~
: Y8 j1 |* B4 W6 I9 J. Y3 f
, g4 ~% [3 K( O
如果单做单片软件,目前相比来说,嵌入式软件相对于单片机软件来说,工作更有优势。但是有一点,技术道路,文凭永远是其次的,我的同事,有做FPGA的,有些嵌入式的,也有做硬件研发的,论学历,从专科到硕士都有,伦待遇,都不相上下,其实外面更看重的是动手能力,楼主现在可以一点点积累,技术积累的越多,以后的路越宽。
, F% c4 g) x( M5 t2 V# d* u/ T$ V
作者:
wzs6668
时间:
2016-7-4 15:02
看贴学心得,回贴是美德
' {6 Z1 e, G! S$ l7 c# B
作者:
liao821
时间:
2016-7-4 15:05
谢谢楼主的经验之道
作者:
Haiting32451
时间:
2016-7-4 15:47
谢谢分享,必须赞一个~
, P& X+ p9 J% ]3 Y# d
作者:
sunygd
时间:
2016-7-5 10:37
支持楼主!加油
, t/ r% {; Q/ P& N3 @% K. y3 D
作者:
Hh0203
时间:
2016-7-5 10:44
谢谢分享,必须赞一个~
# h7 P5 N6 W3 L
欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/)
Powered by Discuz! X3.2