独闷闷网

 找回密码
 立即注册
搜索
查看: 4635|回复: 4
收起左侧

[分享] 看了《吴坚鸿谈初学单片机的误区》的真实感受(转载)

[复制链接]
发表于 2014-3-1 10:39:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
      今天在其它网站上看到了一位同行在点评我写的一个文章,这个作者还针对我其它很多文章做了点评,在此非常感谢这位朋友对我的关注,现在把他的点评转载分享给大家。

/*-----------------------------------以下是转载原文----------------------------------------*/

吴坚鸿风格的C51程序,今天无意中看到了吴坚鸿的讲解,很有感触,记得自己当时学习的时候不也是这么稀里糊涂的学过来的吗?吴坚鸿在讲解学习单片机课程的时候有很多需要注意的细节写得非常的好。所以我便转载过来,让有缘在本论坛查看的朋友也了解下,取其精华,弃之糟粕。

第一节:吴坚鸿谈初学单片机的误区。

(1)很难记住繁杂的寄存器?寄存器不用死记硬背,鸿哥我行走江湖多年,连一个寄存器都记不住。需要配置寄存器的时候,直接在网上或者书本上参考别人现成的配置程序是上策,查找芯片数据手册是中策,死记硬背寄存器是最最下策。
???对于这个误区一我个人也是非常的同意的。因为在我以前学习单片机的时候也老是觉得寄存器不好记,但是后来就不再记这些东西了,比如说中断的,我只需要记住如何开关就可以了。其它的用的时候查一下就OK了。

(2)很难记住繁杂的汇编语言指令?除非是在校学生要应付考试或者少数工作中绕不开汇编,否则学汇编就是浪费时间。鸿哥我行走江湖多年,从来就没有用汇编帮客户做过一个项目。
???这一点我也有相似的感觉,我之前学习过一点基础的汇编,记得当时是某个老师说汇编入门,C语言提高,汇编精通,那个时候我才学习的编汇,只是到了C语言提高的时候我就把汇编给忘记了。记得在学习C语言提高的课程中,其中有位老师讲过,说是用汇编写延时比较精确,记得当时还在C程序中调用过编汇的子程序来实现通过汇编程序来延时,只是后来个人在写C程序的时候,延时都是利用keil软件来模拟软件运行来查看自己所写的延时是否正确,所以在写程序时,我对延时只有一种理解,那就是差不多。只要延时能让程序正常运行,我就不再去考虑到精确到多少us了,因为大部份的时候并非是要精确到多少us.

(3)C语言很难学?你不用学指针,你不用学带形参的函数,你不用学结构体,你不用学宏定义,你不用学文件操作,你也不用死记繁琐的数据类型。你只要会:
      5条指令语句switch语句,if else语句,while语句,for语句,=赋值语句。    ???这几个语句我的确是用得最多的。
      7个运算符+,-,*,/,|,&,!。            ???这几个运算符也是常用的,的确应该学会
     4个逻辑关系符||,&&,!=,==.          ???说心里话,这讲得非常的不错,我曾经就是个初学者,这个我肯定学C程序写单片机驱动的,这几个必会。
    3个数据类型unsigned char, unsigned int, unsigned long。       ???这也是基础,必会的。这些都不难学会。
    3个进制相互转化,二进制,十六进制,十进制。 ???这也很简单,有很多的相关方面的知识,大家可以了解下,如果不清楚的话,可以加我QQ,我尽可能的帮助大家。我技术有限,但这个我还是能给大家讲一下的
  1个void函数。            
      1个一维数组code(或const) unsigned char array[]。         ???说句心里话,这一课我觉得是讲得非常的好,因为真的去除了很多用不上的东西,如果说你现在作为一个新手,从这一篇开始看起,我保证你比别人要学习得更轻松。
     那么世界上任何一种逻辑功能的单片机软件你都能做出来。
      鸿哥我当年刚毕业出来工作的时候才知道可以用C语言开发单片机,一开始只用if语句就把项目做出来了,没有用指针,没有用带形参的函数等复杂的功能。再到后来才慢慢开始用C语言其他的高级功能,但是我发现C语言其他的高级功能,本质上都是用我前面列举出来的最基本功能集合而成,只是书写更加简单方便了一点,编译后的机器码都大同小异。所以不会指针不会数组等高级功能你不用自卑,恰恰相反,当你会最简单的几个语句,就把这些高级功能的程序都做出来了,你才发现你对底层了解得更加透切,再学那些高级功能轻而易举。当你裸机跑的程序都能够协调得很好的时候,你才发现所谓高深的操作系统也不过如此,只要给你时间和金钱你也可以写个操作系统来玩玩。

