为什么学了很久还是不会做STM32项目

描述

可能你已经学习了很久,但是当Leader抛给你一个STM32项目,你是不是依然手足无措?     有一朋友刚开始学习的51单片机,后来转STM32了。主要是跟着网上的在线课程学习,自己下边跟着敲代码。过程中学过各种培训机构出的视频课程,接触过操作系统,开发板上的例程都可以做出来。后来他又学习了PCB绘制,由于在学校的时候没学到多少东西,而且不是电子类专业,陷入了迷茫,不知道该怎么学了。     记得在上大学的时候,专业课老师曾反复叮嘱我们“师傅领进门,修行看个人”。这话之后还没完,经常告诫我们要深入学习51单片机。当时没有完全理解他的意思,直到工作若干年之后才知道。   
 
       在嵌入式领域,技术上有所精进,底层的东西少不了。通过51单片机的学习,可以理解单片机、SOC、微机原理相关的硬件知识。     当工作那会,在一家军工企业打工,当时的岗位是嵌入式开发工程师。那时候,我还是一枚小白,甚至C语言都没学好。一个来自华为的老工程师带着我学习、工作。他在华为的时候主要是做的C语言相关的开发,51单片机了解一些。     跟他一起做的第一个小项目是用STM32实现的。他翻看了一下STM32的相关demo,几天之后那个小项目初见端倪。     这个项目虽小,却涉及到了上位机开发的C#、单片机开发用的C语言、图形界面用到的PS以及CAN通信协议等。     

       项目完成后,在跟他聊天过程中,我得知他之前对于CAN通信、STM32并不熟悉。     What?或许这就是触类旁通的结果。     实际上,C语言是非常接近底层的开发语言,也是嵌入式开发的主要开发语言。学好C语言,不了解底层的微机原理是不可能的。寄存器、位操作、堆栈、内存申请与释放,这些知识点也都会接触到。     回到本文的题目,做不了项目是因为一直以来学的都是皮毛,没有学到实质的东西。虽然学了很久,官方手册看过吗?恐怕一直都是在用标准库、HAL库之类的。     在这里并不是贬低库开发,其实,库开发是一种高效的开发方式。高手也会用库开发STM32项目,但是他们可能会尽力吃透所用的标准库、HAL库。开发库就好比wheel,是很多工程师智慧的产物。如下图是封装好的外设驱动,有必要学习一下是怎么实现的。

51单片机

做底层本身确实要复杂一些,底层软件工程师的成长周期确实要长一点。     有人可能会反驳,现在各个厂家的配置工具都很完善,为什么我不把精力放在应用和算法上,而要放着现成的驱动不用,自己手写呢?那你就去安心做个应用软件工程师,别来搀和底层。     做单片机开发,就得清楚今后的发展方向是什么。当个几年软件工程师,然后转岗去做管理吗?     倘若技术追求高一点的话,你努力的方向一定是系统架构师。     而要成为合格的系统架构师,还得了解单片机底层是如何工作的,甚至还得具备相当程度的硬件知识,应用层的算法只能是锦上添花。     而这些底层,之所以被称之为“底层”,是因为它们确实就是整个系统框架里最基础的部分。好比盖大楼,这些就是地基。认真看官方手册、寄存器手册,每一个驱动都自己手写,一点一点做。同时,学习电子元器件、电路原理等硬件知识。     其实,能坚持下来,就已经打败90%的人了,找工作自然也不是问题。

责任编辑:xj

       原文标题:为什么STM32学了很久还是不会做项目?

文章出处:【微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分