打印

写给初学者的一些话-杂谈

[复制链接]
18996|110
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
救火车|  楼主 | 2010-1-18 17:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 救火车 于 2010-1-18 17:20 编辑

  本文原创,仅代表我搞单片机的一些想法,有不妥之处,不承担任何责任。
    第一个问题,讲一下初学者到底学习那个系列单片机。
    51、AVR430ARM(包括嵌入操作系统)、FPGA当前单片机系统如此丰富,对于新手到底该如何选择呢?我认为最大的误区,在于新手普遍的追时髦心理,急功近利心理,妄想短时间之内学会ARM,学会嵌入操作系统。网上资料、厂家宣传、培训机构广告也对初学者产生误导,使之误认为ARM很容易学。但是没有51单片机知识作为基础,其他一切都是空中楼阁。必不能达到预期效果。51单片机作为入门级产品,现在更多的体现在教学意义上了。虽然大部分的产品,已经淘汰51,使用高级芯片或者增强型51芯片,但是奉劝初学者,还是要从底层、基础、即51开始单片机的学习。学好、学会、精通51单片机再学习其他单片机也能很快入门。
   
    第二个问题,学习单片机,需要有哪些基础,入门都学哪些东西。
    很多初学者经常问,我能学单片机吗?难吗?我现在什么也不会啊?这里想说几句,要想学习单片机开发,需要有以下几方面基础,但要求并不是很高,可以在以后的学习过程中慢慢学。
1、电路基础:一些数字电路、模拟电路基础。毕竟以后要自己设计电路,这些知识是很有用的。
2、C语言基础:我个人比较喜欢C语言开发,相比汇编最大的优点就是移植性要好。学习51单片机,C语言编程当然需要有些基础。
3、一些单片机的基础知识:虽然是初学者,但是一些基础理论知识还是应该知道的。
4、一些焊接等动手能力,这个要求就不是那么严格了。呵呵。不过能搭一手漂亮的电路还是挺好的。
怎么样算入门?
1、学会使用编译器软件:就是在编译器下建立一个项目,编写一点点代码,生成一个程序文件。当你熟悉这个流程以后,就变得非常容易了。不过第一次还是很难实现的,最好有一个比较详细点的教程。
2、学会使用下载工具和软件:把程序烧录到单片机里,运行起来,需要动手去操作。
3、学会使用调试工具:如有条件,可以学习硬件仿真调试。
4、以上可以在学习板上实现,不过以后你要学会自己设计 并制作电路。所以还要学会PRTEL软件使用。

    第三个问题,学过一段51单片机了,入门也会了。以后怎么办啊?
    很多初学者,学了一款51学习板,基础东西也都会了,下一步怎么发展却不知道了。下面的一些理论是我的一点不成熟想法,有这样困惑的朋友可以参考参考。
1、单片机的平面发展理论:不断学习同一个层次、不同结构、不同品牌的单片机。
学会了一个系列、一个公司单片机,比如51AT89S51),了解的它的全部内部资源。下一步学习,仍然可以围绕51进行。可以扩展到其它公司的51单片机,比如stcpic因为他们有很多增强型51单片机。功能比普通AT89S51强很多。如果可以,接触更多的同系列的51单片机。最终能够在做产品时,选择最正确的单片机,对每一种51单片机的优劣有清晰的判断。
2、单片机的纵向发展理论:不断学习高级别的单片机。
在学会一个系列的单片机,继续学习高级的单片机,比如从51AVR、到ARM。可以学习到更多的单片机,接触到更多的知识。
3、单片机的外围发展理论:不断学习单片机的外围功能模块。
学会一个系列的单片机以后,转而研究外围电路。不论是输入、输出、通讯、逻辑和计算。单片机外围电路千变万化,其功能模块也千奇百怪。这样的模块学的越多,对你做产品的好处越大。毕竟所有功能模块都是用在单片机上的,不论是51还是ARM都需要有外围电路才能实现功能。
4、总结:无论以上那种发展模式,其最终目的都是单片机开发,都是研发出产品。所以最终的产品才是目标。

    第四个问题,学习要精 还是要多的问题。
    这个问题也比较麻烦,很多认为搞单片机要学那么多东西,还要软硬件结合。我不可能每一种都做的很好。到底是要什么都会,还是要精通一种呢?
    个人认为,如果是学生,还没有工作,那么还是什么都会一点才好。毕竟谁也不知以后的工作内容是什么,可以参加工作以后再选择优势发展方向。
    另外通常精通一种工作的都是大公司,分工比较明确,每个人负责自己的一部分,而在小公司,可能连技术文件都需要你来编写,当然是会的越多越好了。

    第五个问题,随便聊一聊开发的流程,主要研发设计人员在这些流程中的工作。
