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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

! [' U' i( S. r. z% A

1 ^9 c9 J! k# g" T3 Q
. K, ~. C4 g( {$ L, d1 ~
(1)很难记住繁杂的寄存器?
" @& q: t0 F3 ^! {. v! d$ z" {; W) Q" }$ q: v9 M. f7 y( D% }
寄存器不用死记硬背,做了那么久单片机项目的开发,连一个寄存器都记不住。
# f, ]8 @" q2 n. C! R7 K! T8 \2 V% J8 }7 o9 b
需要配置寄存器的时候,直接在网上或者书本上参考别人现成的配置程序是上策,查找芯片数据手册是中策,死记硬背寄存器是最最下策。
1 b( E2 F8 @4 p9 C. y
! v: f1 T) O9 l$ I( l# ^- ^0 }5 X2 o' c+ r; ^/ O* s/ c. W
(2)很难记住繁杂的汇编语言指令?4 Z1 }' ^3 k4 k7 z) Q( d4 x

4 \" K1 ?4 l5 o' u- j除非是在校学生要应付考试或者少数工作中绕不开汇编,否则学汇编就是浪费时间。从来就没有用汇编帮客户做过一个项目。
3 U7 N$ H) n$ X; x* m1 K  [" J$ _2 y$ k2 Y6 _
$ q9 m2 }+ O/ F5 X! U; Y
(3)C语言很难学?
2 R2 N( |" m! H, C
; m7 z5 b. \( U9 \% ^6 z3 N你不用学指针,你不用学带形参的函数,你不用学结构体,你不用学宏定义,你不用学文件操作,你也不用死记繁琐的数据类型。
. k3 c$ ]/ u$ h7 W
0 e4 H# X( i7 x+ ]9 |/ s你只要会:6 P# n+ K1 C- U/ m
0 x) s/ h: n5 V  w8 r) S
5条指令语句switch语句,if else语句,while语句,for语句,=赋值语句。
3 z9 x* g$ q- `7个运算符+,-,*,/,|,&,!。
) V) N- U% \6 d) |' \4个逻辑关系符||,&&,!=,==.
9 k7 Y& A! X- S6 p3个数据类型unsigned char, unsigned int, unsigned long。
8 N# M7 `  i. W/ x3个进制相互转化,二进制,十六进制,十进制。
& y! U1 @. c  C- R* [1个void函数。 ! Q1 G0 b# @: E
1个一维数组code(或const) unsigned char array[]。2 ]( H6 K$ g: ~9 _8 D4 h& j4 \
那么世界上任何一种逻辑功能的单片机软件你都能做出来。8 M& @2 ~$ |" C* R% M
我当年刚毕业出来工作的时候才知道可以用C语言开发单片机,一开始只用if语句就把项目做出来了,没有用指针,没有用带形参的函数等复杂的功能。+ p9 s( y0 v/ l& k6 C/ {5 h5 m
- s" g; e3 }* u) r9 W) s9 K) Y1 T0 R
再到后来才慢慢开始用C语言其他的高级功能,但是我发现C语言其他的高级功能,本质上都是用我前面列举出来的最基本功能集合而成,只是书写更加简单方便了一点,编译后的机器码都大同小异。% U% C7 l& y4 n+ H4 U' Z

6 G9 p& m. V9 o# p所以不会指针等高级功能你不用自卑,恰恰相反,当你会最简单的几个语句,就把这些高级功能的程序都做出来了,你才发现你对底层了解得更加透切,再学那些高级功能轻而易举。. [. k5 P& m2 R: `- [" \. m! Q% g

. e3 h) D) J, O- L9 i当你裸机跑的程序都能够协调得很好的时候,你才发现所谓高深的操作系统也不过如此,只要给你时间和金钱你也可以写个操作系统来玩玩。6 h! v, b/ O1 u( }7 S: ?/ |/ {

8 @5 k% h5 @" j' q, Y$ N
7 l4 M9 q( S" o& j: O6 F1 |" T(4)很难记住精确时间的计算公式?3 ?* F1 v, x% ]
3 [' g4 u7 ]  l+ _" Y9 I2 v9 l
经常看到时间公式等于晶振,时钟周期,执行指令次数他们之间的乘除关系式。
' p; E  V3 b/ I4 n: m4 j: N0 i- n9 b9 E: K! p; m6 {
我认为这些都是浮云,不用纠结也不用去记,大概了解一下就可以了。不管你对公式掌握得有多精确,你都不可能做出非常精确的时间。
& i1 m$ X* V9 z5 A* q2 }8 N) u5 ~& z9 T9 G9 M: r
想用单片机做一个非常精确的时间这种想法一开始就是错的,不可能的。
6 P; }# c' }* m; |; u/ C' R, t7 S8 E" ?
真想做一个比较精确的时间,应该用外围时钟芯片或者FPGAcpld,而不是单片机。
$ ^2 {9 x$ m% [. F" I* \4 A. b
4 U' O/ `# k% |' z; d! ~
$ ~% c% d7 h' I0 c(5)很难记住繁杂的各种通信协议?
  p/ ]* I2 E  s4 I% f
4 X3 w9 _% e2 b0 g什么IIC,SPI,232串口通讯,CAN,USB等等。
9 [4 k* |4 M* V8 [+ E: @9 W9 x. B+ v9 |: w8 `! c
这些都是浮云,你不用记那么多,你只要理解两种通讯方式就够了,那就是串行通讯方式和并行通讯方式。. t1 t5 I; b' z5 I

& S2 ^4 z8 z! j. l' j" a* h不管世界上有多少种通讯协议,物理世界上只有这两种通讯方式,其他各种名称的通讯协议都基于此两种方式演变而来。
8 q- x9 t' K* R- V& v# ]5 c3 I8 w) F+ t0 _& Z: m8 n

+ R' e# ^$ @. q* W(6)很难写短小精悍的程序?
4 L  ~0 k3 E# B
0 N  L2 {. p) C, b8 E# j6 h初学者不要纠结于此。做项目开发,程序容量不是刻意追求的目标,程序多一点少一点没关系。7 r- l; D/ G$ j

, u+ |: z7 b  i% E3 |现在大容量的单片机品种非常多,容量不会是寸土寸金的事情,我们更加要关注程序的运行效率,可读性和可修改性。* m( w% Q& l6 ^$ W) D7 f+ p

) a- y2 R& U" a: p% }$ ]
. Q+ i: Q$ |, Q0 Y
$ n  e& ~; D8 ~6 _) G1 @

/ k& K5 B! C  T* x
% n# b5 V2 z7 u

- @" b. M  E3 Z) Y

该用户从未签到

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

该用户从未签到

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

该用户从未签到

推荐
发表于 2015-4-20 15:29 | 只看该作者
对的!!!每一句话都戳心坎!. V. e' q$ X3 D5 M2 F" _: `
做了那么多项目,至今不会用指针,结构体。。。因为发现汇编出来的机器指令都差不多!

该用户从未签到

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 | 只看该作者
虽然刚了解单片机,但楼主说的精髓一定要收藏,感谢!
" b6 ?4 C1 O# D6 h# p

该用户从未签到

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-8-24 20:59 , Processed in 0.125000 second(s), 25 queries , Gzip On.

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

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

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