[IT技术] 很多人说单片机很简单。但本专业学生都认为单片机是最难学的课程。为什么学起来都这么吃力呢?

[复制链接]
呵呵! 发表于 2023-10-4 19:18:39|来自:甘肃 | 显示全部楼层 |阅读模式
光电信息科学与工程专业。公办本科。电学基础有:数电、模电、电路基础,并没有学微机原理。
学单片机原理的时候老师讲的很烂,自己看书也有很多学不懂。看网课效率好一些,但感觉还是有很多云里雾里的。网上说7天学会单片机,是真的吗?
大学生想把单片机学好,应该怎么做啊?有人知道吗?大三老狗特别着急啊。







全部回复5 显示全部楼层
dollon 发表于 2023-10-4 19:18:56|来自:甘肃 | 显示全部楼层
宝藏答案,记得点赞收藏加关注。
很多人说单片机简单?是的,对于一个在嵌入式开发奋战了十多年的老程序员而言,单片机无非就是那么几大件东西。单片机很难掌握?也对,尤其对于那些刚开始接触,比如题主提到的大学本科刚接触的同学来说,单片机挺神秘也挺复杂的。
所以说,回到问题本身。不同的人,对单片机的学习会有不同的接受情况。可以说,题主目前感觉到单片机学习存在一定的困难,是非常非常正常的事情。别看答主现在对多款单片机都能达到熟练使用的水平,但是回到本科阶段当第一次面对单片机课程的时候也感受到了同样的困难。
本科阶段的老师,说实话讲课多数以照本宣科为主,至少当年答主的单片机老师就是这样。好处就是他会详细解答书本中的任何问题,而且他也会避开一些不重要的章节,相当于帮我们筛选掉一些非关键章节,让我们的努力更加集中。
第一,多角度理解术语
初次接触单片机,会遇到很多专业的术语。比如总线,比如时钟树,其实扒开了看,很多术语知识都是以前咱们前面学过的一些知识的拔高和集合。一本书看不懂,那么我们可以从其他的教材,网络,自媒体去研究一下这个术语的含义。
就像前面提到的,答主为什么觉得单片机简单?除了因为学的多,用的多因素外,理解能力和知识范围的扩大,都会对接受新的单片机提供帮助。一个思维方向理解不了,那我们就换个思维路线,或者用以前过往的经验进行理解,等等。
第二,关注重点,在非重点领域不要浪费时间
单片机教材里,大致框架基本上都从历史演进讲起,然后是硬件架构(内部结构,外设和外部管脚),其次将会介绍如何控制这些面向客户的硬件(硬件寄存器),接下来会讲解如何用语言控制寄存器(编程语言-汇编),最后都会整理出一个具体的应用例子让大家将本书的硬件,软件串联起来。
这里面,我们不要花大力气研究历史,去刨根问题为啥51单片机的总线就8位的问题,也不要去探求51单片机为啥硬件这么简单的话题。把精力多放在寄存器、编程语言的学习上。但是,不要深究为啥这个寄存器的这个bit置位或者清零,单片机就这么运行的问题。
第三,编程能力是练出来而不是想出来的
编程语言和编程能力,和我们学习第二外语很相似。都是需要语境和不断练习的。很多学校的单片机课程都会配套实验课程,提供单片机电路板进行编码练习。千万别像答主年轻时候一样,就为了完成实验作业草草写个程序就交差跑出去踢球,珍惜难得的实验条件多验证验证其他的寄存器指令,多接触一下单片机硬件,对于理解编程语言很有帮助。
第四,老师在菜也是比你经验丰富
跟着老师的节奏来,毕竟人家也是认真备课的。先不说他的讲解如何,但是至少我们知道他讲的东西,考试肯定涉及,也是这么课程的重点。再者,一个现成的线下答疑老师,多好的机会和资源我们还不好好利用起来。
如果你想学习单片机,学习嵌入式,自学感觉困难,没有项目做,没有人解决问题,学的零散,可以关注我,跟着班,跟着工程师,一起系统学习,做项目,有问题随时解决,详细的可以看我主页,微我
songxiao530 发表于 2023-10-4 19:19:54|来自:甘肃 | 显示全部楼层
相信我,你不是学不会,只是没找对方法。
看完这篇文章,你就发现原来自己学起来并没那么吃力。
开始前点赞+收藏赶紧点起来,不然我怕你看得太入神,下次想看都找不到。
很多人学单片机从入门到入土,最核心的问题无非就是以下3个:
1.学习路径不够清晰
2.学习内容不成体系
3.学习过程没人指导
下面,我们重点针对这3个问题来讲下解决办法。
一、学习路径不够清晰
1.学习路径不清晰会有什么问题?
一会学一下电路,一会学一下单片机,一会学一下c语言,学了很多东西,最后发现啥也没学会。
还有就是在学习某个知识点的时候,突然发现看不懂了,一脸懵逼。
比如你看开发板的电路,发现某个电路看不懂。
你会以为自己电路基础太差,又返回去把模电数电学一遍。
然后看到三级管章节的时候,你又发现,妈耶,数学公式又看不懂了…
又倒回去学数学,就这样陷入死循环,浪费了几个月甚至几年都学不会。
这时,你可能会抱怨:这玩意不是人学的!!!
甚至会质疑自己:看来我不适合吃这碗饭…
你可能想都不敢想,有些人,只花了短短几个月,就实现了从入门到就业。
我,就是其中一员…不过已经是11年前的事情了。
后面,我结合自己从事开发11年的经验,把入门到就业整个学习过程标准化,流程化,让我变得可复制。
并且把这套流程教给无际单片机的学员,现在已经很多成功案例了。
2.定位
初学者一般没能力规划系统学习路径,因为刚入行经验不足,谁知道学习路径是怎么样的对吧?
这就只能参考网上一些大佬写的学习路径去学习了。
但是问题来了,他们的学习路径是否契合实际?是否有些知识点不是职位刚需?
这些问题,都将对你的学习效率起到决定性作用。
至少,我看过很多学习路径,其实很多对于刚入行的人来说,不是刚需。
比如你连一个项目都没做过,就去学RTOS,有什么意义?你的认知水平肯定只是表面的,理解不了RTOS的本质。
如果你能自己写个小系统,不比你仅仅会用RTOS更有含金量吗?
编程思维和水平才是单片机工程师后期的核心技能。
回到正题,我们想解决学习路径这个问题,首先要问一下自己:我学单片机来做什么?
我相信大多数答案都是找份工作,纯兴趣的都是少数。
所以,第一步,你要知道学这门技术对应的职位是什么。
我们给学员的定位非常精准,就这几个:单片机工程、mcu工程师、stm32工程师、嵌入式工程师、电子工程师
然后接下来的事情就会变得简单,直接到招聘平台搜相关职位,看职位需求就可以了。