1、产品需求阶段:可能是根据市场需要或者公司安排,确定要开发一种产品。开发人员需要和产品需求方沟通,明确客户的需求,对即将开发的产品有一个总体上的印象。
2、产品立项:这时产品已经确定要开发,需要立项,开发人员可能需要填写立项相关文件。有可能设计项目奖金哦。。。
3、产品总体设计:一般由高级系统架构师(我也不知道这个是什么样的牛人呢,还没参加过有这种牛人的项目)搞定整个产品的系统设计。形成系统结构图,有可能分解成软硬件部分。(此处的软件指上位机应用软件,不是单片机内部程序)。
4、技术难点攻关:这里看需要开发人员出力了,就是把整个系统比较难或者不能确定的部分,先进行研究实验,以确认不会因为这些部分导致项目无法实现。
5、电路设计制作:涉及到单片机开发人员了,涉及产品电路,并形成PCB电路板。
6、单片机程序编写:终于要编程序了。到单片机工程师大显身手的时候了。
7、硬件调试:电路板焊接完成,程序编写完成。进行硬件调试,以发现程序的缺陷。 还有可能因增加或删除功能进行修改。
8、与上位机联机调试:基本是整个系统都完成了,所有功能都要调试,以保证产品稳 定。如果没有上位机软件,这一步就省略了。
9、测试:产品都搞完了,当然需要测试了。测试过程和方法很复杂的,这里就不说了。 如果测试出现问题,是需要返回到开发人员那里进行修改的。
10、制作样机,完成项目开发部分:到这里基本上已经告一段落了,不过开发人员可能 还需要提供说明书等很多文件。
11、小批量生产,投放市场:用市场检验产品。如有不合格或者需要升级,开发人员就 要进行修改了。
12、产品实现量产:量产销售到市场,如有问题,一般归售后服务人员处理,处理不了 也会让开发人员帮忙,毕竟开发人员对产品最为熟悉嘛。
  13、总结,开发人员的工作可是贯穿整个产品开发过程的。。。初学者可以对照一下,看看你都需要学会哪些东西。


本文有感而发,仓促写成,不妥之处还请大家海涵,拍砖请轻点。
评分
参与人数 2威望 +11 收起 理由
西游动物 + 1
xwj + 10 对初学者最有用的好文章,加十分!!! ...

相关帖子

沙发
Mindor| | 2010-1-18 20:05 | 只看该作者
嗯,不错。
初学者就需要这样的引导和指点。
我想问下救火车兄弟,
1、关于第三个问题的发展方向,你觉得哪一种比较有道理或者妥当呢?
2、51之后如果想学ARM的话,是学ARM7还是ARM9或者其他的呢?
3、电子工程专业的学生适合往嵌入式应用层发展吗?有人说学电子的软件编程方面比不过计算机专业的,因为他们这方面的课程体系比较完善~
谢谢~

使用特权

评论回复
板凳
古道热肠| | 2010-1-18 20:29 | 只看该作者
呵呵,感觉C语言和数据结构课程较实用。初学者可在上面下些功夫。

使用特权

评论回复
地板
因特网用户| | 2010-1-18 21:10 | 只看该作者
用什么单片机不是问题  用单片机来做什么是首要问题

使用特权

评论回复
5
laslison| | 2010-1-18 21:18 | 只看该作者
感觉我的基础基本达到了,嘿嘿

使用特权

评论回复
6
原野之狼| | 2010-1-18 22:15 | 只看该作者
还有一个很重要的的东西就是 扎实的数学物理基础

