单片机交流
直播中

lalajie

8年用户 1222经验值
擅长:模拟技术 存储技术
私信 关注
[问答]

单片机入门学习的框架

如何去系统地学习单片机呢?求大神分享一些经验

回帖(1)

马秀英

2021-11-2 16:10:26
  我来终极下这个问题。
  本人2011年自学单片机成功跨行,那个时候做的第一个项目是平衡小车,现在看起来依然回忆满满。
  
  那年我和很多应届生一样,面临着毕业危机,不知道出来该干什么,家里又没矿,一切只能靠自己。
  学校混了几年,除了学会打游戏,没任何特长。
  后面想着去做程序员吧,工资高,误打误撞我接触到了单片机,鬼知道我第一次自学的编程语言是java。
  那时候又没钱去报培训班,就在网上看了很多入门的文章,不得不说的是,很多文章真的很坑,明明两点一线直线最短,非要给你绕个山路十八弯。
  汇编、C语言、微机原理、各种仿真工具、各种仪器仪表、熟悉各种模电数电、数学英语水平要好等等,还有一个说要学C++的,看的我哭笑不得,这样学的会才怪!。
  今天我给大家分享下自己的经验,保证接地气,初中文凭学起来都像开挂一样!
  很多人学不会的原因大多是定位不清晰、学习路径和方法不对,动不动就想着吃透某个知识点。
  比如说去吃透数电模电,吃透微机原理等等。
  这种理论的东西在入门的时候去深究毫无意义,反而会加大你学习的难度和周期,让你信心受挫。
  因为你当下的经验和认知根本理解不了,即使理解了也只是表面的,你根本不知道实际产品用在哪里,不知道学来有什么用。
  做单片机开发其实细分两个职位:硬件工程师和单片机软件工程师。
  为了保证开发周期,一般不会让你硬件软件全干,我们最开始的定位应该是单片机软件工程师,因为这个比一般的硬件工程师工资高。
  后面如果想让自己更牛逼,那就干全栈(硬件软件通吃),这个只能经过大量产品实战,靠开发板是学不来的。
  有了这个定位之后,接下来再进一步去过滤精简需要学习的内容。
  我把整个入门学习分为3大块:
  1. 基础电路
  一般涉及到的知识就是欧姆定律、单片机最小系统、LED驱动电路、按键检测电路、ADC检测电路、三极管开关电路等等。
  主要还是数字电路比较多,有一个量化标准就是,你能看懂51开发板的原理图其实就够了。
  把重点放在C语言和单片机上面去。
  2. C语言
  单片机可以用汇编,也可以用C语言编写程序,汇编用的比较少,只学C就够用了。
  C语言和单片机的学习应该是同步的,比如说会基本数据类型+条件语句就可以在开发板上点亮一个LED了。
  这是比你在黑框里显示”Hello world”有趣的多?
  你会觉得你学的东西真的能干点实事,很多人缺的就是这种即时反馈感,或者成就感。
  初步尝到甜头后,你会更有动力往下学,下一步我要实现流水灯功能,再下一步我要实现数码管显示数字。
  慢慢地你越学越深,学的越深你会发现能做的东西也更牛逼,形成一个良好的学习闭环。
  3. 单片机
  单片机我建议从51开始学习,很多人1级上来就干stm32,最终花费的时间更多。
  51我提倡系统地学习,就是每个外设、每个寄存器都必须要接触到并且实践。
  因为51的寄存器很少,基本不会花你太多时间,但是收获是很可观的,学完你能对单片机有一个系统的认识。
  后面再换别的单片机,你就能得心应手了。
  现在STM32的需求也很多,所以STM32也是必学的,但是学STM32一定要把它当做一个工具,而不是一门技术。
  我们的目标是利用这个工具把产品快速地做出来,ST出固件库的初衷也是如此。
  所以,我们只关心怎么调库把外设用起来就行了,至于怎么配置寄存器一律不用管。
  以上就是对单片机入门学习的框架,看完是不是瞬间觉得简单很多?方向也更明确了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分