建院电气系吧 关注:36贴子:689
  • 7回复贴,共1

我的电子不归路(转)

只看楼主收藏回复

一直很想写点什么,又不知道从何写起。大一的时候对大学还是充满美好愿景的。一门心事花在学习上。大学四年没有挂过课,虽然,年年拿一等奖学金。但总觉得我的大学是不完整的,充满了遗憾。即使,现在找了一份满意的工作。但是这一切不是我想要的。很遗憾大学里没有认真地谈一场恋爱,没有出去旅游,没有和死党吃遍合肥的小吃...。有很多东西比学习本身重要,亲情,友情,爱情,永远要尊寻自己的心。


1楼2013-02-17 12:34回复
    我依然记得,大一上学期在网吧学会了C语言,虽然,我不知道C语言有什么用。大一下学期,因为有C语言的基础,一个星期的时间我就学会了51单片机,(是学会不是精通)。但是,没有学汇编,后来,好像自动就会了,反正没有专门学汇编。反正汇编主要是帮助你理解单片机体系结构的。可能我就是理解了单片机体系结构,才自动学会了汇编吧。所以,学汇编是帮助你理解单片机硬件体系结构的,以后工作做项目还是用C语言开发的.


    2楼2013-02-17 12:35
    回复
      我没有买过单片机开发板,说实话,我没钱,我计算机二级都没报。我有很多地方需要花钱。我只是花了40块钱在网上买了一个简易的编程器。只能烧写AT89S51/52,所以当时学的是AT89S52单片机,而不是STC单片机。我硬件平台是用面包板搭建的,很乱,好多飞线。
      我依然记得我第一次在面包板上让流水灯跑起来的激动之情,兴奋的一夜都没睡着。其实,看单片机的芯片手册学习更快,虽然开始不习惯,尤其是英文。现在市面上的单片机教材太水了,互相抄,还有的就是对手册的简单copy.
      关于单片机的开发板,有钱的化还是买一个板,现在都不贵,不像四年前。单片机初期学习主要以单片机内部功能模块为主,学会这些模块的原理及其编程。还有就是熟练地操作外围电路。等这些熟悉了,再自己动手焊接最小系统,以后逐渐扩展外围电路,别一上来就焊电路。因为,你单片机不懂,你要知道不同单片机的外围电路不是完全一样的。尤其是IO驱动能力。抗干扰等。你在实验室没问题,拿到别的地方,单片机系统就不一定正常工作了。要沉下心,踏踏实实,耐得住寂寞。
      话说,大一下,剩余的时间,自学了数电,电路分析,一小部分模电。然后,就继续提高C语言的编程能力,主要加强指针的学习,还有就是结构体,链表。大一就这样迷迷糊糊的溜走了。
      大二,其实,对我的影响蛮大的,对电子技术越来越痴迷,经常调程序不吃饭,从此走上了不归路。大二没有学什么,主要学了PIC16F877单片机,MSP430。稍微看了飞思卡尔的8位单片机。然后,就是不停地看数电,模电,高频电路,C语言。有些东西就需要不停地反复看。还组建了电子设计小组,虽然到大四上学期只剩我一个人了。其他人陆陆续续地退出了。毕竟,好多时候调代码是很枯燥无聊的。
      大二,有两件事对我影响很大的。第一,在网上找到了破解版的proteus。第二,接触了ARM。当时手一抖,在淘宝上买了一个ARM9开发板。600多毛爷爷,一个半月的饭钱。以至于,后来一学期吃了不少馒头。现在看到馒头就不爽,但是心理还是蛮开心的,幸好学校奖学金下来了,要不然,真不知道怎么破。
      大二暑假,继续强化PIC单片机,这种单片机应用很广。把51的程序都移植到了PIC上。还有,大家要知道,单片机的本身不是重点,它的外围电路是重点。以及它的应用环境。比如,单片机在汽车电子的应用,智能仪表,智能家电等行业的应用。


      3楼2013-02-17 12:37
      回复
        也就是说,单片机你学的再好,如果,你对汽车,家电,仪表,都不懂。那你怎么应用单片机?在智能控制中,传感器很重要。我们学习,要掌握专业技术,还要了解电子行业知识。
        还有就是常见的通信协议。比如spi,iic,uart,can(汽车电子应用广泛)。在编程方面,要把常用的模块整理成库函数。以后直接拿来用。比如键盘,lcd1602,18B20,DS1302等等。C语言的模块化编程很适合干这个。
        大三,是最疯狂的时候,那个时候正式学习S3C2440A(ARM9),然后,就是嵌入式linux。不管是难度还是深度。都不是单片机能比的。现在看单片机,觉得单片机太简单了,都没什么,小儿科。我现在就是找的嵌入式linux软件工程师。公司主要做的是电信设备。关于嵌入式难的是入门,难的是深入下去。如果不跑操作系统,它就是一超级单片机,资源多点而已。IO口就有100多。串口3个,定时器,5个,还有各种控制器。
        如果你要学习嵌入式就要抱着必死的心,耐得住寂寞。无比坚强的意志,毕竟学习技术不是谈恋爱。嵌入式跑操作系统那就更复杂了。要学好多,首先,C语言功底要好,英语不能太差。计算机体系结构很重要,操作系统重中之中。进程,线程,网络编程,文件系统,内存管理,linux系统编程,linux下各种工具的掌握。shell编程,makefile编写,等等。这只是linux,如果跑安卓,还要学java,跑wince要学c++。处理器除了ARM还有其它的处理器。我现在主要走的是ARM+linux+QT
        接触嵌入式2年了,我基本上掌握了嵌入式,现在需要的只是不断地在项目中深化理论知识,总结经验。现在主要做linux应用程序开发,但是我一直在研究linux驱动开发。你不学习就落后了。学习的过程中,很多困难只要坚持都能解决。前段时间移植uboot花了一个星期,读了十几万行代码,终于把它的启动流程,工作原理搞通了。不得不说uboot移植很难的。它就是pc中的BIOS,初始化硬件,搬移代码,加载操作系统内核的。 在此,简单谈谈单片机的架构,以51为例。我们在单片机编程中,不能仅仅满足于单片机功能的实现。这不是PC编程。我们要注意单片机的实时性。还有功耗,以及提高CPU的利用率。尽量少用延迟函数,最好不用。当然,有些场合还是要用的。一般情况下,超过1MS的延迟就用中断。充分利用好定时器。我一般以100US为基准。
        每隔100us设置一个标志位1,200us设置标志位2,以此类推。把最紧急的事放在标志位1,以此类推。CPU实在没事干,就让它睡觉去,千万别让它傻愣着。
        还有设计子函数的时候,要让子函数完成单一的任务。比如,计算器中。加减乘除用四个函数实现而不是一个函数。当然,有些函数太简单,可以用宏来实现。
        还有软件与硬件的关系。一般来说,好的硬件设计可以减轻软件的工作量。相反,有时候,为了节约成本,有些器件不能用,这就导致了软件工作量的增加。比如,有些单片机没有IIC接口,没办法,只好用软件模拟了。睡觉了。


        4楼2013-02-17 12:41
        回复
          围观


          来自手机贴吧5楼2013-02-17 12:41
          回复
            对专业知识有用的,都可以来这儿讨论哦!


            来自手机贴吧6楼2013-02-17 18:10
            回复
              天啊,读不懂


              来自iPhone客户端7楼2013-09-04 12:33
              回复
                天呐


                来自Android客户端9楼2013-12-04 16:53
                回复