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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
9 c9 N6 U, R" w- G

3 P( @9 n" ^" J
6 {: ~4 W9 V# S
(1)很难记住繁杂的寄存器?
( K$ L- @/ f) W& o0 b
$ V% H" {) z8 e4 U- G/ k寄存器不用死记硬背,做了那么久单片机项目的开发,连一个寄存器都记不住。
6 g3 `  {3 ?: D7 I; d; g( q( U4 a4 A9 ~* s
需要配置寄存器的时候,直接在网上或者书本上参考别人现成的配置程序是上策,查找芯片数据手册是中策,死记硬背寄存器是最最下策。
; i; w5 |" J; e7 X3 k5 Q* l
4 }; F& U, m' u9 I2 X3 p+ j8 W. s/ e
# ~8 G; u: d7 q4 L! s(2)很难记住繁杂的汇编语言指令?0 G- h, m3 f! ]' {3 \

. U& [) p9 L3 U! M. K$ N% ]除非是在校学生要应付考试或者少数工作中绕不开汇编,否则学汇编就是浪费时间。从来就没有用汇编帮客户做过一个项目。
0 x+ a$ j$ J# O& o6 ^# ?7 M9 j3 m4 l! G0 C
1 i; ]$ K: i6 }2 ^# ~
(3)C语言很难学?6 n1 z) V5 Y# d! t, Q1 A

. d* h7 a: G5 p9 {/ [- B你不用学指针,你不用学带形参的函数,你不用学结构体,你不用学宏定义,你不用学文件操作,你也不用死记繁琐的数据类型。9 j7 Z% k1 ^, ]1 h5 ?- ?* J( o

$ q0 p/ A1 ?# m: I6 A" L( D( y你只要会:. b5 D# G8 ^% V* }

- c, M9 e2 o8 ]* n5条指令语句switch语句,if else语句,while语句,for语句,=赋值语句。
) E2 E- l+ o+ n" x7个运算符+,-,*,/,|,&,!。
5 y( o$ m1 U6 a( G( u/ s: S4个逻辑关系符||,&&,!=,==.. h$ d; A" R" I& j) L  p
3个数据类型unsigned char, unsigned int, unsigned long。3 j, R2 h/ R7 x- x6 D* q9 Z
3个进制相互转化,二进制,十六进制,十进制。) n! L( m: e; k8 A3 q9 F9 i
1个void函数。
7 {% a2 x( g( l0 D7 e% m1个一维数组code(或const) unsigned char array[]。# t% X. p: \  ?& x, ~7 F" {
那么世界上任何一种逻辑功能的单片机软件你都能做出来。
7 A- d8 ~: A; s+ D我当年刚毕业出来工作的时候才知道可以用C语言开发单片机,一开始只用if语句就把项目做出来了,没有用指针,没有用带形参的函数等复杂的功能。
0 t, Q: K( g/ i; I, T5 T5 ~8 \, q. p" `
再到后来才慢慢开始用C语言其他的高级功能,但是我发现C语言其他的高级功能,本质上都是用我前面列举出来的最基本功能集合而成,只是书写更加简单方便了一点,编译后的机器码都大同小异。& E9 F! s" r1 C( X
% H) Y) |( r; x( G
所以不会指针等高级功能你不用自卑,恰恰相反,当你会最简单的几个语句,就把这些高级功能的程序都做出来了,你才发现你对底层了解得更加透切,再学那些高级功能轻而易举。
9 \" z, \1 e8 K1 q1 n7 N2 [
5 e. n# w2 c; ^. [0 x当你裸机跑的程序都能够协调得很好的时候,你才发现所谓高深的操作系统也不过如此,只要给你时间和金钱你也可以写个操作系统来玩玩。
# V5 i5 _  {0 x, G) ~% ], d  z* L
% S' h1 I+ b+ v) O
(4)很难记住精确时间的计算公式?
  h; N( i4 R) Y0 y" n4 `
, i4 _2 k" P. t, W, Q$ @$ Y0 ?1 Y: U8 q经常看到时间公式等于晶振,时钟周期,执行指令次数他们之间的乘除关系式。
; b5 S0 [+ \( Z* s' d- s
$ ~. J0 M4 a! d. S/ }' K; r我认为这些都是浮云,不用纠结也不用去记,大概了解一下就可以了。不管你对公式掌握得有多精确,你都不可能做出非常精确的时间。
- S9 r/ |  ^# s+ H
" D( T1 ?2 T& p0 [: @8 p1 o! B想用单片机做一个非常精确的时间这种想法一开始就是错的,不可能的。; R; @% w! e5 o0 i8 U

3 z& a& ?4 w6 b, z" S真想做一个比较精确的时间,应该用外围时钟芯片或者FPGAcpld,而不是单片机。; S4 |, P) h' d: F# f6 h% J% s4 z
* f- u) u+ S/ E5 Q

) A" m$ v; @! O0 {2 N' d(5)很难记住繁杂的各种通信协议?4 U- L0 y, V5 o3 F0 q$ V! X
/ I" D8 f( f' L
什么IIC,SPI,232串口通讯,CAN,USB等等。- I, X' ^  h3 f- A" F1 y

! |) P, j8 ]3 P这些都是浮云,你不用记那么多,你只要理解两种通讯方式就够了,那就是串行通讯方式和并行通讯方式。9 I0 W+ Z1 o3 v) q% l  O
8 H  Z1 ?8 R; t& n+ y6 f  y
不管世界上有多少种通讯协议,物理世界上只有这两种通讯方式,其他各种名称的通讯协议都基于此两种方式演变而来。5 \5 R8 O( p6 S# i, K5 I2 g( x

6 F0 ^; t7 @8 r& a0 n# I2 h8 \. F5 @# ?! ~
(6)很难写短小精悍的程序?
, d2 _& h3 \% H. M; o
* Z  W' S  w' B" z* w0 C初学者不要纠结于此。做项目开发,程序容量不是刻意追求的目标,程序多一点少一点没关系。) Q4 U% b# \$ k  t$ c1 l* e

+ c' {  ~. C& [2 P5 j现在大容量的单片机品种非常多,容量不会是寸土寸金的事情,我们更加要关注程序的运行效率,可读性和可修改性。
* b+ l; z, o; s
9 V. k, Z. S- D, ?# K# ]5 `
! S0 Y2 W/ e: X8 i9 K' W

5 K1 w8 b1 Q( G

$ L8 G% K$ i* A" K6 F9 F0 q" f

' J9 L/ c6 o2 v! w; v- {
" ?( i& Y* A# O$ r% V

该用户从未签到

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

该用户从未签到

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

该用户从未签到

推荐
发表于 2015-4-20 15:29 | 只看该作者
对的!!!每一句话都戳心坎!: e/ y3 V% ?* N2 I1 l
做了那么多项目,至今不会用指针,结构体。。。因为发现汇编出来的机器指令都差不多!

该用户从未签到

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 | 只看该作者
虽然刚了解单片机,但楼主说的精髓一定要收藏,感谢!
8 _: c- h. ?0 U1 v( |# ^1 |

该用户从未签到

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-10-8 20:22 , Processed in 0.140625 second(s), 25 queries , Gzip On.

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

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

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