找回密码
 注册
查看: 5075|回复: 33
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
4 o: k9 m' V- \% ?& k

  {2 i. W! s2 W# ?# v
) F5 I) w9 j$ Q5 Q, N* b! i
(1)很难记住繁杂的寄存器?
* O. {9 z7 [, z. X  u; W8 `) |# ]( h$ ^
寄存器不用死记硬背,做了那么久单片机项目的开发,连一个寄存器都记不住。# n+ \+ A, c$ X& e6 h
3 N+ ]) \/ c6 B9 ^* j2 `
需要配置寄存器的时候,直接在网上或者书本上参考别人现成的配置程序是上策,查找芯片数据手册是中策,死记硬背寄存器是最最下策。9 l# v. u0 t! D9 X1 m

) s% r" ]& v6 S) p  n+ E$ b
* I( x0 h( t& R" }/ h6 _; D(2)很难记住繁杂的汇编语言指令?+ L% P6 b  |6 t. f

5 i8 j4 s) S0 R% A除非是在校学生要应付考试或者少数工作中绕不开汇编,否则学汇编就是浪费时间。从来就没有用汇编帮客户做过一个项目。& `' e& D! x$ A% \; e' y  ^
- W* u3 P9 _, d; N. B
. W; o8 _4 d& V  _; o
(3)C语言很难学?
1 |0 m3 c% y" S& r3 B  V; b  G0 l* H, m% }
你不用学指针,你不用学带形参的函数,你不用学结构体,你不用学宏定义,你不用学文件操作,你也不用死记繁琐的数据类型。+ h; r' Z# ?' z$ W% @# o- G

! H7 T/ W8 q. q9 @: ^你只要会:" A6 w8 y7 x  A! f- w* O0 z! T

2 U* f! q- `( F) H+ e' m5条指令语句switch语句,if else语句,while语句,for语句,=赋值语句。
" ^+ E: L% K9 ^+ [7个运算符+,-,*,/,|,&,!。& x, Q9 I  g  F# y
4个逻辑关系符||,&&,!=,==.; S; b& I6 X3 L, \* c2 z, ^; d
3个数据类型unsigned char, unsigned int, unsigned long。
) {5 H1 |0 T- v( d: [" b5 ?- s# y3个进制相互转化,二进制,十六进制,十进制。2 l6 ~) j0 l1 Z; {& E) e
1个void函数。
4 p) u! C6 v7 @" q% @1个一维数组code(或const) unsigned char array[]。, B  n3 y& b- X" N" V) {
那么世界上任何一种逻辑功能的单片机软件你都能做出来。7 J9 N! Y1 l& G# k% s) `% m
我当年刚毕业出来工作的时候才知道可以用C语言开发单片机,一开始只用if语句就把项目做出来了,没有用指针,没有用带形参的函数等复杂的功能。. a, S. P: z' {5 Y$ u9 U0 q
- l& M. b# J! s5 i5 @
再到后来才慢慢开始用C语言其他的高级功能,但是我发现C语言其他的高级功能,本质上都是用我前面列举出来的最基本功能集合而成,只是书写更加简单方便了一点,编译后的机器码都大同小异。: U" p# m. ^) @* p# W3 i0 `

/ M5 `* D' K; j: k所以不会指针等高级功能你不用自卑,恰恰相反,当你会最简单的几个语句,就把这些高级功能的程序都做出来了,你才发现你对底层了解得更加透切,再学那些高级功能轻而易举。7 O1 h5 s4 ?5 T4 x9 J/ S" B

2 Z" y5 x5 P) D# c+ |/ e: ]当你裸机跑的程序都能够协调得很好的时候,你才发现所谓高深的操作系统也不过如此,只要给你时间和金钱你也可以写个操作系统来玩玩。
! s( s7 |' `5 M& G* y! |
/ e* F/ ]* }! J6 Y5 m
; b3 X% b7 n8 q, [) `(4)很难记住精确时间的计算公式?& \1 s4 P& z3 o/ C- ~" W, ~

! c6 A3 Y- p2 s8 g经常看到时间公式等于晶振,时钟周期,执行指令次数他们之间的乘除关系式。, I* E4 w. ]4 r! u8 `9 D: R  L
4 @% a$ h- l9 n! f, V( F" y6 I
我认为这些都是浮云,不用纠结也不用去记,大概了解一下就可以了。不管你对公式掌握得有多精确,你都不可能做出非常精确的时间。, g8 p. b) u$ F/ ?: U( W! w3 Q' E* x

9 h% G: ^5 x9 @% X5 u  M9 P" j想用单片机做一个非常精确的时间这种想法一开始就是错的,不可能的。4 e( ^3 ^! B8 k; o# {
# p5 T0 G+ z. d  P5 q0 `: ]
真想做一个比较精确的时间,应该用外围时钟芯片或者FPGAcpld,而不是单片机。0 Y5 }! {# Z1 t/ Z7 K
  I' c8 A7 e5 d* ^* J2 X5 _
1 b& u1 a- ^9 t" D* H+ u0 B  \
(5)很难记住繁杂的各种通信协议?: T4 m! I1 V2 `9 ?6 r- r' _

4 s- u5 a# W* p什么IIC,SPI,232串口通讯,CAN,USB等等。
+ y4 q+ j5 Y* A" S8 c+ q7 N) k2 ~- g, a' T( F+ L  K
这些都是浮云,你不用记那么多,你只要理解两种通讯方式就够了,那就是串行通讯方式和并行通讯方式。
, ?% b+ m# p/ Y) ?! F) i+ _0 [7 C# x0 w! R6 L3 J: j7 H/ e5 C
不管世界上有多少种通讯协议,物理世界上只有这两种通讯方式,其他各种名称的通讯协议都基于此两种方式演变而来。
5 x5 J! N' X9 I$ B+ x1 d6 d
; n$ Z, C! G0 ]7 r2 Z  T6 P; h! H7 M
(6)很难写短小精悍的程序?: [) E" T9 L+ N; p

( G6 Y* Y! g1 I初学者不要纠结于此。做项目开发,程序容量不是刻意追求的目标,程序多一点少一点没关系。# b  W3 D. c9 x+ H, P' G
3 b& a% r7 D- }! m: s! n+ M
现在大容量的单片机品种非常多,容量不会是寸土寸金的事情,我们更加要关注程序的运行效率,可读性和可修改性。
! x" q5 F2 O9 B# l
  X' I7 V8 h1 N
3 }/ r6 ^6 J9 M2 ?
: Q4 j! d+ B0 T. V4 _# G

