|
以为C语言学习门槛很高
: e# ]6 W9 H2 X5 m9 F3 l5 f1 O1 {* q1 Y
C语言小学生都能学会。
5 m1 V* T/ L" O; f* o1 O
* Y/ P5 ~* e$ V& w6 ^我没有跟你在吹牛逼啊,前端时间有一个大姐让我带他的儿子学习单片机。
* d2 ]9 P/ _; }& _$ E; i# x4 Z, j, @9 w# b v
他儿子才11岁,然后我拒绝了,因为在我的认知范围里,这么小很难学的会。) P6 `5 r5 \' v
8 a; B# \' o. r, _
然后她说她儿子之前学了c++,有点基础,我当时都惊呆了,现在的学生真的是一个比一个厉害。
+ j( x. k' a h# o# Q+ h1 {. i) X7 s& H
不过最后我还是让她慎重考虑下,毕竟我们培训的定位是那些学习完之后想找到工作的,我们课程也是以项目驱动去学习。4 W9 u3 ^2 T8 s! \. O5 D, L& A* {& y! z
& J7 p0 k8 N! M+ I新手在学习c语言前期的时候,只要学习基本语法就可以了,来来去去就5条最常用的语句。
& k8 |& Z J: u7 r0 B
$ B3 c9 {+ ^) A) Z比如说if..else,switch, for,while, 赋值语句(=).; ~9 [; |# }+ h7 ^$ a
8 w3 d+ B& C; h. T& s, T$ T7个运算符:加减乘除,或运算、与运算、非运算。
" `6 m @$ L# P5 B2 \. B- v1 K4 l" j: f& [
4个逻辑关系符:||、&&、!=、==
# f4 N8 N" o* u# X% f8 f; A5 h1 D. h9 v0 }
3个最常用的数据类型unsigned char、unsigned char short、unsigned char long。4 ^; p9 q2 b! D
, a; O, b- I$ _3个进制转换:二进制、十进制、十六进制
( Z4 Q; D1 B6 u& M- O) E
) [" X' u# u! W9 }还有就是函数的定义和调用。
: z" h5 o/ E! O* K6 X6 w" `, U8 ~
4 I' a/ z* ]! u6 f基本上掌握这些,你就能编写很多程序了。0 t: \* ?0 x; i" b2 \, c
8 k8 w% b# a( v% p* E* ?! V学c语言是一个循环渐进的过程,不要一上来就像写很复杂的程序,再牛逼的大佬也是从点灯开始。3 h3 w* G( ^. B
8 R7 A" L0 ` g# n
等你写多了,熟悉了,到时候再学习指针、结构体之类的。7 E/ j8 n1 p$ Z, ?; o# l
' R: S1 s y% H8 e$ F! I% _ \因为你没有一定的基础时候,去学一些高级应用肯定是学不懂得。
3 b/ a% r L2 n$ A! h( p# t" x" J* X" P) I
只有等你碰到了只能用指针、结构体去实现的功能的时候,你才会深刻理解它们的作用。, e/ O( U) ]! P- l! }
3 ^/ z, }0 \8 |: ]$ C @6 D; Y! m6 J' F2 d/ y1 L7 D
6 q5 [- K: X+ Y. T) \9 G" p+ ?
四、总是因为记不住各种协议而烦恼
5 V9 w7 L4 ?* L7 h
, o. d! F0 P: x+ M1 y做单片机开发会经常接触各种协议,但是总体来说也就是:IIC、SPI、USART、单口通讯。9 d1 D" g& m% G2 z! Y
2 N) |1 S2 y y3 ]% B( h前期的话也先不要去学习USB,CAN之类的协议,这些一般只会用在细分的领域。
% C+ \ U {' Z) [+ Y' M3 q" c) R+ T, G) q6 Z
大家如果工作中碰到了,再针对性去学习。) S; h' S4 F5 B. L* y, `
, q2 T* o8 W; U; Y8 s% y# i
大家真正只需要掌握IIC、SPI、串口、单片通讯就行了。
$ ?/ g$ w/ q! ]6 f
6 h0 }, p6 K: V2 P6 ~$ s学习这个也很简单,直接搜别人的例程来用,先用起来,再根据程序的去理解这些时序图就简单多了。, o: D) w5 M5 Z U
/ l4 v9 w7 w3 P6 _( w这里没有说错啊,是通过程序去理解时序图,这个逻辑跟大多数人的思维可能是反的。
z4 R+ c9 D7 J# o( ~% Z% D3 Z0 H' Z* r+ W% @# F
但是我个人就是这样看懂时序图的,也是我的经验,大家可以去尝试,并不一定适合大家。
: W5 B b' O$ j |
|