单片机学了以后可以干嘛机

本文字数:2653阅读时长:3分钟

本節教你如何学习单片机学了以后可以干嘛机,如何选择合适的开发板开发工具

现在我们知道单片机学了以后可以干嘛机是要学习的,那么怎么去学习单片机学了以后可以干嘛机在上一课我们说不要使用老一套的方法学习,实际上是指的两个问题

第一:选择什么开发板;

第二:使用什么开发工具;

我们学习单片机学了以后可以干嘛机的目的是干嘛?目的是为后续嵌入式Linux学习服务 在这条学习线路上:

我們选择开发板的原则是:资料丰富

开发板首推三星 (SAMSUNG)系列的资料最开放,

  • 然后是德州仪器 (TI)的TI开始不开放资料,现在逐渐公开了有AM437X、AM335X;

  • 还有其它国产芯片:全志瑞芯微

我们用百度进行搜索,看哪个资料最丰富结果如下:

再在搜索关键词中加入“教程”后,S3C2440的搜索結果比AM335X更多因此S3C2440的资料仍是最多的,TI的营销更好当然,TI作为工控板其用户也是很多的。

所以从教程的丰富程度来看,S3C2440为首选开发板

我们后面会考虑使用TI的芯片重新录制一套视频但需要2-3年的功夫,所以现在还是使用S3C2440吧。

现在普遍有个错误观点:S3C2440过时了它还是ARM9內核,现在Cortex-A7、 Cortex-A8、 Cortex-A9、 Cortex-A15都出来了它的性能太差了。 性能差没错但它是否过时了呢?

那要看学到的知识是否过时

我们首先来看看一个芯片昰怎么组成的,里面有CPU、外设串口、I2C、SPI、LCD等

我们写程序的时候,是去操作这些模块的寄存器访问这些模块,并不是去操作CPU 等你工作嘚时候,你使用不同的芯片那么差别在于这些模块,这些硬件的操作差别不在CPU操作,你写程序的时候根本不涉及CPU的内部机制。

不同芯片的差别:在于外设操作不在于CPU,写程序几乎不涉及CPU只有涉及中断时,才会跟CPU的机制有点关系但是不同CPU的架构差异很小,并且我們后面开发Linux驱动时内核已经帮我们做好了这些处理,根本不需要去关心

从上一课我们知道,驱动=软件框架+硬件操作这个软件框架对於所有的芯片都是一样的,因为都是用Linux内核 而这个硬件操作,你在2440上掌握了串口操作I2C操作、SPI操作,掌握了这些硬件的语言你换一种芯片,是完全类似的

我假设你选择了2440开发板,那么怎么使用2440开发板来学习单片机学了以后可以干嘛机的开发呢又使用什么开发工具呢? 以前在Windows开发的时候我们使用ADS、Keil、MDK等,你直接写个main()函数所有的细节都帮你实现了,谁来调用main()函数有他帮你做了。这main()所生成出来的代碼怎么放入到内存里面,这工具也帮你做了我们基本上只需要写main()函数,只需要写C语言就行了但是这里掩盖了太多的技术细节,你看看我们[官网->学习路线](/a/howtostudy/) 的这篇文章里面有个比较:

① Windows下的单片机学了以后可以干嘛机学习,深度不够

  • Windows下有很好的图形界面单片机学了以后鈳以干嘛机开发软件比如keil、MDK等。

  • 它们封装了很多技术细节比如:

  • 你只会从main函数开始编写代码,却不知道上电后第1条代码是怎么执行的;

  • 你可以编写中断处理函数但是却不知道它是怎么被调用的;

  • 你不知道程序怎么从Flash上被读入内存;

  • 也不知道内存是怎么划分使用的,不知道栈在哪、堆在哪;

  • 当你想裁剪程序降低对Flash、内存的使用时你无从下手;

  • 当你新建一个文件时,它被自动加入到工程里但是其中的機理你完全不懂;

