凡亿专栏 | 放弃51单片机,直接学STM32开发会有什么严重的问题?
放弃51单片机,直接学STM32开发会有什么严重的问题?

最近收到了很多新手的咨询,其中有一个学员的问题我认为还是比较普遍。

这个学员说自己跟着开发板看教程学习,外设基本学完了,但是发现脱离例程和教程的时候,自己把代码敲出来,编译出错后一脸懵逼,完全就是不知道怎么去解决这些问题。

还有就是关于外设的配置,不知道为什么要这样去配置。

后面我看他人也挺实诚,就深入聊了一下,发现他以前是做纯软件的,编程语言啥的有基础所以c语言也很快就掌握了。

他以为有了这些基础能直接从STM32开始学起,所以产生了后面这一系列的问题。

这就是典型的1级打boss。

7f4dbcec4060c231386de0c7515405.jpg

我们无际单片机编程一直要求学员要从51单片机开始学起,很多新手总以为现在51已经过时了,STM32是主流。

在我们这些老工程师眼里,虽然主要是用单片机来开发产品,但是单片机对我们来说屁也不是。

从技术的角度来说,单片机本身没太大技术难度。

实际开发产品的时候,不同的产品选择的单片机都不一样,不可能你51单片机能实现的你去选择STM32。

还有很多单片机你可能听都没听过,所以你all in去死磕一款单片机没太大的意义,反而浪费你太多时间。

现在随便一款单片机,原厂的资料都很丰富了,所有外设资源的例程都会给你,还有配套文档+技术支持,初级工程师都能很快把他们的单片机用起来。

所以,新手其实重点是把单片机和基本协议(SPI、IIC、USART)基础打好,对单片机有一个系统的认识就行了,而不是一味地去追求性能强的芯片。

比如说你知道单片机外设用起来的原理,是通过配置寄存器去使用的。

其实你看不管是单片机还是别的芯片(LCD驱动芯片、Flash、DS1302等等)都是通过这种方式去使用芯片内部功能的。

51单片机基本是通过配置寄存器去使用它的外设的,而STM32根本不需要你接触寄存器,直接调用库函数就能把外设开起来。

两个芯片的开发存在比较大的差异,你用起来或许很爽,但是一出问题叫天天不应,叫地地不灵。

连排查问题的方向和入口你都找不到,更别说解决了。

这就是基础缺失导致你的知识体系是畸形的,你的理解永远是在应用层面,而不是核心的原理。

如果你用51单片机做过5,6个项目,再进阶到STM32,我相信完全是两种不同的体验,完全可以游刃有余。

因为做单片机开发核心的东西你基本也熟悉了,这里说的核心除了你单片机基础比较扎实以外,还有一个更重要的。

就是你的项目思维和代码整合能力,代码水平另说,水平不管好坏在51单片机面前都能实现产品功能。

这是非常重要的,如果现在让我去写纯软件的东西,我也能很快上手,因为你说一个功能我脑子里有个架构和实现功能的思路,剩下的就是学编程语言语法而已。

很多人搞不清状况啊,以为做单片机开发就是学单片机,这种活该你的工资低。

只要你不去造单片机,单片机对你来说就是一个工具而已,你理解再深入和我只会复制例程把单片机用起来,做出来的产品有区别吗?

懂得人都知道没区别,真正区别应该是在于我们之间的算法和代码架构吧,这才是决定产品稳定的东西。

所以,这几年结合自己和以前带过徒弟的经验,我觉得学习单片机最靠谱的方法就是通过项目去学习。

现在无际单片机编程的学员也是以项目驱动去学习,虽然过程有点痛苦,但是坚持下去的收获都是巨大的。

这样你学习更有目的性,也知道学出来的东西有什么用,用在哪里。

还有一点最重要的,能培养你的项目思维和提升你的代码水平,这都是实际工作最需要的东西。

做它4,5个项目,基本就具备独立开发的能力了。

如果你通过开发板学习,即便给你学10个开发板,你还是一看就懂,一做就废!

8bba9efaf1241324a0d376ab552e86.jpg

开发板只是给我们学习单片机和调试用的,不能让你学成工程师。

2.最后总结

不知不觉啰嗦了这么多,反正我是不推荐直接从STM32学起。

技术要先稳扎稳打,把基础打好,借助基础你能更快起飞,记住:慢就是快!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论