Arduino本质也是一个单片机,它的编程语言基本和单片机一样都是通过c语言。
但是为什么很多人觉得单片机编程会比arduino难很多呢?
原因啊,就是单片机编程开发比较底层,需要具备硬件基础,也需要看得懂数据手册,需要配置寄存器使用单片机功能。
而这些arduino都帮你封装好了,你只需要按照他们的规则去写程序就很轻松实现功能。
简单来说,就是arduino只考验你的c语言,至于其他会不会问题都不大,大大降低了各位的创作门槛,圆各位一个创客梦。
不过,在实际产品开发的时候基本上不会用arduino。
因为成本和尺寸各方面的限制,尽管arduino能快速地帮你实现功能,但是用单片机还是定制化程度要高一点,成本也低一点。
有很多产品外壳比较小,用单片机更加灵活。
所以,大家如果到一些招聘平台看的话,基本很少招只会arduino的,大多数都是需要你会单片机。
如果你是大学生,未来想从事这个行业,我建议还是以单片机开发学习为主,否则可能对找工作不利。
很多人之所以觉得单片机编程难,很大原因是学习的路径不清晰。
这就导致你在学习的时候可能完全懵逼状态,就好比你没学过51单片机直接上手STM32的话。
每学一步就会产生很多问题,这些问题如果网上找得到解决办法还好,找不到的话自己完全不知道怎么去解决。
这也是为什么我们无际单片机编程,必须对每个新学员进行基础评测,然后再规划系统学习路径的原因。
学习路径就像你的地图,你要去寻找宝藏,没有地图指路很容易就走偏了。
还有就是对电路这块学到什么程度心里也没底,以为做单片机开发需要很扎实的模拟电路、数字电路知识。
其实实际工作当中,公司会配备硬件工程师去设计产品的原理图和PCB。
单片机工程师一般是负责写软件部分,我们只需要能看懂产品原理图,知道单片机怎么去控制就行,而不用具备设计原理图的能力。
要具备这个能力,是需要非常丰富的产品经历的,这个也不是一个视频教程能够教会你的。
而且现在电路集成化程度都很高了,大多数的功能模块都能通过芯片方案去解决,不用自己从头到尾去搭建电路。
除非你去设计芯片或者模块,不然模拟电路相对比较少,就我目前从事了10年开发来说,用到的模电知识最多只到了负反馈放大电路。
所以,不用花太多时间去钻研电路,前期只需要学习一些常规的,具体看懂51开发板原理图就可以了,后期工作需要了再针对性去研究。
单片机开发前期主要的定位还是软件开发,能独立完成任何一款基于单片机的产品以后再去考虑走全栈路线,也就是硬件软件通吃。
很多人一上来就想着吃透硬件、吃透软件,你又不是贪吃蛇对吧?
往往是这种人最后学不会的概率最大,学习都是先由点到面,逐个突破。