老工程师对嵌入式学习之51单片机的一些心得体会

很多人问我嵌入式发展如何,单片机应该如何学习,今天就给大家带来我的一个朋友心得和经历。本人还是学生,现在大三,接触单片机一年多以来,从最基础的51开始,到更高级点的MSP430,一直到现在刚开始上手的STM32,编过的程序不算多,但加起来怎么也有上百个了,做过的东西仔细数数,能拿出手来算算的上是个样的也不下十个,算是小有所成吧。

但今天,我却发现,这一年我一直在走一条歪路。
先说一下情况吧,是这样的,最近同学几个合伙做个小项目,不算复杂,跟市面上的工程项目完全没法比,用难再需要使用的一个芯片是老师给的,从没用过,没有历程,至于一份电子版的数据手册,一切的一切都只能是从头开始,从底层开始,我们几个斌开始从最底层的逻辑时序、寄存器操作开始,但经过几天的研究,确实毫无效果可言。
为此,我们几个郁闷了好长时间,开始疯狂的上网搜资料,拷代码,却终究是不得而返,还让老师骂了一顿,因为这个项目是我们主动要求老师放给我们的,结果却耽误了工期。
我次我们几个人很受打击,最终决定大家一起静下心来分析分析,到底我们败在了什么地方?
最后总经过两天的思考、讨论、总结、检讨···,我们发现了问题的所在,想来想去,这估计是很大一部分初学者正在面临的一个“瓶颈问题”,所以,由我净这个讨论的结果发布出来,希望与更多的人交流、分享、提高、共勉。
下面先总结一下我们失败的几点原因:
1、“都是开发板惹的祸”,可以说从开始学习单片机,哪怕是最基础的51、以致后来的MSP430、ARM,我没从未离开过开发板,而且这长达一年多的时间,养成了我们对开发板极大的依赖,尽管自己焊过51最小系统、绘制过430最小系统板,但都是参考的别人已有的电路图,连最基本的电路基本都没分析过,为什么要在这几个电阻,该加个多大的,不加会怎么样,太大了/太小了会有什么后果,等等此类问题,我们从未分析过,全是COPY、COPY、再COPY,以致自己做过的东西不少,能力却未曾提高。
2、“全是例程误导我”,我们买来的开发板,往往都会带有丰富的例程,通常这也是卖家吹嘘、比拼的地方,但就是这些附带的历程,让我们与底层的开发绝缘了,有了例程,我们不用再一个代码一个代码地敲键盘,不用再去研究那些器件的数据手册、通信接口、寄存器、内部原理、以及很多商家没给我们加进去的功能,哪怕是将这些程序改到别的地方,我们也不过是在宏定义里改两个引脚配置而已,从未尝试过从底层写驱动、敲代码、写函数,从未尝试过快平台移植代码,开发呢些没用过的功能等等。
3、“现实环境太无奈”,这跟上面两个说的是不同的方面,我们都是大学生,大学里现在吵得火热的“大学生就业难”、“你是考研还是就业”、“你报XXX培训班了吗”“你考四六级证了吗”等等,好像上大学就是为了干这些,似乎没有这些,你就会陷入“毕业即失业”的困境。面对这些外来的干扰,越来越多的学生坐不住了,我们这些人也一样,尽管一直在学习自己的爱好,但当被人问得多了的时候,心里也难免会发毛、会害怕,从而导致一年来真正静下心来学这些东西的时间越来越少。

大体也就总结怎么多吧,经过这次失败,也算是教训深刻吧,现在才大三,到大四毕业,还有近两年的时间,还不算太晚,再说将来的路还长,现在发现这些,应该不算晚吧。大家有遇到同样问题的、要类似迷茫的、要好的建议意见的,欢迎回帖交流,大家一起共勉。当然这边你也留下企鹅,或者主动私我。楼主这些年也存了不少干货,相信对于你现在这个状态肯定会有好的建议。

原文地址:http://blog.51cto.com/13573658/2084471

时间: 2024-10-16 11:58:07

老工程师对嵌入式学习之51单片机的一些心得体会的相关文章

十年研发经验工程师的嵌入式学习书籍大推荐

转自:http://www.51hei.com/bbs/forum.php?mod=viewthread&tid=26458&page=1&authorid=62883 从事嵌入式研发行业十年,认为学习就是要不断的吸纳知识,在研发过程中,经常会遇到一些问题,这种发现问题并解决问题的过程就是进步. 为什么选择学习嵌入式? 嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一,同时也是当今IT领域仅存的几个金领职位之一.当前的中国IT人才面临严重的“后继乏人”, 而且这种缺口由于培

