找回密码
 注册
关于网站域名变更的通知
查看: 5134|回复: 33
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
. w9 r& ]. T4 S! }

: _0 M; W1 N4 ~# g
- A& q' _& ]6 d; J2 F% t! {. s
(1)很难记住繁杂的寄存器?. ?' h' p2 k; e; P9 g6 \
  a& x7 p; ~) P* V! H
寄存器不用死记硬背,做了那么久单片机项目的开发,连一个寄存器都记不住。
1 f  e* `* A+ j( v3 w% l: N& d( c, A: D* p% C1 A4 e
需要配置寄存器的时候,直接在网上或者书本上参考别人现成的配置程序是上策,查找芯片数据手册是中策,死记硬背寄存器是最最下策。+ P  s2 u# d. |4 E: o+ S

9 p6 u0 _2 R+ B2 U# i* z/ [) u2 B$ D1 [
(2)很难记住繁杂的汇编语言指令?
$ \) N, ?- J2 K. Y& s0 n' p$ G- L: S/ L! `; t6 _0 H
除非是在校学生要应付考试或者少数工作中绕不开汇编,否则学汇编就是浪费时间。从来就没有用汇编帮客户做过一个项目。0 G3 J$ d; W/ Y* g# v: ?

( B" \. q- G( C' R/ z5 c2 f) u5 C; o. a) m$ l. }* y0 y
(3)C语言很难学?
" p& U( W1 V" p: a5 O# M. S% [
# i. F% t  K& p! }, }你不用学指针,你不用学带形参的函数,你不用学结构体,你不用学宏定义,你不用学文件操作,你也不用死记繁琐的数据类型。, \; i6 t) A" g4 e3 o- x
" {* \  K2 L; F
你只要会:
: @  {2 v7 ?& W1 d  `: |% T. h
8 P- U5 d3 N1 Z! c1 S: Q3 k5条指令语句switch语句,if else语句,while语句,for语句,=赋值语句。% \) A7 F& K: Q/ j% \. z
7个运算符+,-,*,/,|,&,!。2 I5 V# J9 T9 k4 }( a% n
4个逻辑关系符||,&&,!=,==.7 Z, ?* z2 e" o( a: }% H
3个数据类型unsigned char, unsigned int, unsigned long。
) R& M2 n; y- X! R- Y. A3个进制相互转化,二进制,十六进制,十进制。3 J5 f9 ^9 ?, y5 G0 X1 R6 V
1个void函数。 4 X& J6 o( \- E3 A% g# f
1个一维数组code(或const) unsigned char array[]。- f4 T, s: Z- R: Y  F; v( h
那么世界上任何一种逻辑功能的单片机软件你都能做出来。) V3 w! J5 z1 h. k7 e9 H# h
我当年刚毕业出来工作的时候才知道可以用C语言开发单片机,一开始只用if语句就把项目做出来了,没有用指针,没有用带形参的函数等复杂的功能。4 F6 S" u- G# Z( P* N

" O( S* B7 E3 v$ B, j& {再到后来才慢慢开始用C语言其他的高级功能,但是我发现C语言其他的高级功能,本质上都是用我前面列举出来的最基本功能集合而成,只是书写更加简单方便了一点,编译后的机器码都大同小异。
5 X* ~' ~$ _9 f0 [" B, y
3 }' o8 b5 N. {+ C9 k9 N  T& N所以不会指针等高级功能你不用自卑,恰恰相反,当你会最简单的几个语句,就把这些高级功能的程序都做出来了,你才发现你对底层了解得更加透切,再学那些高级功能轻而易举。
! u- K4 \2 D9 w, H6 @* Q, M4 G( i* c/ B2 O" X( @. G/ v# U& o
当你裸机跑的程序都能够协调得很好的时候,你才发现所谓高深的操作系统也不过如此,只要给你时间和金钱你也可以写个操作系统来玩玩。
' V/ H" `7 W7 z% L* }. \) D7 K& M% k
1 M% X0 s% H- W5 E1 i6 P/ u
(4)很难记住精确时间的计算公式?) j" k' w5 d  c

# g& ~& Q- E0 q2 ?6 t5 ?- I  a, A经常看到时间公式等于晶振,时钟周期,执行指令次数他们之间的乘除关系式。6 J/ Q/ t/ ~. X- ?% [# ]2 |
) B& D  X* [! L8 t
我认为这些都是浮云,不用纠结也不用去记,大概了解一下就可以了。不管你对公式掌握得有多精确,你都不可能做出非常精确的时间。# P+ U/ e9 ]: _3 T2 B; f( u
8 y: }* U% U  [' K8 x6 z2 P4 s; H
想用单片机做一个非常精确的时间这种想法一开始就是错的,不可能的。. I* E1 K6 Y4 |+ y8 R0 i0 d

0 U( e/ G" L0 e: G真想做一个比较精确的时间,应该用外围时钟芯片或者FPGAcpld,而不是单片机。
) C% P9 a# I' |1 V" ^
) O+ y4 ]( Z* d, B( P9 ]3 T/ h- o, p9 G0 q0 C
(5)很难记住繁杂的各种通信协议?* m' G; Z3 R' A4 D9 _
+ y) F/ h" Z7 A# x) j* F' \
什么IIC,SPI,232串口通讯,CAN,USB等等。: z3 G6 j9 j- ~% @

4 B5 m9 f4 e, ~& H1 D* u/ W这些都是浮云,你不用记那么多,你只要理解两种通讯方式就够了,那就是串行通讯方式和并行通讯方式。2 F; I' h6 _1 r% E8 W9 [

9 W! U1 R+ m) W不管世界上有多少种通讯协议,物理世界上只有这两种通讯方式,其他各种名称的通讯协议都基于此两种方式演变而来。& [- f" E9 n; n& r
& |. M! {* U9 v% s* @

9 p; M% G( l8 ~! ?- s4 U& u(6)很难写短小精悍的程序?
, X0 ~, n0 d0 I+ P$ H. [8 A2 _. Z& b$ c; [  v- @6 G1 U1 ?" d
初学者不要纠结于此。做项目开发,程序容量不是刻意追求的目标,程序多一点少一点没关系。# K6 ^# N$ S5 C2 T: r1 V/ A
* f5 ?2 B, J1 \' g8 U
现在大容量的单片机品种非常多,容量不会是寸土寸金的事情,我们更加要关注程序的运行效率,可读性和可修改性。
4 f( s4 N& \. w
% c- P0 Y  z6 w) j

; T+ m8 {  G5 [+ s+ `/ P2 D1 y+ H2 R# D- f9 B
! h7 q: D1 c( t6 I- S! b
2 I8 p& ]+ R4 d5 m5 p4 {
4 W) d1 w1 T7 E: y, p0 _- _

该用户从未签到

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

该用户从未签到

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

该用户从未签到

推荐
发表于 2015-4-20 15:29 | 只看该作者
对的!!!每一句话都戳心坎!0 ~5 ?1 ?& R- \' w5 n( I3 L2 U
做了那么多项目,至今不会用指针,结构体。。。因为发现汇编出来的机器指令都差不多!

该用户从未签到

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 | 只看该作者
虽然刚了解单片机,但楼主说的精髓一定要收藏,感谢!
$ d( E$ `/ ~8 [- K$ z8 i8 u

该用户从未签到

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-7-28 01:30 , Processed in 0.125000 second(s), 25 queries , Gzip On.

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

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

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