还记得自己刚入行那会儿,STM32还没现在这么普及,我也只会51单片机。
如果是零基础,即完全既没接触过编程,也没接触过单片机,我建议从51单片机开始。
不过没基础,一上来就搞STM32,会被STM32复杂的寄存器、外设、还有专业术语搞得怀疑人生。
其实,学单片机就像盖房子,地基不牢,地动山摇。
而51单片机,就是这个地基里最关键的一块,为啥这么说呢?
第一,51单片机结构简单,寄存器不多,你翻开数据手册,想找什么都不费劲,对于刚入门的新手来说,非常友好!也没有太多的专业术语,反而能更轻松地解单片机是怎么工作的。
第二,51单片机是直接操作寄存器的,刚开始可能会觉得麻烦,但相信我,这个过程会让你对单片机的运作原理理解得更透彻。
等以后你接触其它类型的单片机时,你会发现基本都是大同小异,包括STM32,只是寄存器数量更多了而已。
我经常和身边学单片机的说,学习51单片机就像学开手动挡的车,虽然现在自动挡很普遍,但如果你先学会了手动挡,开自动挡只会更加游刃有余。同理,先掌握了51单片机,再去学STM32或者其他更高级的单片机,就会轻松很多。
当然,这并不是说STM32不好,只是你一上来就钻研STM32,很可能会被它复杂的结构和繁多的功能搞得晕头转向。
我的建议是,先从51单片机入手,做一些小项目,比如说智能小车,这个项目虽然看起来LOW,但还是有学习的价值了,因为它涵盖了IO口、中断、定时器等多个知识点的整合,还有就是写程序控制车也挺有趣的。
等你完全掌握了51单片机,C语言基础也扎实点了,再转向STM32,这时候,你会发现STM32的学习曲线变得没那么陡峭了,学STM32最主要的就是C语言功底,因为玩STM32都是做调库侠。
很多在我面前嘴硬,基础又差的,刚来的时候,非要直接学STM32,觉得51单片机太落后,结果折腾了一个多月,连最基本的程序都写不出来。
老老实实花上半个月,把51单片机开发板过一遍,再转到STM32的时候,我发现之前学习51单片机的经验非常有用。比如说,理解了51单片机的定时器和中断原理,再学习STM32就容易多了。
最后我想强调一点,学习单片机,最重要的是动手实践,理论知识虽然重要,但如果不去实际操作,很多东西你永远不会真正理解。
我建议你买一块开发板,跟着教程或例程,自动多动手去尝试,不要怕出错,每一次的失败都是一次经验的积累。
最近有些老铁找我咨询学单片机,聊完发现99%的人都走了弯路,特意写了一篇单片机学习路径:
单片机不踩坑的学习路线https://blog.csdn.net/2301_78464137/article/details/141396541