(4)很难记住精确时间的计算公式?经常看到时间公式等于晶振,时钟周期,执行指令次数他们之间的乘除关系式。鸿哥我认为这些都是浮云,不用纠结也不用去记,大概了解一下就可以了。不管你对公式掌握得有多精确,你都不可能做出非常精确的时间。想用单片机做一个非常精确的时间这种想法一开始就是错的,不可能的。真想做一个比较精确的时间,应该用外围时钟芯片或者FPGA和CPLD,而不是单片机。
        ???对于上面的这个第4点,个人赞同啊,有些东西真的没有必要去记,也有些东西不要那么去钻牛角尖,因为某些事情你太钻牛角尖了,你就会觉得太累,而且感觉要学习的太多,压力太大,这些都是自己给自己带来的,到了最后你反而无法进行下去了。所以如果非要记的话就记我们必须要记的东西就行了。

(5)很难记住繁杂的各种通信协议?什么IIC,SPI,232串口通讯,CAN,USB等等。这些都是浮云,你不用记那么多,你只要理解两种通讯方式就够了,那就是串行通讯方式和并行通讯方式。不管世界上有多少种通讯协议,物理世界上只有这两种通讯方式,其他各种名称的通讯协议都基于此两种方式演变而来。
        ???这段话说出了很多的肺腑之言,的确是很多的通信协议都没有必要去记,记住串行通讯方式和并行通讯方式就够了。在很多地方,传输数据的方式虽然有很多,但是这两种几乎就是其中的根本。这个大家当个重点去理解。

(6)很难写短小精悍的程序?初学者不要纠结于此。做项目开发,程序容量不是刻意追求的目标,程序多一点少一点没关系,现在大容量的单片机品种非常多,容量不会是寸土寸金的事情,我们更加要关注程序的运行效率,可读性和可修改性。
        ???差不多吧,可以这么说

(7)很难选出适合自己的51单片机学习板?市场上各种学习板子非常繁多,鸿哥认为最好的学习板是朱兆祺的51单片机学习板。选它只有一个理由:有牛人提供后续一系列的视频和教学资料。如果说鸿哥是牛人,那么朱兆祺就是天才。我比朱兆祺大7岁,但是我现在完全拜倒在朱兆祺的牛仔裤下,成为他团队中的一员,听凭他调遣。他确实有他过人之处,百年一遇的人才。我这个连载的技术贴和以后的视频都是基于朱兆祺的51单片机学习板为硬件平台。朱兆祺本人现在也正在捉紧时间录制视频,分享此学习板的资料。
        ???对于这个第7点我真的不敢说些什么,因为我毕竟没有玩过朱兆祺的51单片机学习板,但是我想应该也有它不错的地方吧,就以鸿哥这篇文章来看,我想最起码也是有鸿哥个人的心德在里面,所以如果大家没有找到什么好的学习板,也不妨试一下。

既然鸿哥列出了那么多误区,那么什么才是初学者关注的核心?预知详情,请听下回分解----delay()延时实现LED灯的闪烁。
乐于分享,勇于质疑!
发表于 2014-7-17 16:05:00 | 显示全部楼层
持续关注!!!
乐于分享,勇于质疑!
回复

使用道具 举报

发表于 2014-7-21 16:17:34 | 显示全部楼层
这可是个拦路虎呀,它挡了很多单片机初学者,鸿哥带我们绕开它,谢谢你鸿哥!
乐于分享,勇于质疑!
 楼主| 发表于 2014-7-21 16:31:00 | 显示全部楼层
yao1318 发表于 2014-7-21 16:17
这可是个拦路虎呀,它挡了很多单片机初学者,鸿哥带我们绕开它,谢谢你鸿哥!

不用客气。以后经常来这里分享一点资料。多介绍朋友过来。
乐于分享,勇于质疑!
发表于 2014-12-17 22:08:59 | 显示全部楼层
谢谢你鸿哥!
乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2021-9-20 09:29 , Processed in 0.178884 second(s), 18 queries .

快速回复 返回顶部 返回列表