//初始化步进电机控制端口
//STEP1 PCout(4)
//DIR1 PCout(5)
void STEP_Init(void)
{
RCC->APB2ENR|=1<<4; //使能PORTC时钟
GPIOC->CRL&=0XFF00FFFF;
GPIOC->CRL|=0X00330000;
}
//dir:为方向控制,TRUE:正转 FALSE:反转
//period为周期
//steps:脉冲个数
void Step_Control(u8 dir,u16 period,u32 steps)
{
u32 i;
for(i=0; i <= steps;i++)
{
DIR = dir;
STEP = 1;
delay_us(1);
STEP = 0;
delay_us(period);
}
}
#define TRUE 1
#define FALSE 0
//端口定义
#define STEP PCout(4)
#define DIR PCout(5)
int main(void)
{
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72); //延时初始化
STEP_Init(); //步进电机驱动端口初始化
LED_Init(); //初始化与LED连接的硬件接口
while(1)
{
LED = !LED;
Step_Control(FALSE,1600,200);
delay_ms(1000);
Step_Control(TRUE,1600,400);
delay_ms(1000);
}
}
//初始化步进电机控制端口
//STEP1 PCout(4)
//DIR1 PCout(5)
void STEP_Init(void)
{
RCC->APB2ENR|=1<<4; //使能PORTC时钟
GPIOC->CRL&=0XFF00FFFF;
GPIOC->CRL|=0X00330000;
}
//dir:为方向控制,TRUE:正转 FALSE:反转
//period为周期
//steps:脉冲个数
void Step_Control(u8 dir,u16 period,u32 steps)
{
u32 i;
for(i=0; i <= steps;i++)
{
DIR = dir;
STEP = 1;
delay_us(1);
STEP = 0;
delay_us(period);
}
}
#define TRUE 1
#define FALSE 0
//端口定义
#define STEP PCout(4)
#define DIR PCout(5)
int main(void)
{
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72); //延时初始化
STEP_Init(); //步进电机驱动端口初始化
LED_Init(); //初始化与LED连接的硬件接口
while(1)
{
LED = !LED;
Step_Control(FALSE,1600,200);
delay_ms(1000);
Step_Control(TRUE,1600,400);
delay_ms(1000);
}
}
举报