STM32F103 L298N驱动直流电机STM32F103+L298N驱动直流电机
#ifndef __MOTOR_H
#define __MOTOR_H
#include "stm32f10x.h"
#define A1_On GPIO_SetBits(GPIOE,GPIO_Pin_0)
#define A1_Off GPIO_ResetBits(GPIOE,GPIO_Pin_0)
#define A2_On GPIO_SetBits(GPIOE,GPIO_Pin_2)
#define A2_Off GPIO_ResetBits(GPI...
STM32F103+L298N驱动直流电机
#ifndef __MOTOR_H
#define __MOTOR_H
#include "stm32f10x.h"
#define A1_On GPIO_SetBits(GPIOE,GPIO_Pin_0)
#define A1_Off GPIO_ResetBits(GPIOE,GPIO_Pin_0)
#define A2_On GPIO_SetBits(GPIOE,GPIO_Pin_2)
#define A2_Off GPIO_ResetBits(GPIOE,GPIO_Pin_2)
#define B1_On GPIO_SetBits(GPIOE,GPIO_Pin_4)
#define B1_Off GPIO_ResetBits(GPIOE,GPIO_Pin_4)
#define B2_On GPIO_SetBits(GPIOE,GPIO_Pin_6)
#define B2_Off GPIO_ResetBits(GPIOE,GPIO_Pin_6)
voidMotor_Init(void); //控制引脚设置
voidMotor_Forward(void);//前进
voidMotor_Back(void);//后退
voidMotor_Stop(void);//暂停
voidMotor_TurnRight(void); //右转弯
voidMotor_TurnLeft(void); //左转弯
#endif
#include "Motor.h"
voidMotor_Init(void)
{
GPIO_InitTypeDefGPIO_Initstructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
GPIO_Initstructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_2|GPIO_Pin_4|GPIO_Pin_6; GPIO_Initstructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Initstructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOE,&GPIO_Initstructure);
}
voidMotor_Forward(void)
{
A1_On;
A2_Off;
B1_On;
B2_Off;
}
voidMotor_Back(void)
{
A1_Off;
A2_On;
B1_Off;
B2_On;
}
voidMotor_Stop(void)
{
A1_Off;
A2_Off;
B1_Off;
B2_Off;
}
voidMotor_TurnRight(void)
{
A1_On;
A2_Off;
B1_Off;
B2_Off;
}
voidMotor_TurnLeft(void)
{
A1_Off;
A2_Off;
B1_Off;
B2_On;
}
#include "Motor.h"
#include "sys.h"
voidDelay_ms(uint32_t ms)//利用系统SysTick延时{
uint32_ti;
SysTick_Config(72000);
for(i=0;iCTRL)&(1<<16)));
}
SysTick->CTRL&=SysTick_CTRL_ENABLE_Msk; }
int main(void)
{
Motor_Init();
while(1)
{
Motor_Forward();
Delay_ms(5000);
Motor_Stop();
Delay_ms(2000);
Motor_Back();
Delay_ms(5000);
Motor_Stop();
Delay_ms(2000);
Motor_TurnRight();
Delay_ms(5000);
Motor_Stop();
Delay_ms(2000);
Motor_TurnLeft();
Motor_Stop();
Delay_ms(2000);
}
}
网上很多关于L298N(我用的是可以驱动两路直流电机的模块)的说明文档可以查找,这里就不上接线图了。不过关于L298驱动电压12V的事情到可以对我的做法做个说明,我是用STM32开发板的输出5V接入L298的逻辑接口和驱动接口的,这样驱动两路电机完全没有问题,同样在Arduino中也可以将输出5V接L298的逻辑及驱动接线口。如果开发板或者采用Arduino 板,其实不用用电池盒装5或者7号电池,直接用手机充电板供电也非常好的。
本文档为【STM32F103 L298N驱动直流电机】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。