单片机c语言学会了从事什么行业(C语言要达到什么水平才能从事单片机工作)
单片机c语言学会了从事什么行业(C语言要达到什么水平才能从事单片机工作)但是兴趣归兴趣,现实是现实,面临毕业,我最大的困境还是找工作。误打误撞我接触到了单片机,觉得挺有意思,玩硬件编程最大的好处就是,能让你体会到你学的东西真的能干点实事。阅读之前打开头像,先关注不迷路,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///记得在2011年的时候我刚毕业,专业是电梯,考了高级维修证,但是对维修一窍不通,所有知识都是建立在理论层面。当时我还是比较排斥这个行业的,风险高、工资低、工作时间24小时待命。
大家好,我是林老师
C语言要达到什么水平才能从事单片机工作
最近实在太忙了…每天基本工作到晚上12点多,感觉额头凉飕飕的(发际线又变高了…)
今天趁有时间来写一篇经验分享,希望对大家有帮助哇!
阅读之前打开头像,先关注不迷路,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///
记得在2011年的时候我刚毕业,专业是电梯,考了高级维修证,但是对维修一窍不通,所有知识都是建立在理论层面。
当时我还是比较排斥这个行业的,风险高、工资低、工作时间24小时待命。
误打误撞我接触到了单片机,觉得挺有意思,玩硬件编程最大的好处就是,能让你体会到你学的东西真的能干点实事。
但是兴趣归兴趣,现实是现实,面临毕业,我最大的困境还是找工作。
干电梯是不可能了,别的行业又不会,只能盲目坚持自学单片机看能否转行成功。
当时我也不知道自己非对口专业、学历又不高的情况下,会不会有公司要。
更不知道自己学到什么程度能出去找工作,一切都是摸着石头过河,走一步算一步。
不过,最后还是被我摸对了,成功自学进入单片机开发这个行业,以前写的技术博客还历历在目。
10年前的任职要求和现在还是有挺大差别的,我找工作的时候只会下面几点:
- C语言
2. 51单片机
- 用51单片机做过智能小车项目
- Protel99看原理图
5. 插件焊接能力
如果放到现在,你只会这些,估计很难找到工作,单片机开发也不单纯的只看C语言水平。
所以,下面我根据自己这10年被面试和面试的经历来跟大家分享下,现在如果你想从事单片机开发,需要具备哪些能力比较有竞争力。
很多人以为从事单片机开发,主要是学单片机。
这是一个误区,要改,单片机只是工具,掌握这门工具是必须的,但重点不是研究工具。
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统
分类:
1、通用型
按单片机(Microcontrollers)适用范围来区分。例如,80C51式通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
2、总线型
按单片机(Microcontrollers)是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。
3、控制型
按照单片机(Microcontrollers)大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。
51单片机的结构与功能
单片机厂家和型号太多了,我们不可能每个都去学习,我们只需要学习主流的就可以了,比如说:
- STC单片机
2. STM32单片机
会用这两个,基本其他品牌型号的单片机,你1-2周就能把它用起来。
学习这些单片机最好的办法就是买开发板,把常用的外设都用起来就够了,工具会用了你就没必要去深究工具是怎么造出来的。
然后开始锻炼你的功能实现能力(简称产品思维),同时提升C语言编程水平。
这些从开发板上都无法学习到,只能做项目。
即便你没系统学过STM23,给你做几个基于STM32单片机的项目,你都用的溜溜的,我就是这样学会STM32的。
锻炼产品思维需要你多做项目,学习不同的产品功能,要如何去实现。
而锻炼C语言编程水平就不一定看你做过的项目数量了,而是看你能不能碰到一个好老师,能不能接触到一些不错的代码。
如果没有,也接触不到,STM32的标准库就是你最好的老师。
很多人不知道C语言编程的水平的好坏会体现在哪里,反正写的好坏,最终都能实现功能,从产品运行来上看不到任何区别。
确实,如果是一些小项目,不管你代码写的怎么样,都不影响产品正常运行。
但是一旦项目代码量上去以后,比如说上万行代码,编译出来有30K左右的代码量的时候,你就能体会到,C语言编程水平有多么地重要。
没有一定的水平,你根本写不出中大型项目代码,最直接的体现就是写着写着发现功能之间有冲突,然后改,改完以后又跟另外的功能有冲突,最后砸键盘泄愤!
别问我怎么知道的,我就是这么过来的。
所以,C语言的编程水平,主要体现在两个方面:
- 架构
2. 算法
架构是你整个代码的架构,是不是模块化的,移植性怎么样,扩展性怎么样。
关于架构,我自己在19年录制了一套还比较系统的教程,这个架构做过编译后60K以上代码量的项目,稳定性没问题,也解决了很多产品的痛点,可以无偿提供给大家学习,需要直接打开头像输入口令“林老师”拿就行。
算法是你程序整体执行的效率,实时性怎么样,比如用左移代替乘法执行的机器周期会更短,一般的产品对算法没太高的要求,即便整型数据你用浮点数据方式运算,都功能效果上都体现不出来。
所以,提升C语言的编程水平,首先是提高代码的架构水平,然后才是算法(如果有需要的话),毕竟算法的沉淀,不是一朝一夕的,有时候一个算法就够你折腾一个月。
除了单片机、产品思维、C语言编程能力,你还需要具备基本的电路分析能力,要会使用画图软件看原理图等等。
下面我大概来总结下,到底需要哪些能力?
- 掌握51和STM32单片机这两个工具使用。
- 掌握C语言。
- 会用AD软件看原理图。
- 懂基本的电路分析(至少要知道是什么信号和协议进到单片机)。
5. 做过2个项目。
重点就是第4,也是公司招聘最看重的,项目可大可小。
所以,想从事这个工作,不是说单纯看C语言水平的,而是你的综合能力,这个综合能力就是给你一个项目,你懂不懂分析电路原理,懂不懂软件怎么去实现它,哪怕是会维护程序也行。
如果你能达到这个水平,我相信找个工作还是没问题的,前面不要要求薪资多少,先入行,有资本了再去提要求,通常半年跳槽工资至少翻一倍。
对单片机感兴趣的朋友可以找我,我录制了一些关于单片机的入门教程,有需要的童鞋找我拿就像,免费的,私信我“林老师”就可以拿~点击打开我的头像就能领取