欢迎探讨:应该怎样选择要学习的单片机?

zhaojun_xf   2012-5-15 07:47 楼主

ARM Cortex-M0从这里开始

 

    对于初学者来说,单片机的选型恐怕是个头疼的问题。从8位到32位,单片机的种类繁多。比较常见的内核有8051、AVR、PIC、ARM等等,但是选择哪一种比较容易入门,而且在今后的工作中能够用的上呢?

 

    针对这个问题,恐怕很难回答。对于初学者当然更是不了解。为此,他们的一般选择是两种:一是跟着教材选择(就是学校里教材讲解的单片机,一般都是8051);二是跟风(跟着网络流行或是身边人的使用)。

 

    在单片机论坛我们不乏看点最火的还是8051,也有不少人还在使用AVR、PIC等。真正敢于直接学习ARM的人少之又少,难道是ARM比其他的单片机难?使用的开发平台要高?要求的工具要贵?

 

    大家一起来谈谈,对于初学者究竟应该怎么去选择单片机进行学习??????

 

 

ARM Cortex-M0从这里开始

我的博客

回复评论 (24)

下面本人就简单分析一下单片机选择的个人看法?????????

 

       其实作为单片机,它们都有一系列的共同点,本人认为,只要会使用一种单片机,那么转到其他类型的单片机不就一个星期甚至几天的问题而已。因为单片机都有着它们的共性,不同的就以下几方面:

 

1. 寄存器不同;

2. 管脚分配不同;

3. 时钟频率不同;

4. 内外设不同;

5. 内核架构不同;

6. 使用的编译平台不同;

7. 使用的开发工具不同等。

       由此我们不难看出,如果我们使用C语言编程的话,我们的移植也是非常简单的。因为C语言中涉及到这几个方面的东西并不多,特别是如果能够编写出结构化的代码,分层完善的话,基本上不用改变应用层,只需要修改底层驱动就可以移植。

 

       那么我们再来比较一下现在的这些单片机各自优缺点:

 

8051:资料特别多,资源少,学习简单,容易入门;没有硬件仿真功能,编程工具比较麻烦,当然有串口下载的会方面一下。

 

AVR:资源还是比较多,相对来说功能齐全,有JTAG/ISP功能;开发工具比较贵,自己DIY的话比较容易,供货不是很好,不小心动了熔丝位会导致芯片锁死。

 

PIC: 价格便宜,指令少,资料也比较多;仿真和下载工具比较昂贵。

 

ARM:资源丰富,资料逐渐增多,性价比高,有JTAG/SWD等功能,芯片系列多,各种资源都有,从一个厂家移植的另外一个厂家的芯片比较容易。

     

 

       价格上来说,ARM有3,4元的;工具,可以使用串口,JLINK/ULINK等;平台,可以使用MDK,IAR等。本人觉得,不管是从什么角度来说,ARM都是学习的最佳选择。至于好多初学者总是不敢去尝试,主要恐怕有以下几个原因:

 

1. 思维固化,不敢尝试新的东西;

2. 教育影响,不敢学习书本以外的东西;

3. 认识不够,总觉的ARM是个高端的东西等等。

 

       其实我们不难看出,越是跟在别人后面的人,一般都没有大的成就。敢于尝试的人往往活得的成功比别人多,而且可以看出越早学习ARM的人,现在混得越是不错。而且随着电子技术的发展,ARM已经成为了一种单片机的趋势,取代8位,16位的时间不会太长。我们在招聘人员的使用,一个基本的前提就是必须会使用一种ARM单片机。那么能还去学习8位,16位的意义恐怕就不大了。

[ 本帖最后由 zhaojun_xf 于 2012-5-15 08:15 编辑 ]
我的博客
点赞  2012-5-15 08:04
我觉得最重要的无非是三个
1 工具链
2 片上内设
3 电性能和稳定性

最后一个,其实是最开始考虑的,但鉴于其实现在的东东其实质量一般都没啥问题,除了某些莫名其妙总是来事的。
所以基本不怎么担心。
接下来就是 片上外设了,这年头的单片机虽然还没全面进入soc时代,但也算是升级版MCU了,片上外设多得跟不要钱似的,你说我有现成的放着不用还去找外围不是没事撑着啊?
当然,各种单片机定位不同,所以内设的类型和数目也不太一样。这个,就得根据你的定位来选择了——你打算让这款片子以后长期作为你什么方面的使用,就选它。

3 工具链,这是很重要的一个选择,到底支持不支持C编译器,甚至C++编译器,有人说,单片机这玩意不太需要C++,话说回来果真如此么?鉴于我还不懂C++,表示这个问题放着先。
不过C其实基本所有新的单片机都会支持的。
然后是 什么 IDE,开发环境,这是个非常重要的问题,我个人就最喜欢 有 IAR这一类,比较著名的,做了很多种片子的 第三方专业供应商提供的IDE,没错,有些片子由于其某些方面的综合需要,它们都是另找人单独做的,但这样的东西,很可能你这辈子只会用一次,最重要的是出了问题,你除了找供应商以外别无他法,但供应商只是软件提供者,他没有用过,他甚至不知道你再问的到底是什么,或者他只是一厢情愿认为你不过是没有好好看帮助手册......这事我就碰过。

