使用STM32作为小车控制器,控制小车2个步进电机运动,PWM波频率调节小车速度,2个IO控制小车方向
头文件部分:
#ifndef __MOTORCONTROL_H
#define __MOTORCONTROL_H
#include "sys.h"
//////////////////////////////////////////////////////////////////////////////////
//电机抱闸驱动器控制程序
//////////////////////////////////////////////////////////////////////////////////
//全局变量
int motion;//电机停止
int arrp, pscp;//PWM频率调节参数
float comp;
void Initialization();//初始化
void Motor_IO_Init(void);//初始化GPIO口
/******************************
*
* 机器人运动控制程序
*
********************************/
#define Vacuumpump PCout(11)
#define MOTOR0 PCout(10)
void Vacuumpumppoweron();//上电
void Vacuumpumppoweroff();//下电
///////////////////////////////////////////////////////////
void Brakeon();//抱闸上电
void Brakeoff();//抱闸下电
///////////////////////////////////////////////////////////
//左右驱动器使能函数
void poweron();//使能上电
void poweroff();//使能下电
//左驱动器DIR口控制
void dirleft1();
void dirleft0();
//右驱动器DIR口控制
void dirright1();
void dirright0();
///////////////////////////////////////////////////////////
void pulleft();//左驱动器PUL脉冲输出
void pulright();//右驱动器PUL脉冲输出
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////
void forward();//前进定义
void backward();//后退定义
void turnleft();//左转定义
void turnright();//右转定义
void stop();//停止定义
void fastVel();//电机快速
void fast();//电机快速
void middVel();//电机慢速
void slow();//电机慢速
void slowVel();//电机慢速
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////
//PWM脉冲产生函数
void TIM14_PWM_Init(u32 arr,u32 psc);
void TIM10_PWM_Init(u32 arr,u32 psc);
#endif
源文件部分:
#include "Motorcontrol.h"
#include "delay.h"
#include "stm32f4xx_gpio.h"
#include "stm32f4xx_rcc.h"
#include "usart.h"
#include "stm32f4xx_tim.h"
#inclu