电子产业一站式赋能平台

PCB联盟网

搜索
查看: 45|回复: 0
收起左侧

真希望学嵌入式前有人告诉我这10件事!

[复制链接]

276

主题

276

帖子

1826

积分

三级会员

Rank: 3Rank: 3

积分
1826
发表于 6 天前 | 显示全部楼层 |阅读模式
关注公众号,回复“入门资料”获取单片机入门到高级开挂教程
开发板带你入门,我们带你飞

文 | 无际(微信:2777492857)
全文约2506字,阅读大约需要 10 分钟
总有人问:“学嵌入式开发难吗?我的情况是这样这样,你看我有机会入行吗?”。
这些问题没有标准答案,但如果你能早点明白以下这些事,或许能少走几年弯路。
"别用战术的勤奋掩盖战略的懒惰"——这句话完美诠释了大多数嵌入式新手的困境。
14年前当我电气毕业自学转嵌入式开发时,根本想不到这个领域的规则竟如此不同,希望以下是对你价值2万学费的经验总结:

一.选择赛道比死磕技术更重要
很多人在51单片机阶段就迷上"技术救世主"理论,其实嵌入式是"行业+技术"的双轨赛道。家电类和医疗设备、无人机、机器人的工程师都用C语言,但薪资可能差2-4倍。
刚入行时我也沉迷于追求复杂技术,觉得Linux比单片机高级、RTOS比裸机牛逼。后来才发现,医疗、汽车、军工、物联网行业的嵌入式工程师,技术难度差不多的岗位,工资可能相差30%-50%。         

         
选赛道要看几点:
①产品利润高。
②增量市场,嵌入式技术的天花板,70%是行业决定的。
③新型技术,比如AIOT,能够覆盖各行各业。            
虽然有些赛道需要高学历作为门槛,但是产业链不同,对学历要求也不同,比如有学历走上游,像做算法这种,学历不佳可以到下游做应用。
  
二.1个实战项目=100小时理论课
项目才是真正的老师,看100G教程,不如做3个项目,每个项目从原理图设计、驱动开发、协议解析、业务逻辑功能开发、代码整合几个维度,几个项目下来提升都是前所未有的。
你以为看懂程序就是会编程?天真!看懂和会写完全是两码事。
会写以后,代码写得如何,有分几个阶段水平,以常见的多级菜单设计为例:
新手思路:用if-else编写所有逻辑
中级思维:采用状态机管理菜单层级
高阶架构:使用函数指针+数据结构抽象实现动态菜单加载。

ueuc1fywxvj6403499907.png

ueuc1fywxvj6403499907.png

并且用链表这种数据结构,把各个菜单建立联系,方便各菜单的管理。   

vausltjhcyt6403500007.png

vausltjhcyt6403500007.png

我们无际单片机项目3和6的多级菜单,就是采用这种架构。      
想进阶架构这块能力的,可以找我安排教程。

ntrwcxiewjm6403500107.png

ntrwcxiewjm6403500107.png

真正的高手,都是通过项目训练出来的,比如:
1.完成一个带CRC校验的自定义串口协议
2.实现远程固件更新
3.用RTOS管理多个传感器任务。
没有经历过半夜对着BUG失声痛哭几次,很难真正理解代码背后的逻辑。
     
三. 技术底层都是相通的
很多新手纠结学STM32还是ESP32,搞Linux还是RTOS。其实掌握了核心原理,换平台也大同小异:
1.所有单片机的GPIO、中断、定时器逻辑都一样。
2.I2C、SPI、UART不管在汽车电子和物联网设备都是同一套规则。
3.好的程序架构思维在不同单片机和项目中都是通用的。
         
