使用直流减速电机

L298N驱动模块

驱动方式:

A为向前转,V为向后转。本案例中使用引脚如下:

左前 PC8 PC9

左后 PC6 PC7

右前 PD8 PD9

右后 PC4 PC5

 头文件中define几个轮子不同的转动方向

1 #define Left_Front_A     GPIOC->ODR |=  (0x1 << 8);GPIOC->ODR &= ~(0x1 << 9);
2 #define Left_Front_V     GPIOC->ODR &= ~(0x1 << 8);GPIOC->ODR |= 0x1 << 9;
3 #define Left_Back_A     GPIOC->ODR |=  (0x1 << 6);GPIOC->ODR &= ~(0x1 << 7);
4 #define Left_Back_V     GPIOC->ODR &= ~(0x1 << 6);GPIOC->ODR |= 0x1 << 7;
5 #define Right_Front_A    GPIOD->ODR |=  (0x1 << 8);GPIOD->ODR &= ~(0x1 << 9);
6 #define Right_Front_V    GPIOD->ODR &= ~(0x1 << 8);GPIOD->ODR |= 0x1 << 9;
7 #define Right_Back_A     GPIOC->ODR |=  (0x1 << 4);GPIOC->ODR &= ~(0x1 << 5);
8 #define Right_Back_V     GPIOC->ODR &= ~(0x1 << 4);GPIOC->ODR |= 0x1 << 5;

c文件中定义几种不同的转动方式:

 1 /*
 2 *********************************************************
 3 *麦克纳姆轮 向前
 4 *
 5 *
 6 *********************************************************
 7 */
 8 void whell_go(void)
 9 {
10     Left_Front_A;
11     Left_Back_A;
12     Right_Front_A;
13     Right_Back_A;
14 }
15
16 /*
17 *********************************************************
18 *麦克纳姆轮 向后
19 *
20 *
21 *********************************************************
22 */
23 void whell_back(void)
24 {
25     Left_Front_V;
26     Left_Back_V;
27     Right_Front_V;
28     Right_Back_V;
29 }
30
31 /*
32 *********************************************************
33 *麦克纳姆轮 向右
34 *
35 *
36 *********************************************************
37 */
38 void whell_right(void)
39 {
40     Left_Front_V;
41     Left_Back_A;
42     Right_Front_A;
43     Right_Back_V;
44 }
45
46 /*
47 *********************************************************
48 *麦克纳姆轮 向左
49 *
50 *
51 *********************************************************
52 */
53 void whell_left(void)
54 {
55     Left_Front_A;
56     Left_Back_V;
57     Right_Front_V;
58     Right_Back_V;
59 }
60
61 /*
62 *********************************************************
63 *麦克纳姆轮 左转
64 *
65 *
66 *********************************************************
67 */
68 void whell_turn_left(void)
69 {
70     Left_Front_V;
71     Left_Back_V;
72     Right_Front_A;
73     Right_Back_A;
74 }
75
76 /*
77 *********************************************************
78 *麦克纳姆轮 右转
79 *
80 *
81 *********************************************************
82 */
83 void whell_turn_right(void)
84 {
85     Left_Front_A;
86     Left_Back_A;
87     Right_Front_V;
88     Right_Back_V;
89 }
01-26 15:30