+ Z8 g9 k8 L  f1 D

6 I* y8 B9 _/ V9 O$ A& }0 o: ?4 W
  o. \: D, i- U; L; t' P

该用户从未签到

推荐
发表于 2015-6-9 10:10 | 只看该作者
只能说楼主,水平一般....

该用户从未签到

推荐
发表于 2020-10-4 12:48 | 只看该作者
1. 由简到繁是对的,熟能生巧。2.根据需要(不是无目的学)学习别人的代码。例如买了液晶模块后学习厂家带的演示程序,结合实际会学到很多东西。3.逐步提高,在上面的基础上,结合实际学习指针、结构等内容,可以提高编程水平。更重要的是为了看懂别人的程序来提高自己。否则别人一些好的代码你看不懂,水平难以提高。提高是为了编程更简洁、有效率,不是装样子!

该用户从未签到

推荐
发表于 2015-4-20 15:29 | 只看该作者
对的!!!每一句话都戳心坎!
0 ?% [0 |" Z8 o' r# T做了那么多项目,至今不会用指针,结构体。。。因为发现汇编出来的机器指令都差不多!

该用户从未签到

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

该用户从未签到

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

该用户从未签到

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

该用户从未签到

9#
发表于 2015-6-19 11:42 | 只看该作者
虽然刚了解单片机,但楼主说的精髓一定要收藏,感谢!
) K/ h# \. `7 [$ O% c; H9 Q

该用户从未签到

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

该用户从未签到

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

该用户从未签到

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

该用户从未签到

13#
发表于 2015-9-1 09:48 | 只看该作者
那需要记的是啥呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-5-31 09:29 , Processed in 0.093750 second(s), 25 queries , Gzip On.

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

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

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