|
以为C语言学习门槛很高
! P( u) O, K5 h# l5 a( F* x) @/ e) f: T# k) V) C
C语言小学生都能学会。
" e' `9 S2 q3 j1 o
% `' A' s" s2 @7 R. {* i3 y* z# Z我没有跟你在吹牛逼啊,前端时间有一个大姐让我带他的儿子学习单片机。
" I: ?; q% N' x3 _. j$ o
' B2 i* z+ G" n, t( k/ ?) t他儿子才11岁,然后我拒绝了,因为在我的认知范围里,这么小很难学的会。
0 w V/ d! D% A7 i6 v- y9 k: D" b# \0 V/ g' D# K5 D
然后她说她儿子之前学了c++,有点基础,我当时都惊呆了,现在的学生真的是一个比一个厉害。
4 [7 k; B9 H: C+ D
( |) q+ o( n" q0 W) O, h7 z不过最后我还是让她慎重考虑下,毕竟我们培训的定位是那些学习完之后想找到工作的,我们课程也是以项目驱动去学习。
}# _. m D2 a, o- Y& X6 ]+ ?
1 p. n6 m* F0 O' p+ e4 Z4 _新手在学习c语言前期的时候,只要学习基本语法就可以了,来来去去就5条最常用的语句。: b2 u$ d; q/ [& T2 [! U- b$ B
$ S i$ k, k1 w0 S% p8 r
比如说if..else,switch, for,while, 赋值语句(=).
( S8 c6 k$ v( T* X7 r
0 v1 E0 v% F/ |) ]# A% U7个运算符:加减乘除,或运算、与运算、非运算。4 u) m6 E; }1 B) k# @
' m0 ?+ N+ v, W, ^ t4个逻辑关系符:||、&&、!=、==3 a$ N! z9 ]: B
* N% l5 P* Q# p
3个最常用的数据类型unsigned char、unsigned char short、unsigned char long。4 \+ K; w& b! b8 `
4 o+ a: P% S6 R) K' `3个进制转换:二进制、十进制、十六进制
. L$ G" E* u2 S4 v) R6 K! l, F* i6 m
还有就是函数的定义和调用。
; [; p. J8 q) X1 W9 a4 M1 n* q7 l2 x/ r+ ]
基本上掌握这些,你就能编写很多程序了。# W/ M: p3 g1 d& @
8 i. G$ _" t# h& U
学c语言是一个循环渐进的过程,不要一上来就像写很复杂的程序,再牛逼的大佬也是从点灯开始。& }/ a1 X: i6 R/ V
. x: `3 D( F' B2 m! `等你写多了,熟悉了,到时候再学习指针、结构体之类的。
0 |) r2 s0 B8 o2 x8 h( M6 q+ \" ^" C0 }( z
因为你没有一定的基础时候,去学一些高级应用肯定是学不懂得。- Q) q! ?9 @- U E
5 a: W: f3 W7 d3 W+ m/ ]只有等你碰到了只能用指针、结构体去实现的功能的时候,你才会深刻理解它们的作用。
$ c8 q' |0 D- v2 j/ \, ?) t5 g3 s6 C# N& t% P! P
0 i8 g& l, q6 t3 x
' s3 N$ V( j; r8 Y* ?8 ?
四、总是因为记不住各种协议而烦恼
$ g/ Y% H! g$ O" z; L" H) ~* E7 v: c' o/ J' u
做单片机开发会经常接触各种协议,但是总体来说也就是:IIC、SPI、USART、单口通讯。1 j! F ^7 L7 _
$ ^$ \0 m3 c( @9 r
前期的话也先不要去学习USB,CAN之类的协议,这些一般只会用在细分的领域。2 m. R' E* u0 A; Q# }8 `
* p* z3 s2 U; ^$ z2 n4 m1 v5 v
大家如果工作中碰到了,再针对性去学习。7 P& D/ x9 D' \( x/ e, u
, y! c( L0 ]" d. a# P大家真正只需要掌握IIC、SPI、串口、单片通讯就行了。% g ?1 R, j2 s- X! s
& i" E9 k6 T; w3 C! e学习这个也很简单,直接搜别人的例程来用,先用起来,再根据程序的去理解这些时序图就简单多了。
1 z0 P, v3 P- L% s. z5 o. b2 v; R1 E1 [7 g; M2 q
这里没有说错啊,是通过程序去理解时序图,这个逻辑跟大多数人的思维可能是反的。8 z4 M. O& z6 l6 G; B4 R
& d- |/ h) ]; |" Q# R但是我个人就是这样看懂时序图的,也是我的经验,大家可以去尝试,并不一定适合大家。
- |6 B1 i; `1 ^3 ? |
|