第一初始化管脚,来进行控制电机,输出高低电平,方可让电机转动。# W% z3 N" R& k9 l0 v& d* X ~# t
3 v. R. s. \+ ~* d- m& Y* A
( f2 J `, s% O, F6 R4 D8 O* I
- /*******************************************************************************
% B2 A" R% j4 w1 Y - * 函数名字 : GPIO_Configuration(void)) d R4 i7 e5 T$ ~/ Z" j$ c
- * 描述 : 初始化PE7~PE8为输出口.并使能这两个口的时钟
" u3 {" i* n/ H- }5 w3 r5 S - Motor(电机输出引脚) IO初始化
1 J# H2 _& R) J! C% A' T - * 输入 : 无& g, t3 U* M2 [
- * 输出 : 无% o1 S, n1 i! Y
- * 返回值 : 无2 E0 R7 b4 z9 g$ i) Z# j
- *******************************************************************************/ ?, U8 f4 o2 ?8 m
- void GPIO_Configuration(void)
/ j' {6 G, @9 D8 A. V& y+ n& { - {
7 b( R# y4 p/ o0 ~: M, E - //PE.7~PE.8 小车后轮控制引脚
: o+ v. Z8 N* H3 n- Y6 f$ \ - //PE.9!PE.10 风扇控制引脚
8 S! v6 Q+ `1 u5 ?8 _, q4 @ - & G5 s( }4 p* A3 g1 l+ L
- GPIO_InitTypeDef GPIO_InitStructure;6 V3 @! o6 l& E) P4 e% Y4 P6 P$ l
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); //使能PE端口时钟
' y( G3 g/ |/ V0 x8 q - 6 B" R7 ~* o$ ^7 \% @3 \
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10; //Motor-->PE.7 ... Motor-->PE.10 端口配置
7 h6 K1 V* p$ Z" B3 |' K# p1 e - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
: g, p# z. e# q& A% }! p - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
/ s' h5 J: ]9 T R - GPIO_Init(GPIOE, &GPIO_InitStructure); //根据设定参数初始化GPIOE
. A+ l8 Z% I7 J! w( x* ^* V - GPIO_ResetBits(GPIOE,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10); //PE.7.....PE10 输出低电平' e( U, K8 g, h& E
-
6 b$ d( E2 w( o9 _- k6 A - }
复制代码 " ~! c1 k9 R+ f* T+ J
带代码中都做了详细的介绍,我就不过多的介绍了。不会的可以问我。主要是管脚的配置,都是直接调用的库 函数,这可比51简单多了,不用直接和寄存器打交道,直接和库函数交流就行,太方便了。
8 W, f) w; U H. U: I 主函数里面直接初始化下管脚就行:
3 R/ _- W' h9 R/ f. v# p& u' n7 _0 r k
- GPIO_Configuration(void);
- p; u/ V4 E E' s; B* A' R9 } - int main(void)* A9 W% A `" U ^" W6 Q. P# r
- {. H: B4 o' k. b2 |% b# Z# ?/ K
- while(1);7 ^0 r8 @- J" l: p( |/ F0 ~
- }
复制代码 n& h5 p" u; D" W' @4 w! ]. w
ok!一切打工高成,用J-Link 或者通过串口下到核心板中去,连接上线,就ok了。
; x+ d$ n- ~- z; o; i9 M9 F, z) ?9 i9 l
关于连线问题,这个非常重要,我当初就是没有将线接对,导致高了半天,电机也不转,我用的电机驱动模块是L198N的。
+ s# G# Y5 G, t/ C0 s3 }. C7 a" k9 |8 ? y( X- m4 _! i
7 I3 T* E$ w5 D( d% r. l
, d) Y& l. g# }+ N5 `. o
贴上电路原理图:4 d8 S. o( i8 `. R h9 P/ p* \
3 ~' e2 p& C' J: |3 n* e8 Z
( V- w. o$ i9 r* v- r! @
' {% h4 i" g8 m6 e 相信大家都能看懂,不懂的看看模电、数电稍微懂点电路常识应该都懂吧。嘿嘿……
9 a8 ^7 j! Y, x, d. M0 }
( `8 b- g* Q/ x$ |! O8 }5 a 可以看到小车跑的很快,速度应该很快的。不过不是我们想要的效果,下一篇介绍,怎样控制小车的速度……( X7 m, x7 c6 D; l
3 N# C& F$ U/ R5 _4 F; F9 |电机驱动模块注意不要接反了,容易烧坏,我就烧坏了一个8 O. u! n4 I# ~# u4 Z. J' r
; {. R% q1 k1 }$ i5 t 上面接线的时候注意电机驱动模块使能端的跳线帽不要拿下来,否则不起作用,下一篇在调节小车速度的时候会将跳线帽拿下来,然后接根线进行控制速度,及PWM调速法。
( _3 @% D- o- p* j9 L* [0 t+ H8 O7 K W: d: \
& H* R& c" m9 s/ Y% q1 ?
, Q m: h1 N. E: D9 ?7 `! g, O4 g, n' k
|