不用去学AVR的,除非非常有必要。
51,AVR,ARMv7(STM32),ARM9之间没有必然的联系,不用一步一步去学。
51属于简单的单片机,用来了解单片机工作原理什么的,是不错的选择。
学习怎么操作单片机寄存器什么的,还有养成良好的编程习惯。
AVR使用也不少,你要精通51,将来工作中要用到AVR的话,也就花几天熟悉一下就可以了。
STM32跟ARM7不是一回事,STM32的核是CORTEX M3,内核版本是ARMv7不是ARM7。
STM32功能,速度,位宽跟51都不一样,强大很多。
STM32可以使用UCOS,一般没必要,裸奔挺好,你要学习UCOS的话另说。
ARM9已是昨日黄花,工业上应用还好,消费级的都是CORTEX A8/A9了。
至于ARM9还是CORTEX A8,本质上相差不大,都是利用别人做好的WINCE,LINUX/ANDROD操作系统上进行开发,NB点的做做移植什么的。
想必你应该明白,你说的四种处理芯片互相之间没有多少的联系,不要认为那是进阶一步一步的走。
我做了半年51,还有快半年的STM8+STM32。
我给你的建议是先把51所有模块学精,然后再学STM32或者ARM9,AVR真的是没必要学了,性价比远没有STM32来的高,甚至STM8都更便宜更好用。
STM32多用于工业控制,STM32与ARM9的区别就是STM32的模块数(比如串口数量)可能会更多,唯一不好的是不适合加载操作系统,可以说ARM9裸奔就是STM32。
你如果有充足的时间,那你可以学完51直接ARM9,ARM9的资料很多,你的思想要从寄存器操作转向库的操作,难点就是库+操作系统,这时你学的会非常痛苦。据说自学时间在半年。
如果你即将工作了,时间很有限,你可以学好51后花一个月时间学STM32,先找一份单片机的工作,熟悉库的操作,用业余时间学学操作系统,等学ARM9学的差不多时你再换一份嵌入式的工作。
其实,多学几块芯片是有用的,这些知识都是触类旁通的,而且这样对你视野有帮助。STM8与STM32类似,但是资料很少,并且软件没有KEIL好用,而且下载器又贵,有兴趣可以去了解下。
我从事单片机行业快1年,觉得单片机很有限,在考虑做满一年去找一份嵌入式的工作,所以现在买了块MINI2440,用业余时间看看。
楼上说的没错,单片机的特点就是互相之间相互比较独立,你要是没有用过单片机的话,可以先从51入手熟悉,然后根据具体的工程需求选择适合的单片机方案。裸奔的话CORTEX M3内核就很强大了,如果上操作系统,那么编程和选什么单片机就不重要了,主要去学几个主流操作系统编程。
不错,我现在也在学习STM32,买了个开发板一年多了,没怎么玩过 UCOS也没跑过
我之前从51转到AVR的时候,自己买了二个ATMEGA16 一个13块钱 自己焊了个学习板,主要是你不怕麻烦。