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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

$ u# g& x6 s6 }. s* r* ?$ g
3 L  S* s; b6 o$ ^

7 U8 b8 M, ^$ j; f( E. `1 A
(1)很难记住繁杂的寄存器?' `" I0 F% ?1 c/ }( a

" u# X. x9 G+ N, V7 Z1 ]8 ^; k: ^寄存器不用死记硬背,做了那么久单片机项目的开发,连一个寄存器都记不住。; N% F- a9 k5 S( u# J

+ Z2 S1 D5 R0 V需要配置寄存器的时候,直接在网上或者书本上参考别人现成的配置程序是上策,查找芯片数据手册是中策,死记硬背寄存器是最最下策。2 S6 m+ @- O! b% D7 s; t
- b7 N4 u3 C( ^; ?, o3 j) b

" U6 n5 H5 V: t$ I$ H- {(2)很难记住繁杂的汇编语言指令?: q7 h4 e9 n% N1 Z; l

$ ]) B" G9 T+ b/ W4 G0 G除非是在校学生要应付考试或者少数工作中绕不开汇编,否则学汇编就是浪费时间。从来就没有用汇编帮客户做过一个项目。
% E* J$ q3 B* D# o) a$ t- Q% N
: C/ ]% g: }5 w
7 E6 Z$ x5 Q# L% n8 W" O(3)C语言很难学?
4 k" a, u  W* K0 A% N* w3 D7 f% S. P6 o# c
你不用学指针,你不用学带形参的函数,你不用学结构体,你不用学宏定义,你不用学文件操作,你也不用死记繁琐的数据类型。/ |  |! `8 J4 b) k; g. t, x

2 ?1 \, b" i( {3 y' [你只要会:5 [, x& O+ e  ]# R
* Z7 x& J" n- f+ i
5条指令语句switch语句,if else语句,while语句,for语句,=赋值语句。1 s# Q& T5 [: `
7个运算符+,-,*,/,|,&,!。% v3 O- Q: W3 a
4个逻辑关系符||,&&,!=,==.
0 G* c. A( O0 W3个数据类型unsigned char, unsigned int, unsigned long。
; o* [: @" z) `  @6 b3个进制相互转化,二进制,十六进制,十进制。
5 `, T4 h& P, @: Q1个void函数。
9 X5 k" |( C$ F  m1个一维数组code(或const) unsigned char array[]。
8 G2 V! N6 e4 B- |) k6 K那么世界上任何一种逻辑功能的单片机软件你都能做出来。- }! ]) w" }2 g) G- a
我当年刚毕业出来工作的时候才知道可以用C语言开发单片机,一开始只用if语句就把项目做出来了,没有用指针,没有用带形参的函数等复杂的功能。
; I! l2 B( X6 {0 R, P! a
" l! f' }2 R; ?) `6 l/ H% @再到后来才慢慢开始用C语言其他的高级功能,但是我发现C语言其他的高级功能,本质上都是用我前面列举出来的最基本功能集合而成,只是书写更加简单方便了一点,编译后的机器码都大同小异。
* t' t/ X0 l% \8 H/ Q# F- m. {& L$ c
所以不会指针等高级功能你不用自卑,恰恰相反,当你会最简单的几个语句,就把这些高级功能的程序都做出来了,你才发现你对底层了解得更加透切,再学那些高级功能轻而易举。& a/ h. X& x$ R2 f4 S# r& w
( ?! @2 Z/ J8 ^9 P2 E
当你裸机跑的程序都能够协调得很好的时候,你才发现所谓高深的操作系统也不过如此,只要给你时间和金钱你也可以写个操作系统来玩玩。5 N" ~3 R7 X' a5 V7 c

4 \# [4 j& p& V+ u
; i4 O* h0 Q# i! p4 u3 d- ~4 ^2 X' G(4)很难记住精确时间的计算公式?
4 q+ ^% k5 K( G7 q' h* b& B& u5 Y; v  E( w; ]' H
经常看到时间公式等于晶振,时钟周期,执行指令次数他们之间的乘除关系式。
& L6 l4 W6 ?. B9 P6 y4 i, }- g& ^1 t2 j1 M- m
我认为这些都是浮云,不用纠结也不用去记,大概了解一下就可以了。不管你对公式掌握得有多精确,你都不可能做出非常精确的时间。7 i0 @; ~" S$ M" C
; x& u) t3 g" n2 W2 i
想用单片机做一个非常精确的时间这种想法一开始就是错的,不可能的。
" J4 }5 s- i- c  G# f0 I  p/ |2 B& u1 B( n$ M
真想做一个比较精确的时间,应该用外围时钟芯片或者FPGAcpld,而不是单片机。$ ]- F. I1 t$ w+ r2 m7 c! \

% D+ |! b- Q2 t% f/ y
9 j+ a/ H& |; ~(5)很难记住繁杂的各种通信协议?
2 @6 j! H4 [9 V) S  T# W7 I6 u% N0 m( O# m. w4 r% ]
什么IIC,SPI,232串口通讯,CAN,USB等等。! [5 W- S8 U9 X2 z& t! E

9 g4 E: e7 ^: S* P/ W! x% T这些都是浮云,你不用记那么多,你只要理解两种通讯方式就够了,那就是串行通讯方式和并行通讯方式。4 R% |7 W" ^* ]3 M$ r0 Y# ]

4 x+ I  A. `$ C/ x/ p2 q不管世界上有多少种通讯协议,物理世界上只有这两种通讯方式,其他各种名称的通讯协议都基于此两种方式演变而来。- C& s' X1 r  X0 j, a# ^6 N0 h

) b/ |8 E" a6 ]3 d6 \1 N1 c
; c$ Z8 v5 l4 R" {(6)很难写短小精悍的程序?
+ e3 H6 _" h. d& b
8 }0 _2 \) X/ O& u! k初学者不要纠结于此。做项目开发,程序容量不是刻意追求的目标,程序多一点少一点没关系。% z6 V  D) a. o3 H. }/ Q$ n
2 w6 w) S' F0 I  Y, e! c6 X* I8 C- y4 E
现在大容量的单片机品种非常多,容量不会是寸土寸金的事情,我们更加要关注程序的运行效率,可读性和可修改性。
6 _. _' A7 }! U( ~& }* e# F

9 j/ D+ i) l" k' J
) O" ]9 X5 @: i+ {
# |8 y2 p: h3 i
' J4 S. H$ j9 k/ P
% o6 A& N: L5 \! _/ Z; K% Q
+ f) \0 Z/ C" C! p8 U

该用户从未签到

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

该用户从未签到

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

该用户从未签到

推荐
发表于 2015-4-20 15:29 | 只看该作者
对的!!!每一句话都戳心坎!! M3 C% O3 }3 x! A" s2 [! N
做了那么多项目,至今不会用指针,结构体。。。因为发现汇编出来的机器指令都差不多!

该用户从未签到

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 | 只看该作者
虽然刚了解单片机,但楼主说的精髓一定要收藏,感谢!
: |! u/ `  n* X7 O' s. ~2 t  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-3 12:48 , Processed in 0.125000 second(s), 25 queries , Gzip On.

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

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

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