四. 低功耗设计是个系统工程
我们做过很多低功耗项目,碰到的问题也是千奇百怪的,明明芯片支持休眠模式,实测功耗却远超预期,最后发现是某个未使用的IO口没输出低电平。
血泪教训总结:
1.选型阶段就要锁定低功耗MCU
2.睡眠模式下必须关闭所有外设时钟
3.主频别动不动就设置72MHz,20MHz能跑的别浪费。         
记住:省下的每一毫安电流,都能让客户续杯多喊你一声“大佬”。
         
五. “刻意练习”才是开挂的密码
见过太多人收藏了50G学习资料却连按键消抖都写不利索,核心问题在于:
1.不要只看开发板例程,尝试删掉所有代码自己重写。
2.用示波器验证I2C时序图和程序逻辑是否一致。
3.故意制造BUG再练习通过Debug定位问题。         
真正的成长,往往发生在“看着视频都会,自己动手全废”的痛苦时刻。
         
六.别轻易被知识付费割韭菜
我是很支持知识付费的,我现在学什么东西,能付费绝对不自己瞎摸索,包括现在我也很想花钱找人,解决目前的瓶颈,奈何水货骗子太多,很难辨别。      
市面上大多数的嵌入式课程都是学得多,不深入,学费也动辄上万。
其实新手学习的正确姿势是:
1.C语言和单片机基础用开发板自学。
2.直接购买商业级项目练手,这才是企业真正需要的能力。
3.花钱找高手解答关键问题。         
记住:你缺的不是教程,而是能逼你动手的真项目。
         
七. 熬不过“黑暗5个月”就别入行
转行的第一个拦路虎不是技术难,而是:
1.每天对着没反应的代码怀疑人生
2.看别人高谈阔论ARM内核调度却听不懂
3.简历投了30份都石沉大海         
这时候需要点“傻劲”,我自己当年就是强制规定每天必须写够200行代码,哪怕是流水灯这种很LOW的代码。
         
八.调试能力
老鸟和新手的本质差距在调试思维:
1.分层定位法:先硬件后软件、先外设后核心
2.三板斧工具:示波器看波形,万用表看电流,仿真器看寄存器值。
3.防死机设计:项目调试阶段,让一个LED循环闪烁,防止程序死机了不知道,后面版本迭代多了更难找BUG。

九. 广度和深度要动态平衡   
初期别贪多求全:
1.先把C指针和结构体玩出花
2.啃透一种单片机外设开发流程
3.完整实现一个带通讯协议的设备控制         
等工作后再拓展:
4.数据结构、算法、编译器原理、等
5.行业特定协议(如Modbus、CANOpen...)
6.供应链和量产落地经验
         
十. 你最大的敌人永远是昨天的自己
嵌入式行业有句黑话:“三年工作经验可能是把一年经验重复三次”。
避免成为螺丝钉的关键是:
1.工作之余,一定要自己多找渠道保持学习,提高技术,刷新认知都可以。
2.多思考和尝试多技术融合(比如嵌入式+AI)
3.关注行业展会和技术白皮书更新         
记住:真正的竞争力不在于写过多少万行代码,而在于能解决多少别人解决不了的问题。
最后说句大实话:嵌入式这行确实难,但难的从来都不是技术本身,而是如何在无数个调不通BUG的深夜里,依然相信明天能点亮那盏LED灯。如果你正在这个阶段,恭喜,至少说明你在上坡路上。
end

sjgo5j23js16403500207.jpg

sjgo5j23js16403500207.jpg

下面是更多无际原创的个人成长经历、行业经验、技术干货。
1.电子工程师是怎样的成长之路?10年5000字总结
2.如何快速看懂别人的代码和思维
3.单片机开发项目全局变量太多怎么管理?
4.C语言开发单片机为什么大多数都采用全局变量的形式
5.单片机怎么实现模块化编程?实用程度让人发指!
6.c语言回调函数的使用及实际作用详解

7.手把手教你c语言队列实现代码,通俗易懂超详细!

8.c语言指针用法详解,通俗易懂超详细!
回复

使用道具 举报

发表回复

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

本版积分规则


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