至于ARM这个东东,其实表示看到第二个帖子的最后一段话,不知为什么,大概是最近换了新手机。
我想问问楼主,你该知道这世界上第一台手机是 摩托罗拉发明的,不过,不知道现在,摩托罗拉怎么了呢?几年前,苹果横空出世以前,到底是谁占据了大主流?
然后,苹果横空出世以后,直到乔布斯挂了以后,你说,那曾经的nokia现在又混得怎样呢?
现在苹果已经热得不行了,我想,如果没有它,触屏也不会被普及的这么快,不过,楼主,有没兴趣猜猜,一两年后,苹果会如何?
强者为尊,弱者,死无葬身之地
点赞  2012-5-15 09:32
m0价格便宜,新唐mini51才0.5个美金左右。使用方便,编程基本不用管寄存器。完整的库,入门不错的选择。
点赞  2012-5-15 09:38
呵呵,LZ讲的不错,其实不是每个人都可以一下就上的了ARM的,我就说学电子的吧,好多人虽然可以编写一些裸机上的驱动,但上了操作系统就不行了,因为他们没开过操作系统的课,你可能会说自学,你觉的每个人能适合自学嘛,毕竟ARM不是一个简单的单片机,但如果LZ要把它当单片机用,也没什么说,再说ARM的功能很强大(我用的是ARM9)如果仅仅去裸奔真的浪费了,其实感觉还是一步一步来学,先学51单片机,理解一般的驱动开发,在学msp430了解下配置寄存器方面的。最后上ARM。如果上了ARM感觉就不要裸奔了,最好上下操作系统。个人愚见,见笑了!
点赞  2012-5-15 09:41

回复 5楼 wateras1 的帖子

很多人的认识和你一样,一说ARM就想到ARM9,ARM11等高端ARM,并且会联想到操作系统,那是对ARM的一个错误认识,前期ARM是一个高端的代名词,但是自从Cortex的出现,ARM不在是高高在上。已经从高端向高,中,低全面进发了。特别是M0,已经完全对战8位,16位了。。。。。。。。。
我的博客
点赞  2012-5-15 09:48

回复 板凳 辛昕 的帖子

本人对苹果或其他的手机并不感兴趣,而且本人不迷恋任何一家公司。我在看产品是否好用。。。。我想选择ARM最大的优势是不在被芯片厂家的限制,从一家到另外一家芯片,或不系列移植已经不在是问题。

[ 本帖最后由 zhaojun_xf 于 2012-5-15 11:37 编辑 ]
我的博客
点赞  2012-5-15 09:52
一路走来发现 什么arm  avr  51  430   都差不多
expertss!!!
点赞  2012-5-15 10:38
昭君出塞????
怎么又回来了???

苍天,大地,单片机已经玩腻了,
请刺给我一个双片机吧!!谢谢。
点赞  2012-5-15 13:07

回复 9楼 jxb01033016 的帖子

哈哈,好久不见你啊,我一直对在。。
我的博客
点赞  2012-5-15 13:40

回复 6楼 zhaojun_xf 的帖子

其实像LZ所说的cortex m系列我觉的更适合用在工控,在工控上面用就不一定要上操作系统了,搞个前后台模式就可以了。在工控上面用,它肯定是想抢占单片机的市场。比如说msp430的价钱和stm32的芯片价钱和性能方面,我就会选择stm32,这个不需要多解释。它的资源丰富嘛。但是像ARM9,11,cortexa系列更适合消费电子方面这个就更适合上操作系统了,其实arm11基本都裸奔了,cortexa9就更不裸奔了。个人愚见。

[ 本帖最后由 wateras1 于 2012-5-15 21:49 编辑 ]
点赞  2012-5-15 21:47
学习下。
http://shop69542095.taobao.com/供应芯片
点赞  2012-5-16 10:52
我只从入门来说的话,对于这个时代51直接扔了吧。不要说什么简单入门之类的话了。学这种控制器类的东西又不是学数学,你基础不牢高级数学理论就学不了。单片机就是个工具罢了直接学最前端最流行的好了。单片机再难学也没有算法难学也没有通信原理难学。以后上了操作系统更多是软件的事情。反正以后有入门的人来问我的话 我直接告诉他,1去学习c语言2学习微机原理3直接买个stm32的板子配合着固件库玩去吧。我感觉玩单片机最有乐趣的是查错这才是考验一个人思考能力的时候。从这点来说学啥都无所谓。所谓学单片机对于初学者来说肯定不会去考虑51与arm核心上的区别,他们只是想控制单片机罢了,真正的重点在于片上外设,uart spi i2c ad da 这些东西才对。所以直接找带有这些东西的就好了越多越好。所谓单片机其实是微控制器,控制的背后是逻辑。这才是真正的重点而不是这个设备本身,这是我的观点。
点赞  2012-5-17 00:15
我想ARM学时困难点,用时很方便。主要是就算学会了也几乎没有实战的机会。
点赞  2012-5-17 04:55

回复 14楼 tzl 的帖子

我反而觉得ARM学习比51简单,就硬件仿真就比51不知道要爽多少,遇到问题直接仿真解决,而51则没有这种功能。。。。
我的博客
点赞  2012-5-17 07:38

回复 15楼 电子路途 的帖子

我学了几天STM32,感觉就象会骑自行车的人 升级到三轮车反而困难一些。但还是感觉ARM太快太强大了。  仿真就不要和51比了。 430、AVR、有些PIC都可以软仿真的。       我还想问一下您做ARM的活多吗?我单片机的活接了不少,ARM的1个也没接过。
点赞  2012-5-18 18:22
其实ARM就是一种单片机,没有必要总是使用低端单片机,很多情况都可以用M0和M3来替代。。。。。。。。。。。。。。
我的博客
点赞  2012-5-18 19:12

M0价格如何
强者为尊,弱者,死无葬身之地
点赞  2012-5-30 14:50

回复 18楼 辛昕 的帖子

很便宜,几块一颗。。。。。。。。
我的博客
点赞  2012-5-30 15:28

回复 19楼 zhaojun_xf 的帖子

几块嘛....
淘宝上,stm8s,也是四五块一颗.....
强者为尊,弱者,死无葬身之地
点赞  2012-5-31 23:46
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复