找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1386|回复: 19
打印 上一主题 下一主题

单片机初学者的误区(非常接地气)

[复制链接]

19

主题

87

帖子

435

积分

EDA365版主(50)

Rank: 5

积分
435
跳转到指定楼层
1#
发表于 2015-2-16 11:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

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

x

4 c" i3 h$ k2 G5 m' ~1 o7 d

3 F$ ]- S2 x7 H7 j" o4 s' ]' \

) {% P5 n# `+ Z; g/ M$ C0 G
(1)很难记住繁杂的寄存器?
+ X5 h$ Q: h. N! D; i4 U2 M7 E. B9 i  D. U2 ]  i
寄存器不用死记硬背,做了那么久单片机项目的开发,连一个寄存器都记不住。
* N5 C8 z% {) A0 E$ G: e8 o3 e9 A
; B3 i" U& S4 N( m: Y: J. O需要配置寄存器的时候,直接在网上或者书本上参考别人现成的配置程序是上策,查找芯片数据手册是中策,死记硬背寄存器是最最下策。1 b) X5 ]0 p( ~& Y6 u7 e$ D0 l
+ U1 }/ ?0 g3 v! ?" d/ w1 G# ]9 c

+ z1 t# U' _+ S' o9 S) |* {& R; \# A1 T(2)很难记住繁杂的汇编语言指令?. x& Z- ^' W& u. ]2 J, ^2 R5 t: F
$ D: X  z$ H  d/ S, M: E* b8 f
除非是在校学生要应付考试或者少数工作中绕不开汇编,否则学汇编就是浪费时间。从来就没有用汇编帮客户做过一个项目。
% S( E% \. O4 w9 g
; K* \5 M' c% B7 R  J
# y8 y# i' [  ?) C: G(3)C语言很难学?/ d- J; g1 ~. u, ~7 Z5 @* N+ g2 e

0 j+ v0 Q& p3 o0 }9 y你不用学指针,你不用学带形参的函数,你不用学结构体,你不用学宏定义,你不用学文件操作,你也不用死记繁琐的数据类型。" q  v  o9 J# E2 ~4 ^

+ o! F9 [7 T. N; H你只要会:' m5 t' F1 Q& ]6 S: @! |; a8 O

9 N% Z' e9 Z6 ~, S5条指令语句switch语句,if else语句,while语句,for语句,=赋值语句。$ \4 U# H& I1 ?7 X
7个运算符+,-,*,/,|,&,!。. D1 R4 V$ r. w+ `
4个逻辑关系符||,&&,!=,==./ X6 k9 A2 k6 O' ?
3个数据类型unsigned char, unsigned int, unsigned long。9 ^* D7 L$ @" p8 p3 B3 i4 o) O1 t# I
3个进制相互转化,二进制,十六进制,十进制。, S- C/ W" p, O9 R) Z2 k8 ?$ a
1个void函数。
0 G: O. }4 R! o6 J) V1个一维数组code(或const) unsigned char array[]。
: k6 q, x4 A" I& K1 J) _1 n6 \8 K. {那么世界上任何一种逻辑功能的单片机软件你都能做出来。; n8 x  j0 ?1 m& c
我当年刚毕业出来工作的时候才知道可以用C语言开发单片机,一开始只用if语句就把项目做出来了,没有用指针,没有用带形参的函数等复杂的功能。1 S6 e5 q" E$ u

* Y3 s$ K5 `' T0 U/ m  y再到后来才慢慢开始用C语言其他的高级功能,但是我发现C语言其他的高级功能,本质上都是用我前面列举出来的最基本功能集合而成,只是书写更加简单方便了一点,编译后的机器码都大同小异。3 z( S: ~, u. p) c* `; e0 k
: b6 _1 d# k/ f; S$ L2 k$ p
所以不会指针等高级功能你不用自卑,恰恰相反,当你会最简单的几个语句,就把这些高级功能的程序都做出来了,你才发现你对底层了解得更加透切,再学那些高级功能轻而易举。, B8 l0 h) J. q. q. a2 w7 Z, Y

