关于我玩单片机学习路线(个人总结)
前言:
提示:这篇文章只是我自己的经验总结,仅供参考哈! 重点:兴趣是最好的老师
废话内容哈!可以忽略。俺从初中开始接触电子设备,一开始只是简单的纯电路模式的学习,实际上没有直接使用MCU或者CPU处理信号,到了高二之后才有一点的了解。大学之后才正式踏上这条路的…
由浅到深,一步步来哈!
内容:
一个技巧: 玩单片机不必买昂贵的开发板哈!(当然啦!土豪随意!!!,我自己的建议就是最小系统搭配一些简单的传感器或者其他的套件就可以玩得很嗨了),最好是根据自身的情况来作出最优选择。
单片机选型:
1、 Arduino(培养兴趣):先玩一玩,做出一些小玩意 2、 Arduino的拓展(入坑) 例如:基于Arduino的ESP8266,ESP32,WEMOS 之类的,可以做一下无线WiFi小车之类的,案例很多,可以根据需要来拓展,玩转一些项目。
Arduino看似简单,但是可以开发的东西很多,(小学生的玩具),但是试问一下,有多少大学生玩不动呢?简单来说,一个桌子就只是一张木板,但是为什么可以有这么多稀奇古怪的设计呢?关键是自己的思维拓展。(这个时候可以了解一下网络方面的,以及如何通过网络实现单片机通信,有意思的)
3、 51单片机(入门开始)
51单片机没有像Arduino那么多的现成的库可以使用,基本上要自己写的比较多(当然少不了Ctrl C,V大法),这个时候就需要一定的编程基础了,比较推荐进阶一下C语言,汇编也是可以的(膜拜大佬!!!)。可以将之前学习Arduino的逻辑放到51上面,学起来容易点, 学到51的时候,这个时候就可以跟着去参加一下电子设计大赛了,记住(是跟着大佬去,跟,跟,跟,这是一个更加深度的学习!),
4、STM32(进阶,莫慌,别想象很难)
对于这个阶段,其实我在大学当中是一个比较有争议的话题的:大致分为三波: 1:先从STM8或者其他的过渡(我也不知道我为什么会有这个说法,但是切身体会,好怪!)
2:放下单片机,提升编程能力(这个说法没有啥错误!)
3:直接跳过前面的,直接上手STM32(啊!这个说法嘛…只能说放弃的人很多,当初我的一个小师妹也是这样认为的,直到上手开始之后,头发掉的比我还多,这个是比较不建议的哈!)
STM32是一个比较全面的进阶学习了,在实际的开发当中(基于HAL库),代码的冗长会让很多人Say ByeBye!但是!别慌,其实也就是调库多了一点,慢慢跟着一些教程讲解和操作,也还是可以吃透的,基本上到了这个时候,就是需要一些熟悉32的老师或者朋友带一下了,每一个错误的产生不一定是相同的解决方式。(所以希望能够坚持!每多坚持30秒就好了,先休息一下,接着造呗)。
5、树莓派或者一些跑系统的开发板(熟悉)
前面的开发板也可以跑系统,STM32甚至可以做成一部简单的手机(参考一下某原子的开发板,鄙人不才,还没有尝试!)。 建议还是树莓派或者一些时下流行的,(简单就是学习资料比较多,很多时候,嘿嘿!亲,您懂的!) 到了这个阶段,基本上可以熟悉操作系统,趋于嵌入式软件开发。像是只有μC/OS-II、embOS、salvo、FREERTOS等少数实时操作系统能在小RAM单片机上运行。 相对于C/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行。
6、嵌入式系统开发(精通)
这个属于软件开发的,和单片机关系木有那么密切,但是学好才可以更好的裸机开发能力,加入讲一下 C语言的编程能力,各种通信协议,网络。什么I2C,SPI等等一堆,有可能还需要Java之类的其他编程语言,Linux的开发是主要(推荐Ubuntu)。还有就是网一些架构上面深入,类似ARM。(什么洗发水也拯救不了啦!)
时间安排:
主要是在于坚持,每天保持一点点的进步,(根据自己可以支配的时间安排) 例如: 1、 2-4个小时学习和调试代码(主要是C语言) 2、 1个小时左右做一下单片机小项目(网上很多可以参考的案例) 3、 空余时间充裕(比如节假日,周末之类的) 两种方案: 1:尽情嗨皮,放松一下。 2:可以适当加一下时间在学习时间上面。 当然啦!只是我个人的观点哈!
效果:
当可以自己独自编写和调试一个完整的小项目或者超过500行以上的代码就已经很好了。这个需要根据自己的实际情况来的。
学习本身就是一件很痛苦的事情,但是能够将学习到的转换成实际输出也是一种很大的成就感,更加有动力去学习。
以上的分享仅仅是我自己的学习历程分享,只是个人的观点,有需要的朋友可以参考一下哈!不要全部照做,不是每个人的情况都是一样,需要自己去了解自己的方向。 有什么好的想法或者讨论意见可以在评论区留言讨论,有些观点可能不太全面,如果有不正确的地方还需要您的指正哈!大家一起学习进步!
|