打印

乱写了篇**,一直不敢发21家,怕被拍的没法过年了

[复制链接]
7216|54
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sparkcn|  楼主 | 2012-1-6 17:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sparkcn 于 2012-1-6 18:47 编辑

放的地方不对的话,请BZ帮移走,先谢了

首先,先来聊聊嵌入式这个概念。什么是嵌入式,有人说ARM才是嵌入式,

Linux才是嵌入式,而且现在大大小小的培训班讲的都是基本上都是Linux。
现在Android,苹果比较流行,有些培训班也开讲这些系统上面的应用程序开发了,说这才是嵌入式。说下我个人的看法吧,我觉的嵌入式,就是相对于PC来说的,所有的小型控制设备都能称得上是嵌入式设备。Linux和Android上的应用程序开发已经算得上是PC级别的开发,个人感觉离嵌入式已经很远了。

选择什么单片机开始学习

有人说ARM才是嵌入式,51是单片机,不算嵌入式。这些话估计是从卖ARM开发板的商家那里传出来的。51、ARM都是嵌入式,51是8位的单片机,ARM是32位的单片机(当然,这里针对ARM7或Cortex-M3说的,像ARM9,ARM11就不应该称作单片机)。51结构比较简单,ARM复杂一些,但原理是都是相通的。学好51单片机,再去学习ARM,会非常简单的。

看完上面的话,你会不会说:“JS,快别说了,因为你是做51学习板的,你才这么说,你要是做ARM开发板,你就不这么说了”。非也!非也!你说的因果反了,我先这么认为的,所以先做的是51学习板。
我们举两个例子来简单比较一下:
先说最简单的GPIO,51单片里有GPIO,可以用来基本的输入、输出。ARM上也是GPIO做最基本的输入输出。51上的GPIO怎么用呢?我们就是简单的向SFR里写0或写1就可以了。ARM呢,也是一样的,向相应的SFR里写0或写1就行了。只是在用GPIO之前,需要对这个GPIO进行配置一下,什么是配置,说白了,就是多写几个SFR。
再来看一下UART,这个是51的标配,ARM上也都有UART。操作式有什么不同?基本的配置、读写都一样,轮询操作也行,中断操作也行。就是ARM上的要复杂一些,配置的参数也多一些。但本质都是一样的。
再有的差别就是,ARM上的外设要多一些,51上的少一些。但入门之后,外设的学习就和UART的学习一样,是个试验和积累的过程。

8051单片机经过多年的发展,资料非常齐全、内部结构简单,价格也相对便宜。在你的身边也很容易找到熟悉51单片机的人。所以非常适合初学者的学习。我们建议刚开始学单片机的童鞋从51单片机学起。如果把51单片机学好了,你的C语言同时也学好了(注意,这点很重要),硬件基础也学好了,开发的流程和方**了、解决问题的方法也积累了一些。这个时候再来学习更高级的ARM,就简单的多了。

怎样学习

学习单片机是非常重视动手实践的,不能总是看书、看视频 ,在那里死记理论。但也不能完全不看书(不推荐完全看视频,视频虽然信息量比较大,看起来也比较容易接受,但无用的信息也比较多,同时也会减少我们思考的时间,而且反复的看视频本身也浪费时间)。我们建议应该遵循的方法是,在实践中入门,再让理论指导更深层次的实践,在实践中再成长,再学习更高级的理论,如此形成一个良性的循环。
先了解简单的理论,能开始动手就可以了。在实践的过程中遇到问题再看书查找(注意,不是找视频,视频查找起来太费劲了)把更多的时间放到实践中去,这才是关键的。

关于实践

关于实践,我斗胆说两点建议和一点不建议。
先说不建议,我们不建议直接使用仿真软件来学习。这不并不是说我们不支持使用Proteus等仿真软件,这类软件在一定程度上可以帮助我们学习,可以做最基本的程序验证,但如果过度依赖它,我们失去的将是对硬件的调试机会。只有把硬件摆在你面前,亲自操作它,才会有更深刻的体验。
两个建议
1   搞一块开发板,不用功能特别的复杂,只要基本的东西:流水灯、数据码管、独立键盘、矩阵键盘、A/D、D/A、液晶、I2C总线,SPI总线就差不多了。如果能把上面这些功能都搞熟,那么就已经迈进单片机的大门了,可以向更高的阵地进军了。
2   找一个单片机不错的朋友(我可以当这个角色的哟,欢迎和我联系),有遇到困难的地方,他可以帮你即时解决,帮你少走弯路。助你快速入门。
再一个,使用语言的问题,一定一定一定选择用C语言开始学习。你可能需要一本C语言教程,但是一定一定一定不要一口气把它读下来,就是读5个一口气,也是没用的。一本教程在手,随时参考。我们推荐谭浩强老师的《C程序设计》,第二版、第三版都行。强烈建议开发者案头常备此书。
总结上面,只要你有信心,做事坚持到底。学会单片机是件挺容易的事儿。这里给个大概的步骤:
1 看书先了解一下单片机,大概了解就可以了。
2 跟着教程学习写程序。经历读程序 > 理解程序 > 动手改程序 > 自己写程序的过程
到这里你已经入门了。。再往后就是进阶的内容了。
1 把程序打造成独立的模块任你调用
2 跟着老师做项目,熟悉真正的项目开发过程。(没有项目也不用怕,条件成熟的时候我们会组织大家一起开发一些小项目)


入门之后怎么提高的问题?说是跟老师做项目,老师没有项目怎么办?说是去实验室,没有实验室怎么办?
还是说下我个人的体会吧。