② 基于ARM+Linux裸机学习,可以学得更深并且更贴合后续的Linux学习。

  • 实际上它就是Linux下的单片机学了以后可以干嘛机学习只是一切更加原始:所有的代码需要你自己来编写;哪些文件加入工程,需要你自己来管理

  • 在工作中,我们当然倾向于使用Windows下更便利的工具泹是在学习阶段,我们更想学习到程序的本质

  • 一切从零编写代码、管理代码,可以让我们学习到更多知识:

  • 你需要了解芯片的上电启动過程知道第1条代码如何运行;

  • 你需要掌握怎么把程序从Flash上读入内存;

  • 需要理解内存怎么规划使用,比如栈在哪堆在哪;

  • 需要知道中断發生后,软硬件怎么保护现场、跳到中断入口、调用中断程序、恢复现场;

  • 你会知道main函数不是我们编写的第1个函数;

  • 你会知道,芯片从仩电开始程序是怎么被搬运执行的;

  • 你会知道,函数调用过程中参数是如何传递的;

  • 你会知道,中断发生时每一个寄存器的值都要尛心对待;

  • 你掌握了ARM+Linux的裸机开发,再回去看Windows下的单片机学了以后可以干嘛机开发会惊呼:怎么那么简单!并且你会完全明白这些工具没囿向你展示的技术细节。

如果我们基于ARM+Linux不使用这些Windows工具,你可以学得更深并且单片机学了以后可以干嘛机的大全Bootloader,他就是ARM+Linux开发的他並不使用Windows下的工具。 你基于ARM+Linux学裸板、学单片机学了以后可以干嘛机你可以学得更多,因为我们一切都从零开始的我们既管理这些代码,也可以知道芯片上电的时候做了什么事情知道程序自己怎么把自己读到内存,且知道怎么去规划内存知道怎么代码重定位……

我说嘚这些概念,你可能听都没听过这是因为Windows下这些好用的工具把这些统统都给屏蔽了。 我们使用ARM+Linux进行裸板开发一旦掌握了ARM+Linux开发这套机制,再回过头去看这些Windows工具、看STM32的话你只需要几分钟就可以搞定。 并且你可以无缝进入后续的学习因为你已经熟练掌握了Linux的操作环境,後面的Bootloader是在Linux下开发的后面的Linux驱动也是在Linux下开发的。

所以我们怎么去学习单片机学了以后可以干嘛机的开发呢

你编写代码的时候,可以使用Windows下各种好用的工具文本工具等,但便宜的时候使用arm-Linux-gcc来编译。 


要的可以自学,弄快单片机学叻以后可以干嘛

详细跟着自学效果也很好。

单片机学了以后可以干嘛机学好基本的做测试刚出来跟着工程师做项目,做技术方面是没問题的只要你有好的基础,动手能力要强

你对这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜頭里或许有别人想知道的答案

单片机学了以后可以干嘛机的重偠性在后PC时代逐渐加重了,现在更多的电子设计者和爱好者讨论最多的话题莫过于嵌入式系统的设计,C51、VHDL、RTOS、CPLD、FPGA、DSP、ARM已是当今挂在电子工程师嘴边最多的几个词,由于工艺的进步,家庭智能化已不是空中楼阁,其中功能越来越强大、体积越来越小、成本越来越低的MCU出现正是这场革命的嶊动者那么,做为一个电子设计者、爱好者以及即将成为电子工程师的在校学生,为了迎接这常革命,或者说为了找到一份自己心仪的工作,我們应该具备哪些知识呢?面对这么多必须的技术,作为一个初学者我们又该从何学起学好这些东西的代价如何?等等…….,这些都是前段时間朋友们问我最多的问题了,由于时间关系,我就不一一回信做答了,这里就写写我走过的路和一些个人心得,希望对同仁们有所启发

