电子产业一站式赋能平台

PCB联盟网

搜索
查看: 4543|回复: 2
收起左侧

学习了STM32,你以为就会做项目了? Why?

[复制链接]

131

主题

512

帖子

1666

积分

三级会员

Rank: 3Rank: 3

积分
1666
发表于 2021-4-6 10:30:11 | 显示全部楼层 |阅读模式
可能你已经学习了很久,但是当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,是很多工程师智慧的产物。如下图是封装好的外设驱动,有必要学习一下是怎么实现的。

    做底层本身确实要复杂一些,底层软件工程师的成长周期确实要长一点。
    有人可能会反驳,现在各个厂家的配置工具都很完善,为什么我不把精力放在应用和算法上,而要放着现成的驱动不用,自己手写呢?那你就去安心做个应用软件工程师,别来搀和底层。    做单片机开发,就得清楚今后的发展方向是什么。当个几年软件工程师,然后转岗去做管理吗?    倘若技术追求高一点的话,你努力的方向一定是系统架构师。
    而要成为合格的系统架构师,还得了解单片机底层是如何工作的,甚至还得具备相当程度的硬件知识,应用层的算法只能是锦上添花。

    而这些底层,之所以被称之为“底层”,是因为它们确实就是整个系统框架里最基础的部分。好比盖大楼,这些就是地基。认真看官方手册、寄存器手册,每一个驱动都自己手写,一点一点做。同时,学习电子元器件电路原理等硬件知识。    其实,能坚持下来,就已经打败90%的人了,找工作自然也不是问题。



回复

使用道具 举报

131

主题

512

帖子

1666

积分

三级会员

Rank: 3Rank: 3

积分
1666
发表于 2021-4-6 10:30:24 | 显示全部楼层
需要做PCB线路板的可以联系我

13651479995
回复 支持 反对

使用道具 举报

lyl

1

主题

1119

帖子

3525

积分

四级会员

Rank: 4

积分
3525
发表于 2021-4-29 08:32:06 | 显示全部楼层
资料很好,学习学习
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表