我以前写过一片单片机入门到高级开挂学习路径,里面讲的很详细,这里就不在阐述了。
学习路径规划好以后,我个人建议是列一个系统的表格:




可以参考我们无际单片机给学员规划的系统学习路径格式。
二、学习内容不成体系
1.内容规划
学习路径规划好以后,其实你也知道大概要学哪些内容了。
比如说入门学习基础电路、然后再学c语言。
基础电路要学习什么都列出来,C语言要学习什么也列出来。
接下来就是按部就班,每天学什么内容,给自己定一个目标,按天推进。
坚持几个月,你都将会发生质的变化。
这样最大的好处就是,你不会学着学着就迷茫了,这就是贯穿你整个学习的地图,地图丢了你就寻不到宝了
就像你和你女朋友出去吃饭,你问她:想吃什么?她说:随便。
然后你点了一个她不爱吃的菜,她对着你一顿吐槽。
你一脸懵逼,满脸郁闷。
如果她事先精准地告诉你,她想吃麻辣小龙虾,就不会有后面的问题了,学习也是一样的,一定要精准系统化
2.内容收集
知道学什么内容,接下来就是收集了教程了,这个应该不用我教你了吧?
小破站和度娘基本就够用了。
3.问题单点突破
还记得我文章最开头说的吗?
比如你看开发板的电路,发现某个电路看不懂。
你会以为自己电路基础太差,又返回去把模电数电学一遍。
这是一个致命的错误,正确地做法是单点突破
比如说,我学到电容,学完理论还是不知道干嘛用的。
那你可以去针对这个问题,去搜电容的作用。
所有平台都尝试一遍,把所有关于电容作用的文章、视频都收集起来看一遍,你就懂了。
千万不要傻乎乎又回去重新把模电数电学一遍,屁用没有。
三、学习过程没人指导
我到现在都忘不了,自学过程那种孤独、枯燥、问问题石投大海的滋味。
加了很多技术交流群,简单的问题有人回答,但是大多数都是没人鸟我的。
在社会混迹多年以后,我才明白,自己问的方式不对。
指导这个,如果你想实时,不花钱基本不可能。
所以没什么好的解决方法,就是砸钱找资深的工程师带最快。
别忘了,时间也是很宝贵的成本