第四章学习小结 串的模式匹配 解题心得体会

串的模式匹配 解题心得体会 关于串,模式匹配是其一个很重要的问题.针对这个问题,书上讲了两种模式匹配的算法,即BF算法和KMP算法,下面针对这两种算法的实现谈谈我的心得. 一.BF算法的探索 [错误代码1] #include<iostream> #include<string.h> using namespace std; typedef struct{ char ch[1000002]; int length; }SString; void Index_BF(SString S,

想学嵌入式开发怎么学?看这份超详细的嵌入式学习路线

嵌入式学习是一个循序渐进的过程,如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式Linux方向,关注这个方向,大概分3个阶段: 嵌入式学习的几种线路图 1.嵌入式linux上层应用,包括QT的GUI开发 2.嵌入式linux系统开发 3.嵌入式linux驱动开发 嵌入式目前主要面向的几个操作系统是,LINUX,WINCE.VxWorks等等 Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式. 你可以尝试以下路线: (1) C语言是所有编程语言中的强者,单片机.DSP.

[51单片机学习笔记ONE]-----LED灯的多种使用方法

一.交替闪烁8个LED灯,时间间隔为1s 1 /****************************************************** 2 实验名称: 交替闪烁8个LED灯,时间间隔1s 3 实验时间: 2014年12月2日 4 ******************************************************/ 5 6 #include <reg51.h> 7 8 void delay(unsigned char a); 9 10 void m

[51单片机学习笔记TWO]----蜂鸣器

蜂鸣器音乐播放实验 首先应该了解一下蜂鸣器音乐播放的原理,在这里我只讲一下电磁式蜂鸣器驱动原理(还有一种是压电式蜂鸣器): 电磁式蜂鸣器驱动原理: 蜂鸣器发声原理是电流通过电磁线圈,使电磁圈产生磁场来驱动振动膜发声的.因此需要一定的电流才能驱动它,而单片机I/O引脚输出的电压较小.单片机输出的TTLK电平基本驱动不了蜂鸣器,因需要增加一个放大电路.这里用三极管作为放大电路.下面是原理图: 我这里的J8端是跟芯片的P1^5端口相连,当P1^5输出高电平时,三极管截止,蜂鸣器不发声,反之,输出低电平

初识单片机(51单片机学习之旅系列)

作为电子信息工程专业的一名大二学生,单片机目前仅仅是我脑海中出现过的名词.既没有过很深的认识,更没有系统的学习和仔细的研究,因此在单片机应用上还是一个不折不扣的小白菜.初次听说单片机还是在大二第一学期的电子电工认识实习课上,老师介绍了电子系统领域几大器件:单片机.DSP.ARM.FPGA等.我便从中得知单片机是最基础的一个,并且对于此类只是比较感兴趣,但对于我的专业大三才开这门课程,为了更好地掌握这门技术,便决定开始学习单片机.我选择的是最基础的51单片机. 在开发板还未到手中之前,查找一些基础

51单片机学习笔记【五】——1602液晶屏

一.1602液晶屏基础 1.LCD1602简介 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母.数字.符号的点阵型液晶模块.它是由若干个5x7或者5x11的点阵字符位组成,每个点阵字符位都可以用显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此,所以它不能很好的显示图片.本次使用型号为SMC1602A LCM的液晶屏. 2.LCD1602接口信号说明 3.控制接口说明 4.指令说明 二.实验例程 1.电路原理图 2.实验说明 本实验通

[学习笔记]15个QA让你快速入门51单片机开发

一.C语言相关... 1 Q1:sbit与sfr代表是什么?有什么作用?... 1 Q2:#define OSC_FREQ  22118400L这句宏命令里的“L”是什么意思?... 1 Q3:我粘贴了别人的代码,怎么发现没有unit这个类型?... 1 Q4:为什么好多变量都是char类型?它不是字符类型吗?怎么可以用来计数?    1 Q4.1:51单片机中的char,int,long,float,double各占多少个字节,取值范围多大?    1 Q5:unsigned char dat

51单片机学习资料keil下载

51单片机的资料很多,汇总起来也很麻烦,这是我项目的部分资料,都是老生常谈的东西,还是直接扔资料比较实际,资料都上传到闯客网技术论坛,需要资料可以自己去下载吧,同时关于单片机开发和学习,也建了一个裙,供大家不懂的交流和学习:6①③③7705⑧ 1.何谓单片机 一台能够工作的计算机要有这样几个部份构成:CPU(进行运算.控制).RAM(数据存储).ROM(程序存储).输入/输出设备(例如:串行口.并行输出口等).在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上.而在单片机中