我是97年开始接触电脑的,那时我对电脑的概念几乎为0,开始是从QB(VB的前身)学起,比较幸运吧,我认为这是最适合初学者的语言了,虽然刚开始我什么都不懂,僦是直到现在我也没认真的写过一段VB的程序,可是它给了我很多概念性的东西,也是我C的入门老师了。我比较笨,所以始终认为学东西一步一步來,从浅到深,没学好不要紧,但是概念的东西要把握住,最好入门时有人教或有现成的东西摹仿,这样最省时间,也比较有成就感而少了一些挫败
峩的专业是测控技术,万金油,什么都学,什么都半桶水的那种。不过出来做了几年开发的工作后,我发现我的专业还是比较好的,比较势利的说就昰更切中于市场,总结现阶段电子设计工程师必需的技术和技能,我认为有以下几点:1是大学里学习的最基础的东西,包括电路、数电、模电,当嘫还有高等数学和英语了,重要性我就不强调了,不过还得说说E语,害死人的东西了,没办法,谁让现在的技术资料全都是E文的,翻译的知识不是过时僦是不知其所云,对一项新技术掌握的程度和速度——这是一项非常重要的能力,否则你只能吃别人的剩饭2是单片机学了以后可以干嘛机和C語言,这是电子工程师的工具,不学不行,不过刚学习时不要贪多,也不要好高务远,老老实实的一步一步来,多动手,要重视概念,东西都是相通的,会了C51轉到AVR C也就不用一个星期了,具体项目设计时根据各种单片机学了以后可以干嘛机的特点进行选择就行了。我是从8031开始学的,纯理论,就是上机实驗也是听出来的,那时候C51可没出来呢,中国大学的弊端啊,经费少,设备陈旧,老师光说不练,打击积极性啊真正的动手是从到公司工作开始的,自己學PROTEL(这也是必需的,就不用我废话了)再用公司的钱画板(日本人的钱,不用白不用),然后照书上抄例子,具体的学习过程请看下文专门介绍。3點必需知识是CPLD/FPGA设计,我个人用途最多的是在结构化设计方面,CPLD非常灵活,有着很多独特的用途(篇幅有限,我就不多介绍,请看网站的相关文章),随著工艺的进步,价格在一步一步的走低,相信不久它会象单片机学了以后可以干嘛机一样遍地开花的4点必备的知识是嵌入式操作系统,如KEIL的TINY OS,Ucus,Ulinux,因為你不可能整天围着低端产品转吧,相信有一天你会用到16位32位的单片机学了以后可以干嘛机,这时候你就不能老用C51的编程思想了,试想C++用在单片機学了以后可以干嘛机里的快感吧:)5是DSP了,我精力有限,选修,呵呵,就不多说了。

总之,小平同志说了,不管黑猫白猫,抓住老鼠的就是好猫在产品设计时也是一样,只要你知识全面,在设计时综合考虑,灵活应用,只要是最符合的就是最好的,不过这需要更多的知识作为后盾的:)前面废话呔多,还是转回单片机学了以后可以干嘛机入门的话题吧。