最后彩蛋时间!!!

最近有同学跟我要单片机的资料,我特意花一个月时间,总结了我10年产品研发经验收集了这份史上最良心、最硬核、最实用的「单片机入门到高级教程+工具包+22个热门项目」,无偿分享给大家。




资料包几乎覆盖了C语言单片机模电数电原理图和PCB设计单片机高级编程等等,非常适合初学者入门进阶

除此以外,再含泪分享我压箱底的22个热门开源项目,包含源码+原理图+PCB+说明文档,让你迅速进阶成高手





据说有小伙伴靠这份顺利入职BAT,所以一定要保存起来好好学习!

后期我也会组建一些技术交流群,让大家能认识更多的大佬,有个好的圈子,你对行业的认知将在最前沿

大家想要上面「单片机入门到高级教程工具包 + 进入单片机交流群」,可以点击下方⬇️卡片看文章开头领取

无际单片机:单片机入门到高级开挂学习路径(附教程+工具)
或者可以找「无际单片机」全网同名的。

下面是更多无际原创个人成长经历、行业经验、技术干货

电子工程师的能力有多可怕?为什么我学了几天 STM32 感觉一脸茫然?谁能教教我怎么学单片机,先学什么,怎么入门?Stm32学了好久了,感觉独立做项目还是有力不从心的感觉?无际单片机:单片机怎么实现模块化编程?思维+实例+系统教程(实用程度令人发指)无际单片机:c语言回调函数的使用及实际作用详解无际单片机:手把手教你c语言队列实现代码,通俗易懂超详细!无际单片机:新手学习单片机最常见的六大误区,你进坑了吗?


绿林宿梦 发表于 2023-10-4 19:20:43|来自:甘肃 | 显示全部楼层
调别人写好的库简单,明白底层原理难
春天 发表于 2023-10-4 19:21:41|来自:甘肃 | 显示全部楼层
很多人说单片机简单?是的,对于答主这样一个在嵌入式开发奋战了十多年的老程序员而言,单片机无非就是那么几大件东西。单片机很难掌握?也对,尤其对于那些刚开始接触,比如题主提到的大学本科刚接触的同学来说,单片机挺神秘也挺复杂的。七天学会单片机?个人觉得可行。但是必须要有基础,零基础的话顶多混个脸熟。
所以说,回到题主的问题。不同的人,对单片机的学习会有不同的接受情况。可以说,题主目前感觉到单片机学习存在一定的困难,是非常非常正常的事情。别看答主现在对多款单片机都能达到熟练使用的水平,但是答主回到本科阶段当第一次面对单片机课程的时候也感受到了同样的困难。