使用特权

评论回复
7
kubuco| | 2010-1-18 22:18 | 只看该作者
顶个

使用特权

评论回复
8
IC_99| | 2010-1-18 22:34 | 只看该作者
很好的一篇**

使用特权

评论回复
9
辉扬的心| | 2010-1-19 08:44 | 只看该作者
救火车的这篇文字真好
朴实而实用,句句在理
新手们要好好领悟

使用特权

评论回复
10
救火车|  楼主 | 2010-1-19 08:47 | 只看该作者
回2楼Mindor:
1、列出了一些可以选择的发展方向,但是选择哪一个,还是根据个人的情况,自己去选。
2、本人对arm接触不深,这点可以咨询arm方面专家
3、嵌入式方向是比较不错的,电子工程专业应该也算比较适合这个方向。至于课程体系方面不需要担心,现在的各种教程以及教学方法也正在不断完善中。

使用特权

评论回复
11
computer00| | 2010-1-19 09:14 | 只看该作者
吼吼,单片机只是产品设计中的沧海一栗...

使用特权

评论回复
12
my8804| | 2010-1-19 09:35 | 只看该作者
刚上来就看到LZ这么一篇好作。赞一个。
我也来回答下2楼Mindor的问题: (都是个人想法)
2:ARM7,9差别不大,基本可以忽略差别(不会像从51跨越到arm那么大的跨度,ARM9可看作是ARM7的升级版,改进版),不过大多玩ARM9++的都是为了玩OS的,比如wince,linux 。当然ARM7是比ARM9来的简单。
3:你所说的计算机专业的优势,是针对应用层、OS层方面的吧,比如Linux,wince,这点他们确实有点优势的。
但是电子专业的优势也是蛮大的啊,比如电路图,PCB,硬件调试,底层调测.......
很多计算机专业的连元器件都认不出来,电路图看不懂..芯片也看不懂....  这就是我们的优势:lol


个人愚见 ......欢迎拍砖。

使用特权

评论回复
13
Mindor| | 2010-1-19 10:26 | 只看该作者
10# 救火车
多谢解答~

使用特权

评论回复
14
Mindor| | 2010-1-19 10:30 | 只看该作者
12# my8804
有道理~
不过我们电子专业和计算机专业的玩起嵌入式的OS的话,感觉玩不过他们耶?你觉得呢?

使用特权

评论回复
15
zdmhuhu| | 2010-1-19 10:55 | 只看该作者
非常感谢lz,我正是你所说的那个阶段,51的基础有一点担不是很精,就急于求成开始着手ARM,结果一个多月的时间没学到什么!!看来还要先精通51!!

使用特权

评论回复
16
machunshui| | 2010-1-19 11:23 | 只看该作者
15# zdmhuhu

51和arm没啥关系。

不会51可能学ARM没干扰,更容易一点,

使用特权

评论回复
17
yewuyi| | 2010-1-19 11:51 | 只看该作者
会写两行MCU代码只能算是白痴强一点点。

使用特权

评论回复
18
my8804| | 2010-1-19 12:03 | 只看该作者
本帖最后由 my8804 于 2010-1-19 12:12 编辑

14# Mindor

这也不是绝对的 ,跟个人有关系的......
.....玩嵌入式 != 玩OS,+OS的还是比较少的,不是必须的.....
再说玩不过也正常啊,每个人都有自己的“地盘”......这也是技术分工.....有的人做底层,有的人做OS层,有的人....
难不成你想一条龙服务?除非.......

使用特权

评论回复
19
Mindor| | 2010-1-19 12:36 | 只看该作者
18# my8804
哈哈~确实是这样的~就是有那玩OS的心,没玩OS的胆啊~哈哈

使用特权

评论回复
20
HWM| | 2010-1-19 12:47 | 只看该作者
18# my8804  
哈哈~确实是这样的~就是有那玩OS的心,没玩OS的胆啊~哈哈
Mindor 发表于 2010-1-19 12:36

OS?你不是正在“玩”吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:秦皇岛蓝马电子科技有限公司 救火车单片机工作室

113

主题

1249

帖子

2

粉丝