有时候会收到一些小伙伴的咨询:零基础可以学会单片机吗?
这句话听起来挺搞笑的,谁不是从零基础开始学起的?这又不像富二代一样出生就有资本直接起飞。
很多事情,你做不好,往往是因为你的欲望不够,你只是单单纯地想得到它,但是你并没有付出过真正的努力。
真正的努力不是你看一本书,像看电影一样把视频教程浏览一遍。
我当初在自学单片机的时候也很痛苦,没人带,教程也没现在丰富 (10年前)。
碰到了问题,就只能在一些技术论坛求助,但是大多数都是石投大海,有时候一个小问题要解决2天。
过程很迷茫绝望,内心总有两种声音在较量:坚持or放弃。
最后我还是硬着头皮撑了下去,因为我很渴望自己能学会这门技术的,做一些智能控制的产品,跟每个人心中都有一个”钢铁侠”的梦一样。
从0-1很难,从1-100相对简单,从100-1000又很难,仔细一品还真有点人生的味道,哈哈。
网络上很多关于新手如何入门单片机的文章,写得五花八门,文章很多,原创很少,都是相互抄袭,有些真正的原创又没把入门的精髓表达清楚。
我一直认为,只有经历过的人,才能懂得。
扯了这么多,下面结合我这10年的从业经验,分享下新手该如何上手单片机,看完没收获你打我!
一、学习单片机必学的几个技术
1.基础电路
这部分最多人走弯路去死磕模拟电路,这也很正常,毕竟只有从事过实际产品开发的才知道,模拟电路用得并不多。
很多人可能会反驳,模电一定要学,不然注定做不出稳定产品。
我并不是说模拟电路不用学,而是新手学到什么程度的问题,我个人建议最多学到负反馈放大电路就够了。
现在很多电路都是集成化了,即便不集成化,电路这块也是由硬件工程师去设计。
我们定位是单片机软件开发,一般不需要去关心电路的细节实现方法,只需要知道输入到单片机是什么协议信号,输出什么协议信号控制外围电路就够了。
信号基本就是输出高低电平或者PWM,协议基本都是USART、SPI、IIC用得最多。
还有最重要的一点,如果你没一定的产品经验,一般很难搞懂教程里那些复杂的电路。
先学会基础,掌握基本电路分析能力,再通过实际产品去巩固。
等有了比较丰富的产品经验再回过头去研究视频教程上的理论,这才是正确的成长方向。
所以,基础电路学到什么程度,我给大家一个量化的标准就是前期看懂51开发板原理图和stm32开发板原理图。
2.c语言和51单片机
单片机和c语言是同步学习的,我们在学习c语言的过程中需要在单片机开发板上面去实践。
它们之间是相辅相成的关系,前期建议从51单片机开始。
C语言学到指针,51单片机把所有的外设都学完,最后做一个小项目锻炼下自己的代码整合能力。
做到这些,基本上就算是已经上手了,接下来你可以继续做几个51单片机的项目,也可以进阶到stm32单片机。
二、最后再说一个新手的误区
就是着急过度到高端的芯片,比如说从51过渡到32。
其实你基础没打好,过度过去也是学得很费劲的,不管是51还是32,或者任何单片机其实都只是一个工具。
程序才是一个产品的灵魂,如果你用51单片机做过5-10个产品。
再过度到32,这个时候根本不用刻意系统地去学习,直接拿个开发板,把库函数对应每个外设的例程拿出来一看,1-2周基本就能把32常用外设调出来。