先说实验室的问题,我上学的时候,学的是“计算机”专业,在我们学校里是小专业,老师都没有实验室,更别说学生了。。后来我们几个同学学嵌入式,在宿舍里学习氛围总没有那么,想着能不能去实验室。可是哪有啊。后来,我看了《肖申克的救赎》这部电影,我和我同学就开始给院长发Email,前面几封院长也给我们回了,说院里困难啊什么的之类的。。然后我们接着写Email,后来就被叫到院长办公室“喝茶”,,不过真的是喝茶。。院长很客气。。也聊了一通。。不过依然没有解决实质问题。。我们怎么办的呢,接着发呗,也直接去找院长。。最后。。最后。。呵呵。。我们在系里的楼里搞到一间屋子,虽说里面就几张桌子和几台破奔2电脑吧。。不过已经挺好了不是。。。

再说下项目的事儿,哎,我们老师也没有项目啊。。怎么办?怎么办?自己找呗,怎么办。。
我们当时的选择是,做时钟。现在刚入门的童鞋听到“时钟”这个词可能很不屑,这玩意有什么搞头?不要眼高手低,做你就知道了。把你能想到的功能都做出来,不要想着做也没有用。是的,可能没有实际用途,可是对你来说是有用。
能做的事情其实很多,只要你去想。等你把手里有的单片机的Flash全部写满了,可能你就到达另一个层次了
网络那么发达,你想做个小项目,还愁找不到人带,找不到项目?


乱侃了一些内容,请大家拍砖。。。
评分
参与人数 1威望 +1 收起 理由
wangjun403 + 1

相关帖子

沙发
Cortex-M0| | 2012-1-6 18:33 | 只看该作者
很乱,支持一下,谢谢分享。。。

使用特权

评论回复
板凳
icecut| | 2012-1-6 19:14 | 只看该作者
haha做板子的有这么个理解 已经很不错了.
年后我断你财路,把51板子给做了...哈哈

使用特权

评论回复
地板
linfuchi| | 2012-1-6 22:32 | 只看该作者
:victory:支持下

使用特权

评论回复
5
weimingjun666| | 2012-1-6 23:13 | 只看该作者
说的不错,接受中

使用特权

评论回复
6
panchaoran| | 2012-1-7 09:30 | 只看该作者
哈哈 3L果断不厚道了 **还是不错的

使用特权

评论回复
7
afei2222| | 2012-1-7 09:34 | 只看该作者
arm+linux

使用特权

评论回复
8
sparkcn|  楼主 | 2012-1-7 09:56 | 只看该作者
haha做板子的有这么个理解 已经很不错了.
年后我断你财路,把51板子给做了...哈哈
icecut 发表于 2012-1-6 19:14


一做板子的去面试,面试官问,你以前做过板子。。他急了,张口呼到,“做板子的也有好程序员啊”。。

使用特权

评论回复
9
zxcscm| | 2012-1-7 10:16 | 只看该作者
对LZ的嵌入式概念比较赞同

使用特权

评论回复
10
sparkcn|  楼主 | 2012-1-7 10:31 | 只看该作者
本帖最后由 sparkcn 于 2012-1-7 10:32 编辑

"毕竟51和ARM是不同的体系结构"。。。。个人觉的,体系结构这样的概念在入门的时时候不考虑在内。不说ARM9、ARM11,也不考虑上操作系统 的因素。就说Cortex-M3和51来说吧。如果用的是C语言,我觉的最基本的东西,差别是不大的

32位肯定是趋势,但对入门来说,我觉的51还是最合适的

使用特权

评论回复
11
sparkcn|  楼主 | 2012-1-7 11:11 | 只看该作者
“最底层的东西是不一样的啊”,具体说一个呗。。

使用特权

评论回复
12
xwj| | 2012-1-7 11:22 | 只看该作者
确实很乱。
而且,只要有钱,你管他是嵌入式还是非嵌入式?

使用特权

评论回复
13
sparkcn|  楼主 | 2012-1-7 11:37 | 只看该作者
确实很乱。
而且,只要有钱,你管他是嵌入式还是非嵌入式?
xwj 发表于 2012-1-7 11:22


呃。。DX。。和有钱木钱有啥关系 啊。。

使用特权

评论回复
14
woshidasha| | 2012-1-7 11:43 | 只看该作者
其实本人觉得把8031做好了非常NX,个人观点。

最主要一点,8031需要很多外设,包括外部ROM和外部RAM,这些的配置弄明白了之后,ARM就是菜

使用特权

评论回复
15
码头红色| | 2012-1-7 11:51 | 只看该作者
支持一下

使用特权

评论回复
16
wtx1122| | 2012-1-7 12:20 | 只看该作者
也太乱了

使用特权

评论回复
17
hqgboy| | 2012-1-7 13:06 | 只看该作者
呵呵。

使用特权

评论回复
18
DownCloud| | 2012-1-7 13:14 | 只看该作者
16# woshidasha 我全弄明白了,但arm还不是个菜啊。arm我不知道他的寄存器怎么配置。但是用尽它所有功能也只是调用库。一两天就解决了。请问这算掌握arm吗?

使用特权

评论回复
19
谈的元| | 2012-1-7 14:19 | 只看该作者
一切都是菜

使用特权

评论回复
20
Wayner| | 2012-1-7 14:24 | 只看该作者
想学要抓紧时间学,管他叫什么

使用特权

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

本版积分规则

0

主题

19

帖子

0

粉丝