你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
STMCU-管管 发布时间:2020-11-2 18:11
为什么STM32学了很久还是不会做项目?

- ~) T8 p, i0 n/ e; Y# @; T, Q
: S" a5 X- m1 ~9 U
可能你已经学习了很久,但是当Leader抛给你一个STM32项目,你是不是依然手足无措?( g  j) h- g' B- f  O
    有一朋友刚开始学习的51单片机,后来转STM32了。主要是跟着网上的在线课程学习,自己下边跟着敲代码。过程中学过各种培训机构出的视频课程,接触过操作系统,开发板上的例程都可以做出来。后来他又学习了PCB绘制,由于在学校的时候没学到多少东西,而且不是电子类专业,陷入了迷茫,不知道该怎么学了。
# L; }5 T) b6 ?2 [) c    记得在上大学的时候,专业课老师曾反复叮嘱我们“师傅领进门,修行看个人”。这话之后还没完,经常告诫我们要深入学习51单片机。当时没有完全理解他的意思,直到工作若干年之后才知道。
- u5 b1 l- o1 _; d9 z    在嵌入式领域,技术上有所精进,底层的东西少不了。通过51单片机的学习,可以理解单片机、SOC、微机原理相关的硬件知识。5 L4 J9 [8 {+ I
    当工作那会,在一家军工企业打工,当时的岗位是嵌入式开发工程师。那时候,我还是一枚小白,甚至C语言都没学好。一个来自华为的老工程师带着我学习、工作。他在华为的时候主要是做的C语言相关的开发,51单片机了解一些。* A9 n  l0 g# }" w/ Z8 \8 W" o0 A
    跟他一起做的第一个小项目是用STM32实现的。他翻看了一下STM32的相关demo,几天之后那个小项目初见端倪。
1 v# T1 e$ `* g( {4 P# G    这个项目虽小,却涉及到了上位机开发的C#、单片机开发用的C语言、图形界面用到的PS以及CAN通信协议等。, i8 X+ n* U* I6 c
    项目完成后,在跟他聊天过程中,我得知他之前对于CAN通信、STM32并不熟悉。
( T+ \5 X# D( V1 J8 |2 r    What?或许这就是触类旁通的结果。
) ^' r4 y8 K- w% q0 [5 N3 t' J' M    实际上,C语言是非常接近底层的开发语言,也是嵌入式开发的主要开发语言。学好C语言,不了解底层的微机原理是不可能的。寄存器、位操作、堆栈、内存申请与释放,这些知识点也都会接触到。& `# `8 z. D. @8 m  M5 @
    回到本文的题目,做不了项目是因为一直以来学的都是皮毛,没有学到实质的东西。虽然学了很久,官方手册看过吗?恐怕一直都是在用标准库、HAL库之类的。
8 u/ W; A! E7 i% w( D( i    在这里并不是贬低库开发,其实,库开发是一种高效的开发方式。高手也会用库开发STM32项目,但是他们可能会尽力吃透所用的标准库、HAL库。开发库就好比wheel,是很多工程师智慧的产物。如下图是封装好的外设驱动,有必要学习一下是怎么实现的。
" A. N3 H& I: J
16.png 8 i2 J" n$ P9 i( k' \, @6 Q
    做底层本身确实要复杂一些,底层软件工程师的成长周期确实要长一点。
7 B6 e. Y9 I" s$ {2 g    有人可能会反驳,现在各个厂家的配置工具都很完善,为什么我不把精力放在应用和算法上,而要放着现成的驱动不用,自己手写呢?那你就去安心做个应用软件工程师,别来搀和底层。
/ k7 @4 l" ~  \( ^# b3 k    做单片机开发,就得清楚今后的发展方向是什么。当个几年软件工程师,然后转岗去做管理吗?
" P4 r' ~0 f/ s9 I1 ], v- S    倘若技术追求高一点的话,你努力的方向一定是系统架构师。/ p7 j& _8 A% B/ \' u
    而要成为合格的系统架构师,还得了解单片机底层是如何工作的,甚至还得具备相当程度的硬件知识,应用层的算法只能是锦上添花。
9 j: `0 M3 N: l* {    而这些底层,之所以被称之为“底层”,是因为它们确实就是整个系统框架里最基础的部分。好比盖大楼,这些就是地基。认真看官方手册、寄存器手册,每一个驱动都自己手写,一点一点做。同时,学习电子元器件、电路原理等硬件知识。; g( W& g( s; [" b
    其实,能坚持下来,就已经打败90%的人了,找工作自然也不是问题。

2 Z9 v7 y- _$ R6 g8 r
2 ^" Y* n" C! E+ k; T5 V
收藏 评论4 发布时间:2020-11-2 18:11

举报

4个回答
epic7 回答时间:2020-11-3 09:09:38
学习了
小小超 回答时间:2020-11-3 11:26:17
只要原因是没钱,所以不会做项目。
heiyewuyue 回答时间:2020-11-3 11:40:08
这些底层,之所以被称之为“底层”,是因为它们确实就是整个系统框架里最基础的部分。好比盖大楼,这些就是地基。认真看官方手册、寄存器手册,每一个驱动都自己手写,一点一点做。同时,学习电子元器件、电路原理等硬件知识。. A' P! l# T1 J  U, ~
这个真的很难坚持,尤其是现在公司都要求快速开发
流着汗的鱼 回答时间:2020-11-3 12:15:28
其实,没有人不清楚,学好底层更好。但有时,有一个新想法,要你几天就搞出来。你光研究新的通讯协议就要好久,别人直接在网上下载参考例程,立马就能用了。有时,需要一个原型机,看看产品的整体功能,需要的就是速度快。。很多时候,一个合格的产品,代码只是一小部分,需要关注的量产中的各种问题。。。所以,有限的时间,先做出产品,再优化产品,再提高产品的可靠性。当然,如果自己的工作就是写程序,那就应该深入了解,否则应该把握整个产品,从设计到采购 焊接 组装 调试 量产。

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版