第一初始化管脚,来进行控制电机,输出高低电平,方可让电机转动。. B* N3 i( k. R0 R; N
: E. m& n9 d" T9 r# _& ^
' ^4 q) V) V+ r- /*******************************************************************************
- M3 S/ z1 S! S5 ^ b9 w$ a - * 函数名字 : GPIO_Configuration(void)9 T; G1 D# _8 C
- * 描述 : 初始化PE7~PE8为输出口.并使能这两个口的时钟
1 m/ C$ Z! z/ H j9 e - Motor(电机输出引脚) IO初始化
( L* \' e+ u" f+ B" q3 ` - * 输入 : 无& N2 ]( C( R+ o( Q B. V' |/ `
- * 输出 : 无
# m" _' ^$ Z- \ N9 f& f - * 返回值 : 无- i2 V% f4 {& w. g& f
- *******************************************************************************/
1 ]1 H+ f& \* |+ q - void GPIO_Configuration(void)2 A+ i: j6 o( ]* b- {8 j4 f
- {
3 O$ u' B' X& t/ u" k4 e - //PE.7~PE.8 小车后轮控制引脚. K C& c% z# \; Q3 ~
- //PE.9!PE.10 风扇控制引脚5 q; o. @: S- ]9 A8 L |
-
3 R5 K2 O" z8 D- n. G - GPIO_InitTypeDef GPIO_InitStructure;
" i0 s5 }+ n9 ]- ?- X - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); //使能PE端口时钟3 G8 g8 t2 E! M, F& p) s6 I; A( z$ h
- . J% H3 X: x* _8 s
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10; //Motor-->PE.7 ... Motor-->PE.10 端口配置
% U, E4 g a5 ~ - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
9 z& F. Z9 `. ~% e1 e- o( z2 V: [ - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
* n( j7 c3 V! r( }0 H5 q3 a - GPIO_Init(GPIOE, &GPIO_InitStructure); //根据设定参数初始化GPIOE+ H* r4 [- a7 b1 f4 k
- GPIO_ResetBits(GPIOE,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10); //PE.7.....PE10 输出低电平
+ x# J8 e9 F/ ^/ r W -
, s% u$ q2 o2 K. N5 P. h7 u# [# A' ?4 R - }
复制代码
5 B% K; z( N6 X1 m& [& n% c; ]! H 带代码中都做了详细的介绍,我就不过多的介绍了。不会的可以问我。主要是管脚的配置,都是直接调用的库 函数,这可比51简单多了,不用直接和寄存器打交道,直接和库函数交流就行,太方便了。
# Y- r/ z7 I' }8 v" C0 u2 R 主函数里面直接初始化下管脚就行:. P3 P7 \! q: i$ L% H5 H
8 D( S. h7 U' t. j D0 x* }9 \+ p: ?0 p
- GPIO_Configuration(void); ? B9 l" i( k
- int main(void)4 V5 {8 M/ c3 f" @
- {
0 K! B' m# ]# T1 N - while(1);; E# |, K* y6 I. @7 \
- }
复制代码 2 ]# e, G' @! s& e
ok!一切打工高成,用J-Link 或者通过串口下到核心板中去,连接上线,就ok了。& f0 I; h& E1 G+ t7 Q2 h4 w
$ ^6 @# {2 A: M2 k关于连线问题,这个非常重要,我当初就是没有将线接对,导致高了半天,电机也不转,我用的电机驱动模块是L198N的。* B& O" T& h5 l( C4 _
- J; j+ X7 r2 d& W' w3 u, d
5 j: ^7 S; v+ h ], m. l
: J/ C$ W! L/ ?0 A8 ^, L. x9 Q
贴上电路原理图:; M7 I/ p) f% n
, c8 A0 a- H7 ~3 }1 W7 d
9 C# _6 J \# p9 }8 D' i2 x$ L
相信大家都能看懂,不懂的看看模电、数电稍微懂点电路常识应该都懂吧。嘿嘿……
5 m8 H1 v' w) b/ i3 z6 H4 `! s. F4 H: }) u. Q
可以看到小车跑的很快,速度应该很快的。不过不是我们想要的效果,下一篇介绍,怎样控制小车的速度……
5 W( k1 c2 o( E! P$ z; g
' ]1 u3 Y. X8 R; }; `( ~电机驱动模块注意不要接反了,容易烧坏,我就烧坏了一个
?/ h, q B7 \: p6 V S
/ Q5 y) Z7 [0 \& L# m* e4 @ 上面接线的时候注意电机驱动模块使能端的跳线帽不要拿下来,否则不起作用,下一篇在调节小车速度的时候会将跳线帽拿下来,然后接根线进行控制速度,及PWM调速法。
4 M# R. \2 s$ a6 U; u' h& V& X4 }. A5 A+ @" c
) c& f' g/ L( }! c* K
8 O/ @# ]7 {" e9 j- z" @, l6 e" F% h$ |; \' B
|