答主是自动化专业出身,单片机课程是当年自动化专业重要的必修课之一。虽然在很早之前答主曾经基础过单片机,也看过如何编程和使用。但是那时候终究是以玩为主,并未深究原理。所以答主一样,面对单片机课程中,各种深入的原理和知识点,一样感觉到了理解的困难。但是,后面掌握了正确的学习方法后,也逐步开始喜欢上单片机,接受了单片机课程(即使那时候,答主对C51的编程还是以汇编语言为主)。
有了C51的基础,再到后面的MSP430系列,STM32犀利等等单片机,答主基本上不会再觉得有初见C51时候的困难感觉。毕竟有了基础,理解力的提升是一个方面。关键在于:单片机的学习掌握了一定的方法和技巧。
<hr/>明确了谁第一次学单片机都觉得困难的问题,题主完全可以卸下心理包袱。咱们继续来看,针对大学本科的课程,我们来如何学习单片机的问题。本科阶段的老师,说实话讲课多数以照本宣科为主,至少当年答主的单片机老师就是这样。好处就是他会详细解答书本中的任何问题,而且他也会避开一些不重要的章节,相当于帮我们筛选掉一些非关键章节,让我们的努力更加集中。
>>> 第一,多角度理解术语
初次接触单片机,会遇到很多专业的术语。比如总线,比如时钟树,其实扒开了看,很多术语知识都是以前咱们前面学过的一些知识的拔高和集合。一本书看不懂,那么我们可以从其他的教材,网络,自媒体去研究一下这个术语的含义
就像前面提到的,答主为什么觉得单片机简单?除了因为学的多,用的多因素外,理解能力和知识范围的扩大,都会对接受新的单片机提供帮助。一个思维方向理解不了,那我们就换个思维路线,或者用以前过往的经验进行理解,等等。
>>> 第二,关注重点,在非重点领域不要浪费时间
单片机教材里,大致框架基本上都从历史演进讲起,然后是硬件架构(内部结构,外设和外部管脚),其次将会介绍如何控制这些面向客户的硬件(硬件寄存器),接下来会讲解如何用语言控制寄存器(编程语言-汇编),最后都会整理出一个具体的应用例子让大家将本书的硬件,软件串联起来。
这里面,我们不要花大力气研究历史,去刨根问题为啥51单片机的总线就8位的问题,也不要去探求51单片机为啥硬件这么简单的话题。把精力多放在寄存器、编程语言的学习上。但是,不要深究为啥这个寄存器的这个bit置位或者清零,单片机就这么运行的问题
>>> 第三,编程能力是练出来而不是想出来的
编程语言和编程能力,和我们学习第二外语很相似。都是需要语境和不断练习的。很多学校的单片机课程都会配套实验课程,提供单片机电路板进行编码练习。千万别像答主年轻时候一样,就为了完成实验作业草草写个程序就交差跑出去踢球,珍惜难得的实验条件多验证验证其他的寄存器指令,多接触一下单片机硬件,对于理解编程语言很有帮助
>>> 第四,老师在菜也是比你经验丰富
跟着老师的节奏来,毕竟人家也是认真备课的。先不说他的讲解如何,但是至少我们知道他讲的东西,考试肯定涉及,也是这么课程的重点。再者,一个现成的线下答疑老师,多好的机会和资源我们还不好好利用起来。
<hr/>综上所述,刚开始接触单片机课程感觉难非常正常,别有啥心理负担。按照步骤来,合理分配时间和精力,多角度学习,多沟通多请教,最重要的是勤加练习。一定可以掌握单片机课程的精髓,为后续的就业和深造打下基础。
感谢您的阅读,我是snowdream,一个专注自动化和嵌入式技术,喜欢金融投资的国企人。
Eric_H 发表于 2023-10-4 19:22:03|来自:甘肃 | 显示全部楼层
作为一个跨多个专业的从业者,学习、使用并从事相关的教学多年,有一些小的想法,正好借这个问题跟大家分享一下。
首先是对学习单片机是干什么的理解。学单片机实际上就是和单片机进行交流,我们在和人交流过程需要注意的事项,在单片机学习上也是需要注意的事项。交流需要依赖语言,因此学习单片机的第一要务是学好C语言,C语言熟练了,敢写程序跟单片机交流了,能力自然而然就提高了。
另外就是要勤交流、多交流。很多人光看书,不动手写程序,看的东西自己都不信,这样是很难真正理解单片机,单片机的应用能力也得不到提高。
再一个就是最好要学习3种或更多的单片机,但是主攻一种。这样了解了单片机的共性和个性,总体认知就会上升一个台阶。
下面是20年前主攻的一个单片机,和现在的arm的功能实际上已经相近了。


初学者可以考虑从学习Arduino开始入门单片机,会更有意思一点。我有一个Arduino的专栏,欢迎查阅:
爱上Arduino-树莓派 Pico

快速回帖

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

本版积分规则