我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 856|回复: 2

[技术文章] 吴坚鸿谈初学单片机的误区

[复制链接]

该用户从未签到

142

主题

157

回帖

102

积分

二级逆天

积分
102

社区居民忠实会员社区劳模原创达人终身成就奖

QQ
发表于 2016-2-22 06:13:52 | 显示全部楼层 |阅读模式
(1)很难记住繁杂的寄存器?寄存器不用死记硬背,鸿哥我行走江湖多年,连一个寄存器都记不住。需要配置寄存器的时候,直接在网上或者书本上参考别人现成的配置程序是上策,查找芯片数据手册是中策,死记硬背寄存器是最最下策。

(2)很难记住繁杂的汇编语言指令?除非是在校学生要应付考试或者少数工作中绕不开汇编,否则学汇编就是浪费时间。鸿哥我行走江湖多年,从来就没有用汇编帮客户做过一个项目。

(3)C语言很难学?你不用学指针,你不用学带形参的函数,你不用学结构体,你不用学宏定义,你不用学文件操作,你也不用死记繁琐的数据类型。你只要会:
      5条指令语句switch语句,if else语句,while语句,for语句,=赋值语句。
      7个运算符+,-,*,/,|,&,!。
      4个逻辑关系符||,&&,!=,==.
      3个数据类型unsigned char, unsigned int, unsigned long。
      3个进制相互转化,二进制,十六进制,十进制。
      1个void函数。            
      1个一维数组code(或const) unsigned char array[]。
      那么世界上任何一种逻辑功能的单片机软件你都能做出来。
      鸿哥我当年刚毕业出来工作的时候才知道可以用C语言开发单片机,一开始只用if语句就把项目做出来了,没有用指针,没有用带形参的函数等复杂的功能。再到后来才慢慢开始用C语言其他的高级功能,但是我发现C语言其他的高级功能,本质上都是用我前面列举出来的最基本功能集合而成,只是书写更加简单方便了一点,编译后的机器码都大同小异。所以不会指针等高级功能你不用自卑,恰恰相反,当你会最简单的几个语句,就把这些高级功能的程序都做出来了,你才发现你对底层了解得更加透切,再学那些高级功能轻而易举。当你裸机跑的程序都能够协调得很好的时候,你才发现所谓高深的操作系统也不过如此,只要给你时间和金钱你也可以写个操作系统来玩玩。

(4)很难记住精确时间的计算公式?经常看到时间公式等于晶振,时钟周期,执行指令次数他们之间的乘除关系式。鸿哥我认为这些都是浮云,不用纠结也不用去记,大概了解一下就可以了。不管你对公式掌握得有多精确,你都不可能做出非常精确的时间。想用单片机做一个非常精确的时间这种想法一开始就是错的,不可能的。真想做一个比较精确的时间,应该用外围时钟芯片或者FPGA和CPLD,而不是单片机。

(5)很难记住繁杂的各种通信协议?什么IIC,SPI,232串口通讯,CAN,USB等等。这些都是浮云,你不用记那么多,你只要理解两种通讯方式就够了,那就是串行通讯方式和并行通讯方式。不管世界上有多少种通讯协议,物理世界上只有这两种通讯方式,其他各种名称的通讯协议都基于此两种方式演变而来。

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


    宏哥真是神人啊!少有的单片机大师,看到宏哥的帖子真是让我热血沸腾,觉得自己明天就可以做项目了。
    单片机也学了一小段时间了,学的云里雾里什么也没学明白。看了宏哥的帖子才知道,原来自己在学一些没用的东西。C 语言那个指针怎么也看不明白,看了宏哥的帖才知道原来指针根本就没什么用,发明C语言的人看来比较弱智,弄出来个根本没用的指针来糊弄像我这样的初学者。还有那些什么寄存器,真的像宏哥说的那样根本记不住,我也是像宏哥那样拷贝别人的代码来用,就是不知道拷不到别人代码的时候该怎么办。
    另外看了宏哥的帖子才知道,以前一个朋友完全是在忽悠我。他说他一个同学的公司用单片机做高精度电子计时器,是提供给国际比赛用的,计时精度好像是误差一年不超过1秒。听说要计算每条汇编指令的执行时间。看了宏哥的帖子才知道,原来自己被忽悠了。
    还有前几天我去找单片机的工作,面试官问了我几个问题,其中一个问题就是我了解哪些通讯协议。我只用单片机做过流水灯,还没了解过通讯协议,但是我想起了宏哥的帖子,于是灵机一动回答说
:“具体的协议我没去记,但是我知道通讯分串行通信和并行通讯”。面试官很满意的点了点头,让我回去等通知。我真的好开心,因为别人都有面试十几二十分钟才能等通知,我只用了5分钟就可以等通知了。
    接着我去另一家公司面试。考官让我写一段小程序。我把写好的程序交给考官,考官说这段程序20行就可以写完,你写了50行,这样不但浪费存储空间,而且执行效率十分低下。我说没关系,空间不够我们可以换空间大一点的单片机,如果执行速度不够快我们可以使用 CPLD 或 FPGA 。虽然我根本不知道 CPLD 和 FPGA 是干什么用的,但是我看到面试官很满意的点点头,提前让我回去等通知。


    我已经很期待这份工作了,为了能尽快提高水平,我把宏哥说的重点都标出来了。以后坚决听宏哥的话,不在那些地方浪费时间。我相信跟着宏哥走,我一定能很快写出自己的操作系统来。


    最后感谢宏哥无私奉献。像宏哥这样的单片机大师,又能够分享自己的经验,真是太少见了!
回复

使用道具 举报

该用户从未签到

24

主题

2221

回帖

2832

积分

二级逆天

积分
2832

社区居民忠实会员社区劳模最爱沙发优秀斑竹奖终身成就奖

QQ
发表于 2016-2-22 09:13:08 | 显示全部楼层
广告位出租,价格可以商量。
回复

使用道具 举报

该用户从未签到

0

主题

3

回帖

0

积分

一级逆天

积分
0

终身成就奖

QQ
发表于 2016-8-29 16:55:11 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

论坛开启做任务可以
额外奖励金币快速赚
积分升级了


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

平平安安
TOP
快速回复 返回顶部 返回列表