我是从8031开始的,学习时有一点微机原理的知识,8086那种,学校里就只能教这些落伍的但最基础的东西了,数电和模电那时也是有点概念的,所以我个人认为我单片机学了以后可以干嘛机入门是比较快的刚开始我们学的是51的基本原悝、架构,后来就是指令集,我的老师是汇编专家,所以扣的东西很细,哪个指令执行几个周期啊、直接寻址间接寻址的区别啊,ACALL、LCALL有什么不一样啊等等,这些问题都要求我们深刻到心,所以说初学者有高手(起码要老手)指点,如果一点概念都没有就想靠自学成才是非常难的,不过出来后发現这些东西用的较少,可是对加深理解倒是非常有帮助的。学校里学的东西主要是有一个概念,练习编程也主要是看别人的程序,就算是上机也昰把别人的程序抄进去后编译完成就行了(有时候程序可不都对,能编译出来也不容易啊:)  ),因为那时实验设备较贵,中国领导人急功近利,對一般教育投入的基金不多,所以就算我是科班出身,但是编程器也是工作后才开始用到的,那时只知道有编程器这样的一个把HEX文件写进单片机學了以后可以干嘛机里的东东,仿真器倒是有几个,不过是老师的实验品,限制很多,什么P0、P2口不能做IO口,EA脚仿真时要接地啊,很烦人,所以到现在为止峩对仿真器都有排斥,其实没仿真器也有好处的,我的几个比较大的项目就是在没仿真器的情况下完成的学习知识动手是少不了的,特别是应鼡性的知识,不多动手绝对是行不通的。
     我学习单片机学了以后可以干嘛机真正的动手是从工作后开始,自己学PROTEL,然后用公司的钱画了板(花了400え,深圳价),接着找现成的程序编译后烧进单片机学了以后可以干嘛机里验证,不过这时候已没人教你了,工作后就是这样,虽然公司招人时说有培训,但那只限于特定的知识我第一次实验就连晶振都不起震,对着书画的板的,一切没错啊,弄了两天,问了很多人,跳了几条线,最后把书上画的33PF嘚电容换成22PF的就OK了,就这么简单的问题却搞的我灰头灰脑的,后来照书上的程序又运行了几个,很少有现成就能用的,花的时间不少,倒是有一个和峩一起进公司的同事,他没有基础,所以买了一个学习开发板,最后学起来入门的好象比我快,可能是我比较笨吧:) 可是在买开发学习板时也是絀了问题的。下面就是我针对自己和别人在学习中出现的问题向初学者提几个建议:


      这个是大家关心的问题,现在没钱就做不了事的,大学的學费都会使某些家庭家破人亡呢(说笑了)总体来说学习单片机学了以后可以干嘛机从89C51开始比较好,最基础,学的人多,问的地方也多,盗版的東西也多。学习51需要一个程序编译器,KEIL的C51大名鼎鼎,7.04版盗版的都出来了,对学习来说盗就盗一回吧,这一项花销是0编程器呢?我想你是比较幸运的,現在有ISP下载的单片机学了以后可以干嘛机,可以在线下载程序,这是现在技术的趋势,学习和小批量的产品用这个都可以了,89S51、52、53都支持ISP下载功能,AVR嘚单片机学了以后可以干嘛机大部分也都支持,我最反对个人买编程器的,特别是买一些杂牌的,能省则省,这一项只买一个下载线就行了(自己莋也行,不过不会给你省钱的,事也不少),20钱。在有就是一块DEMO板了,自己做也可以,不过就是自己做最简单的也要100多,我是反对初学者自己做板的,精仂废不起,你是要学单片机学了以后可以干嘛机的不是学PROTEL的,再说初学者很少有一次就搞定板的现在DEMO板很多,这部分是主要花钱的地方,100到700都有,關键是结合自己的情况了。有钱的还可以找辅导,1000元左右吧所以我说学习单片机学了以后可以干嘛机只要花100到2000元就行了,关键是看自己怎么想了。
       现在板子很多,档次和价格也很多选DEMO版主要注意2点,是功能,板子最好采用模块化设计,每个模块都要和单片机学了以后可以干嘛机独立汾开,留出引线,这样一来实验时可以动手插线,加深电路的认识,也给以后开发时留有余地,另外单片机学了以后可以干嘛机的管脚也都要连出来,莋用也和上面的一样,这样的学习板以后可以做开发板用,还有一定要有ISP接口啊。仿真功能可以不要,那也要花钱的,在有了ISP接口下载后其做用真嘚很小了,有时侯仿真功能出了问题更难找(不用仿真器的调试方法请看本站的相关文章)不要只关心价格,既然要买最关心的应该是自己朂需要什么。如果没钱或爱好者可以选功能少的,专业人士我想最好一次性买功能全的,以后做项目时可以当开发板用,不用花第一次开板的钱,峩想带有CPLD和多CPU的最适合了,可编程的器件多以后的用处就多,不要学完后板就没用了对了,板的尺寸一定要关心,不要只看介绍上的照片啊,我就仩了一次当。点关心的是帮助文档,这可是关键的地方,花了钱买了东西,听他吹的功能很多很多,回来发现帮助文档简简单单,可照着操作的东西沒有,你还得从新摸索一遍,这样你的钱不就白花了,更有甚者给你的例子程序都是错的,那你就哭吧,对于初学者,那你就跳楼吧这可是重点的,因為现在做DEMO板的人多,利润低,很多人都是抄的,可能他本人都没上机试过,你别只听他说有论坛支持,那是虚的东西,只有论坛支持那你直接上论坛去算了,干嘛要花这钱?技术支持也重要,但不能寄托在这上,试想那么多人有那么多问题,他该理会哪个好呢所以关键还是要看文档,不要看有多尐资料,要看是不是开发者本人写的,用心不用心,可照着上面的步骤操作吗?

我要回帖

更多关于 单片机学了以后可以干嘛 的文章

 

随机推荐