/ v  J" o) U2 v7 C, ~当你裸机跑的程序都能够协调得很好的时候,你才发现所谓高深的操作系统也不过如此,只要给你时间和金钱你也可以写个操作系统来玩玩。
; {' j: N2 k/ O7 g9 ^: Y8 T
; c$ ?. @# I+ b) W0 j! b
( ?/ u0 M6 K0 {! g(4)很难记住精确时间的计算公式?  a2 R4 [5 @8 [, @" O2 V

* @5 {/ Z9 Q) N6 t- b+ V, e经常看到时间公式等于晶振,时钟周期,执行指令次数他们之间的乘除关系式。% w' j! N. y+ V* Z8 d. i& R
- o7 [& |: V8 a. L5 d! `. j
我认为这些都是浮云,不用纠结也不用去记,大概了解一下就可以了。不管你对公式掌握得有多精确,你都不可能做出非常精确的时间。
7 o+ K7 e( [8 h1 q$ K, M0 j( \
! f9 }( I* |, U$ K想用单片机做一个非常精确的时间这种想法一开始就是错的,不可能的。$ B: I' v6 M1 b" F9 f( U* u
) ?6 E8 ^; f! d- o3 S+ R& {$ Q
真想做一个比较精确的时间,应该用外围时钟芯片或者FPGA和CPLD,而不是单片机。
$ U# l: e4 K+ k% U% t: Z( b
* \! P, O; G: E- E4 H( c. ?( E+ M4 Q
. l0 y: D- ]5 _9 C, {5 X% u, B(5)很难记住繁杂的各种通信协议?) L% V( Q; N, h1 p/ B% `  P
' }+ v8 a3 J+ [& ], [) p
什么IIC,SPI,232串口通讯,CAN,USB等等。; F& j4 B3 O: T" ]/ j
  m1 t4 u! d& h0 N5 F2 n3 U8 B
这些都是浮云,你不用记那么多,你只要理解两种通讯方式就够了,那就是串行通讯方式和并行通讯方式。  E3 g" [# S+ o/ P% H

8 w  U" |- _& a4 R0 E& ]不管世界上有多少种通讯协议,物理世界上只有这两种通讯方式,其他各种名称的通讯协议都基于此两种方式演变而来。* ?3 f" O7 `) ?- s2 n( h, Y

( @# b1 R2 l* A! j# ^2 ?. k8 G% U# M. G& x% [% y1 g9 ^
(6)很难写短小精悍的程序?
$ J; N) k& O0 R( }/ p
/ I! }* r6 h( _6 X5 M$ c初学者不要纠结于此。做项目开发,程序容量不是刻意追求的目标,程序多一点少一点没关系。9 O2 R7 w8 {8 n% l5 u- Q& G
% S8 f% c. D- _  ?
现在大容量的单片机品种非常多,容量不会是寸土寸金的事情,我们更加要关注程序的运行效率,可读性和可修改性。4 l" l, n$ R1 U5 S; h4 s, t  w5 n7 \) Z
2 G! c7 u1 t! g+ |. L
8 t& H4 i2 o3 G. ~
; S3 y1 i, w) m& }" a

8 M5 Q5 w* k& \0 W; ^2 i
9 T3 n8 O$ u( C0 F8 `4 Y

2 n/ [$ }9 k1 C( j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏6 支持!支持! 反对!反对!

4

主题

313

帖子

2314

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2314
推荐
发表于 2015-4-20 15:29 | 只看该作者
对的!!!每一句话都戳心坎!0 Y' i5 v* p0 G; p+ t; E3 _: W
做了那么多项目,至今不会用指针,结构体。。。因为发现汇编出来的机器指令都差不多!

31

主题

347

帖子

2216

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2216
推荐
发表于 2015-7-20 16:50 | 只看该作者
说得非常好啊,我也是二年的初学者了,我也不是很懂C,我真的就像楼说的一样,我只会几条语句

16

主题

42

帖子

836

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
836
推荐
发表于 2015-3-7 09:35 | 只看该作者
哥  我是单片机初学者,你的描述太震撼我了,能方便加个QQ以后讨教你几招吗

0

主题

2

帖子

36

积分

二级会员(20)

Rank: 2Rank: 2

积分
36
3#
发表于 2015-4-19 21:57 | 只看该作者
说在点上了

0

主题

5

帖子

17

积分

二级会员(20)

Rank: 2Rank: 2

积分
17
4#
发表于 2015-4-20 11:20 | 只看该作者
精辟啊

0

主题

10

帖子

246

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
246
6#
发表于 2015-5-1 11:05 | 只看该作者
说的好, 全新开发一个project 不如先用现成来改

3

主题

18

帖子

52

积分

二级会员(20)

Rank: 2Rank: 2

积分
52
7#
发表于 2015-6-9 10:10 | 只看该作者
只能说楼主,水平一般....

0

主题

2

帖子

1

积分

初级新手(9)

Rank: 1

积分
1
8#
发表于 2015-6-17 11:04 | 只看该作者
精辟,好!

0

主题

1

帖子

8

积分

初级新手(9)

Rank: 1

积分
8
9#
发表于 2015-6-19 11:42 | 只看该作者
虽然刚了解单片机,但楼主说的精髓一定要收藏,感谢!( F' g% \2 ]5 N- N

0

主题

11

帖子

495

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
495
10#
发表于 2015-7-16 18:18 | 只看该作者
说的太精辟了

67

主题

542

帖子

2048

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2048
12#
发表于 2015-8-28 11:46 | 只看该作者
学起单片机好费劲,我觉得自己还没开窍

7

主题

223

帖子

1310

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1310
13#
发表于 2015-9-1 09:48 | 只看该作者
那需要记的是啥呢

1

主题

8

帖子

16

积分

二级会员(20)

Rank: 2Rank: 2

积分
16
14#
发表于 2015-9-6 11:29 | 只看该作者
谢谢分享.............

6

主题

292

帖子

955

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
955
15#
发表于 2015-9-15 17:50 | 只看该作者
有点意思!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-9-19 09:56 , Processed in 0.102755 second(s), 34 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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