我是从大一就开始接触单片机,学过很多类型的单片机。
从最简单的51单片机(stc,atmel, intel等类型都用过)
到国内现在最火的stm32(推荐正点原子,后期很多项目都是用的32,因为资料比较多,开发比较快)
还有飞思卡尔(这个是做智能车用的,现在叫恩智浦,在汽车领域很多都是他们的单片机)
还有瑞萨单片机(日本的,赞助了电赛所以就学了,在汽车领域用的较多)
还有很多包括msp430也用过(老师交代的项目要求使用,特点是内部功耗管理很厉害,也就是低功耗很强)
pic单片机(这个是我们正儿八经开的专业课,因为是实验班,还需要做课设,我做的是无线室内温湿度采集显示装置,很简单了,不错做的很漂亮)
后边就是arm9,arm11,到linux之后就不太关心使用的是什么芯片了,因为实际工作中项目很复杂,软硬件被分工的很厉害,我很早就希望成为软件工程师,所以后期有所侧重。
但是了解硬件还是必须的(可以更快的定位问题),比如做无人机的时候使用的stm32f4系列的一款芯片,我主要是写飞控算法实现的代码,硬件都是其他同事设计的,但是我很喜欢跟他们探讨硬件问题,这有助于我解决很多问题。
后边工作与硬件芯片就更远了,工作了甚至都没有见过设备,更别说内部的芯片了,现在使用的应该是博通的芯片(美国一家全球领先的有线和无线通信半导体公司),提供我们软件工具链甚至开发算法支持,使用的Linux系统,软加开发基本与硬件隔离,但是架构师还是很了解硬件的,并且经常发现硬件部分的错误(可见懂硬件还是必须的)。
说了这么多你可能发现没有说怎么学习单片机,其实三点可以总结出来。
1.实践,这个是最为重要的,可以说搞嵌入式开发,不实践就学不会。
2.C语言编程能力,这个几乎占嵌入式开发80%难度,我大一的时候痴迷硬件设计,以为设计电路,做pcb,抄抄代码就很厉害了,实际呢?也就是自我安慰而已,虽然如此,我还是很喜欢硬件,我做过很多PCB设计(最多做过6层板,柔性板,沉金,邮票孔什么的,是不是听着很熟悉,哈哈)
3.最后一个就是基础,很多业余出身(机械,化学等专业的)都以为看点视频就会开发了,但是实际为什么学的很慢呢(可能也是题主的困扰),原因就是基础不行,包括模数电(我是酷爱模数电,自学了外国的很多教程),电路,软件系统设计,自动控制原理(很多人学不会的PID算法就是这课教的),高级语言编程(降维学习,高级语言在做设计的时候确实有优势),嵌入式系统原理,单片机内核原理,微机原理,高数(这个就不多说了,很多渣渣还想做算法,但是卷积都不知道,机器学习了解一下),列举可能不全,全是印象中的就直接写了。
所以我看见题主说的更快学习,有时候,慢就是快,很多坑都需要后边填(想起汤家凤老师的口头语“基础不牢,地动山摇”)
先这样,以后想起来在补充了。。。