一、初识
其实多数人认识单片机并非51,而是8086,一款汇编语言和微机原理课程上提到的单片机,刚开始认识单片机之前,对于PC、微机、单片机、FPGA的概念根本分不清楚,更别说ARM、X86了。
对于本科学习物理专业的我,我对电子技术感兴趣,应该从模拟、数字电子技术实验课说起,当用各种门电路、555、138等芯片搭起来一个个实验时,哇,那感觉爽。当用模拟器件搭建各种信号发生器的时候,当用示波器观测波形的时候。。。满满的回忆。
曾几何时,用汇编语言在DOS环境下,使电脑发出BEEP的声音,读取按键的键值、写出第一个hello wolrd时。。。我开始探究硬件。
第一块开发板是学校发给我的,对于单片机一无所知的我参加了学校组织的TI比赛,简单的培训之后我学会了MSP430单片机的下载、调试、开发,但是依然很多概念不懂,例如上拉电阻、PWM,串口等,好多新奇的概念。算是有了一个初步的认识,后边由于考研的原因,没有去理会。
二、入门
读研期间开始接触嵌入式开发,当导师仍给我一个CC2530的无线项目时,确实有些懵逼的,虽然我从来都没有上手过单片机的东西,大四还买了一个51的开发板,现在仍然是全新的,我从图书馆借了一本51的书,看了一个星期的书,觉得51作为一个单片机来说,确实没有多少东西,怎么说呢:
1、首先51的架构和指令部分与微机原理基本差不多,所以理解起来差不多。
2、寄存器数目很少,汇编课程上学过,所以理解起来很简单。
3、晶振电路不复杂,很好理解。
4、GPIO、定时器、串口外设简单,一看就懂。
5、难点是中断,但是微机原理课上我弄得比较清楚。
6、其他外部电路随用随学,不需要全部掌握。
所以,我学了不到一星期,就直奔项目了,由于CC2530是51核,再加上实验室师兄带着,所以基本上完成了第一个嵌入式项目,算是入门了。
备注:一个星期学51确实有吹比的成反,但是我要提一下,随着我的入行,我觉得学习一款单片机不会超过3天,51的课程看这挺多的,但是如果分解来看,真正单片机的东西有多少呢?只有三个、架构、指令、寄存器而已。
真正学起来比较费力的可能就是外设了,但是学习外设,真不建议局限在51单片机,串口、IIC、SPI、定时器、USB等等这些外设都是一样的,我非常讨厌用模拟的方式做外设,现在芯片种类那么多,为什么不重视选型和稳定性呢?
三、上路
对于学习单片机的朋友,我觉得要想深入单片机,仍然需要学习ARM,先从ARM学习,然后开始再学习A或M系列,STM32系列是个好东西,但是我觉得一开始还是先把ARM弄懂,读研期间接触了一些STM8、STM32、PIC等芯片的项目,当然也接触了国产的GD、新唐等芯片,也算是上路了。
我觉得对于学习单片机来说,会有这样的误区:
1、刚开始学51觉得很困难,就觉得单片机开发都很难,其实这是错误的,不要以学习某一款单片机为目的,要有全局观,所以我建议学单片的人,首先要学会微机原理和接口技术、数字、模拟电子技术。
2、不要上来学习STM32,先学习ARM,还是要打好基础。
3、外设这个东西其实就是寄存器、时序的东西。
刚开始学习的时候,总会局限在一块开发板上,有些东西可以跳过,,,
毕业了,虽然不在做单片机的东西了,但是单片机的流程仍然是这样。。
选型-------评估--------原理图--------------画板---------写驱动、测试----------上系统或写代码--------各种调试---------测试-----产品。
就这样吧。
|