在嵌入式开发中如何提高自己的代码水平" j! }" d6 [% S0 k* g
. y5 u* |; }- z' h
在开始学习嵌入式系统或者单片机系统的时候,大多数人的学习方法都是自己找视频教程或书本自己学,有的人也许会掏钱报个培训班什么的跟着老师学。 * a0 d* G+ J9 Q; j2 y' W$ P: M , J: U- S( Z9 o3 Z 当自己慢慢的可以独立写代码的时候,就会觉得已经学会了。特别是自己能独立完成一些简单的项目之后感觉自己可以出师了。慢慢的随着各种项目的锻炼,写代码的能力也会慢慢提高。写到最后就会发现,其实好多项目都是不同的代码重新组合,一个功能写好之后,在每个项目中都可以用。比如写好了一个串口功能之后,那个项目用到了串口,直接将以前写好的代码拷贝过去就完了,最后开发项目就变成了一个拼积木的过程。. h* o" t$ X0 F7 a! g
6 A/ G; n. t) S q* t, q 这时候基本写代码好像就失去了最开始学习的激情,写代码就变成了一个体力活了,基本也不用动脑了,都是复制粘贴了。写代码的能力好像也很难在突破了,感觉到了瓶颈。这时候就很难找到视频或者书籍或者老师教自己如何突破这个瓶颈。此时如果想要自己的代码水平更进一步,要怎么做呢,下面我就将自己的经验分享一下。6 Y* u% b5 y8 r
8 x. e( Z/ e3 l' G8 q5 f 在自己写完一个功能之后,如果想知道自己写的怎么样,最好的办法就是找一个别人写的同样功能的代码去比较。看看自己写的和别人写的有什么区别。找代码的时候,不能网上随便找一个,因为你不知道你找到的代码是初学者写的还是高手写的。容易被误导,这时就要找大家比较认可的,代码风格比较好的去比较。我一般找到都是某原子和某火的代码。下面就通过一个简单的LED代码来分析比较一下。+ J7 V% E0 y; {4 G& x: G% q; I# m
3 J6 [ Y' h0 r S: X% |! Y
首先看某原子的代码 . E4 y7 G( `* P S' a6 w. C8 q2 Y# I1 m0 G
这是 led.h 的代码' D0 t1 @/ _* E( U4 n8 [0 ?' Z
- \3 k6 A2 j! x9 ~( _2 F0 c D7 _ U$ r4 g( d
这是 led.c 的代码 ! @7 T. T- R0 e0 N: I" _8 V7 Y & ^: d t4 V u1 y3 i4 F& @# G0 O. u& W3 v# Z
led.h里面用到的位操作是在sys.h头文件中定义了。/ q s( |; ?/ X
; B8 m, o" @9 | m, Z# u+ _% u4 m0 @- G8 d/ t$ ]) H5 [* Y: m" `, Y
这个初始化代码看起来非常简洁,首先使能用到的IO口时钟,然后初始化相应的IO口。在初始化函数中一眼就能看出两个LED分别是PA2和PD8口。代码理解起来非常容易。 : J$ y% }) m0 X6 d' m. P0 G' ]1 P $ y7 _9 ~7 `2 v 接下来看某火的代码 1 p: i- A9 |; a 头文件 bsp_led.h! d- q( B+ T: `9 y. k K