今日进程:学会了如何用STM32去连接L298N电机驱动去驱动电机,使轮子转起来
这个图片是我从百度上找到的,也是找了好久,才知道L298N的引脚是怎么用的,用STM32的引脚去连接电机中的IN引脚和END引脚就可以,然后在STM32中编写代码,使STM32的引脚输出高低电平,END要使能为高电平,IN1和IN2给予1和0,就可以实现转起来,IN1为0,IN2为1,实现正转
电机驱动模块里面有个双H桥,可以用来控制电机正反转以及电机的转动,我的理解是STM32给出高低电平的信号,然后L298N根据高低电平信号去驱动电机转动
STM32中的高低电平输出,用的是GPIO,这个和点亮LED灯差不多
main函数里面
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "car.h"
int main(void)
{
delay_init();
LED_Init();
car();
GPIO_SetBits(GPIOA,GPIO_Pin_10);
while(1){
GPIO_SetBits(GPIOA,GPIO_Pin_9);//1
GPIO_ResetBits(GPIOA,GPIO_Pin_8);//0
}
}
#include "car.h"
void car(void){
GPIO_InitTypeDef GPIO_InitStruce;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitStruce.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruce.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;
GPIO_InitStruce.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStruce);
}
上面那个是car.c文件,其实这些东西是可以一起写到main.c里面去的,但是如果你是跟着STM32官方给出的视频学习STM32F103的话,你就会习惯使用这种分开的方式了
car.h
#ifndef _CAR_H
#define _CAR_H
#include "sys.h"
void car(void);
#endif