自学单片机难吗?单片机编程教学怎么选?
现在我们随便拿一个智能电子产品,不管是家里电器还是玩具,又或者是飞机大炮,基本都有单片机的应用。
市场需求大到让人发指,很多人以前完全不知道单片机是什么东西,自从接触到以后激发了强烈的兴趣。
每个男人心中都有一个”钢铁侠”梦,都希望自己能通过技术去改变世界。
不过,想要达到这种程度,我觉得要从小培养以外,还要异人的天赋才行。
这几年我看了很多大佬,能力超强,其实他们也是从零基础开始,我们碰到的问题他们当初也会碰到。
千万不要被电影误导,发一场烧就能成为天才,吃一颗大力丸就能改变基因。
要想成为大佬,自己必须一步一个脚印,从基础开始,以3、5、10年的周期去看,你能坚持下去肯定也是大佬。
到那个时候,你或许会到达另一个层次,物质已经不是你的追求了。
自学单片机也一样,技术最怕就是急功近利,这样你永远只能浮在表面,深入不到本质的东西。
典型的就是很多新手直接去学习stm32,因为stm32很多产品都在用,他们也天真地以为自己学会stm32就能做这些产品。
最后你浪费了1年时间也学不会,即便在开发板上学会了stm32,你依然做不出那些产品。
单片机对于我们这些老工程师来说,只是一个工具,stm32的定位是帮助工程师快速开发出产品而不是给新手入门的。
Stm32资源丰富,也很复杂,所以原厂提供固件库方便工程师快速把单片机资源用起来,不需要深入到寄存器配置。
如果你没学过51单片机,你可能连配置寄存器都没听过,虽然能把stm32外设用起来,但是脱离了固件库或者改成hal库了,你完全失去了开发能力,这就是典型的基础知识缺失。
而51单片机不同,你想用单片机的资源,对不起,你需要自己去配置芯片的寄存器。
这个时候你需要去查询芯片手册的寄存器说明,每个位置1和置0是什么意思。
虽然你只是在学习单片机,实际上你学到了很多附加的知识,比如说如何看数据手册。
这些都是作为一个单片机开发必备的技能。
一、自学单片机难吗?
我认为一点都不难,因为我做了这个行业10年,哈哈。
对很多人来说太难了,我们无际单片机编程最近有个刚毕业不久的学员,曾经自学了快2年都学不会。
还有一个零基础40多岁的学员,我们帮他一对一评测好基础,然后规划好学习路线以后,1个月就能独立开发很多程序了。
其中的差距在哪里?
我认为就是以下几点区别:
学习路径我们的学习路径都是根据职业定位来规划的,不同的职业定位学习的内容也不同。
规划时我们会结合自己从业10年的经验,只学工作常用到的知识,用不到的绝对不去浪费时间。
很多自学者就是学习路径不清晰,因为他们连定位都不清晰。
举个例子,很多人只知道嵌入式,但是不知道嵌入式其实细分很多方向,比如说单片机开发、ARM+Linux开发、FPGA/DSP开发等等。
不同的方向对应不同的职位,学习的内容也是天差地别。
如果你连这个都搞不清楚,5年都学不会。
学技术不像学其他,错误的路你怎么磕磕碰碰都能碰到重点。
技术弯路太多了,稍微走错就是致命性的错误,比如说明明单片机开发不用学Linux,你跑去学,这就会浪费至少几个月时间。
如果每走一步你都这样错一下,5年学不会真的很正常。
2.学习过程没人指导
即便学习路径正确,自己学的话肯定也会走弯路。
举个例子,我们无际单片机编程有个学员学习的进度总是比别的学员慢一点,我就好奇他是怎么学的。
后面深入聊完,我发现他特别爱钻牛角尖,我们在学stm32的时候,一般是基于固件库开发,不需要去深入理解寄存器如何配置。
而他非要去研究,生怕自己研究不透,到时候出了问题不知道怎么解决。
如果你也这样去学,那学完自己都老了,我当初压根都没去系统学过stm32。
只是有一次有个新产品用stm32的单片机做,我就在网上买了开发板,已经是9年前了,那个时候开发板还没配视频教程的。
就配了每个外设的使用例程,然后我就把这些例程复制到自己产品工程里,改一下参数再测试一下。
比如说改IO口,改定时器中断频率,改ADC通道等等。
就是这样一步步测试出来的。
最后产品做出来了,对于stm32这个单片机的很多资源我也还是不知道怎么用的,但是产品照样也稳定。
后面慢慢基于stm32的产品做多了,对整个固件库也就很熟悉了,甚至能通过固件库学到面向对象的编程思维和技巧等等。
所以,我后面也总结了其实通过项目去学习stm32单片机是最快的。
通过开发板,即便外设你都用起来了,但是你根本不知道这些外设都能用在什么地方,一给你做项目你还是一脸懵逼。
二、单片机编程教学怎么选?
市面上也有很多关于单片机编程的培训,根据我个人经验来说大多数都比较鸡肋。
就是你学完能达到的程度就是开发板水平,这样还不如自己花个100多块买个开发板对着视频学,还节约一大笔费用。
我认为首先要了解学员的基本情况,我们无际单片机编程会为每个新学员进行基础的评测,评测内容也是我们这么多年总结工作中必备的基础知识。
比如说零基础的学员,那首先要学习c语言和硬件基础。
针对单片机的c语言教程我们也是开源的,大家可以找无际单片机编程拿,或者直接到小破站看,相对来说我们的教程更偏向实际开发。
学完c语言和电路基础再学习单片机,直接通过项目去学习。
虽然学习可能没开发板这么系统,但是学员目标很明确,也知道学习的知识实际用在什么场景,学完又有了项目经验为自己找工作做好铺垫,一举多得。
多做几个产品你基本对单片机都很熟悉了,即便有些资源没用过,你也知道怎么去把它用起来。
这种以实际项目驱动去学习的会更靠谱一些,也更契合企业需求。
新手学单片机如何入手,单片机入门培训课程有哪些?
有时候会收到一些小伙伴的咨询:零基础可以学会单片机吗?
这句话听起来挺搞笑的,谁不是从零基础开始学起的?这又不像富二代一样出生就有资本直接起飞。
很多事情,你做不好,往往是因为你的欲望不够,你只是单单纯地想得到它,但是你并没有付出过真正的努力。
真正的努力不是你看一本书,像看电影一样把视频教程浏览一遍。
我当初在自学单片机的时候也很痛苦,没人带,教程也没现在丰富 (10年前)。
碰到了问题,就只能在一些技术论坛求助,但是大多数都是石投大海,有时候一个小问题要解决2天。
过程很迷茫绝望,内心总有两种声音在较量:坚持or放弃。
最后我还是硬着头皮撑了下去,因为我很渴望自己能学会这门技术的,做一些智能控制的产品,跟每个人心中都有一个”钢铁侠”的梦一样。
从0-1很难,从1-100相对简单,从100-1000又很难,仔细一品还真有点人生的味道,哈哈。
网络上很多关于新手如何入门单片机的文章,写得五花八门,文章很多,原创很少,都是相互抄袭,有些真正的原创又没把入门的精髓表达清楚。
我一直认为,只有经历过的人,才能懂得。
扯了这么多,下面结合我这10年的从业经验,分享下新手该如何上手单片机,看完没收获你打我!
一、学习单片机必学的几个技术
1.基础电路
这部分最多人走弯路去死磕模拟电路,这也很正常,毕竟只有从事过实际产品开发的才知道,模拟电路用得并不多。
很多人可能会反驳,模电一定要学,不然注定做不出稳定产品。
我并不是说模拟电路不用学,而是新手学到什么程度的问题,我个人建议最多学到负反馈放大电路就够了。
现在很多电路都是集成化了,即便不集成化,电路这块也是由硬件工程师去设计。
我们定位是单片机软件开发,一般不需要去关心电路的细节实现方法,只需要知道输入到单片机是什么协议信号,输出什么协议信号控制外围电路就够了。
信号基本就是输出高低电平或者PWM,协议基本都是USART、SPI、IIC用得最多。
还有最重要的一点,如果你没一定的产品经验,一般很难搞懂教程里那些复杂的电路。
先学会基础,掌握基本电路分析能力,再通过实际产品去巩固。
等有了比较丰富的产品经验再回过头去研究视频教程上的理论,这才是正确的成长方向。
所以,基础电路学到什么程度,我给大家一个量化的标准就是前期看懂51开发板原理图和stm32开发板原理图。
2.c语言和51单片机
单片机和c语言是同步学习的,我们在学习c语言的过程中需要在单片机开发板上面去实践。
它们之间是相辅相成的关系,前期建议从51单片机开始。
C语言学到指针,51单片机把所有的外设都学完,最后做一个小项目锻炼下自己的代码整合能力。
做到这些,基本上就算是已经上手了,接下来你可以继续做几个51单片机的项目,也可以进阶到stm32单片机。
二、最后再说一个新手的误区
就是着急过度到高端的芯片,比如说从51过渡到32。
其实你基础没打好,过度过去也是学得很费劲的,不管是51还是32,或者任何单片机其实都只是一个工具。
程序才是一个产品的灵魂,如果你用51单片机做过5-10个产品。
再过度到32,这个时候根本不用刻意系统地去学习,直接拿个开发板,把库函数对应每个外设的例程拿出来一看,1-2周基本就能把32常用外设调出来。
相关问答
对 单片机编程 要用什么软件?单片机编程如何快速入门?你好,我就是做单片机嵌入式软件开发的,对于第一个问题,单片机开发一般都是用C语言,单片机的开发平台即编译器通用的有keil、IAR、eclipse等,现在eclipse也支...
没有任何C语言基础,如何学好 单片机 ?这个问题就像是问:我不会用刀,怎么切好生鱼片?C语言是单片机开发的工具,是必须要掌握的。当然工具不只一种,汇编也是可以的。想学好单片机,计算机语言工具...
单片机 是怎样 编程 的?单片机编程是将计算机指令转换为可执行的二进制代码,并将其储存在单片机中,以便控制硬件执行任务。编程的过程包括选择编程语言、编写代码、编译代码以生成可...
labview能给 单片机编程 吗?是的,LabVIEW可以用于单片机的编程。LabVIEW的嵌入式模块提供了对一些常用单片机的支持,并且可以根据需要添加其他单片机的支持。使用LabVIEW可视化编程环境,...
二十六岁高中学历自学了一点c语言想 培训单片机 开发怎么样?我不建议。当然不是说不行,而是难度大收益低,性价比不行。可能你对这一行不是很了解,我大概讲讲。首先讲讲你要从事单片机开发这一行大概要学哪些东西。1,...
单片机 系统的开发步骤是什么?1先根据需求设计最基本的硬件电路图,(检查无误后)2按最基本的硬件电路图,使用面包板,电子元件,搭建实际电路。3按需求编写单片机的软件,可以使用仿真...1...
单片机 c语言 编程 入门基础知识?单片机C语言编程入门基础知识包括:-了解单片机的基本结构和工作原理。-掌握C语言的基本语法和结构。-熟悉单片机常用的外设接口和功能。-掌握单片机...
8脚 单片机 烧写程序步骤?第一步、先安装AT89C51单片机的开发工具软件,如KeilUV2第二步、在Keil中创建51单片机的工程,并编写相应的控制代码,之后生成HEX文件第三步、打开51单片机专用...
单片机 工程师证怎么考?考试大纲一﹑关于“单片机高级技术证书”考试内容和有关说明随着单片机和电路设计应用的日益广泛,学习和使用单片机以及电路设计者日渐增加,因此对单片机和...
51 单片机 ,stm32,arduino都是用什么语言进行 编程 的?51单片机,STM32单片机用汇编或者C语言,现在基本都用C语言编程,Arduino有自己的编程环境,用户也是用C语言编程。51单片机的编程51单片机进入中国比较早,在...51...