高中生
最后登录1970-1-1
在线时间 小时
注册时间2016-10-27
|
用L298N驱动一个两相四线步进电机,按照网上提供的时序给信号。可是步进电机不转,用手拧步进电机,明显感觉有扭矩。把延迟调高之后用手可以感觉到步进电机是在正向一步和负向一步来回动。不能完成循环转圈。(小白一个,望大神指教)主程序: int main(void){
MOTOR_GPIO_Config();
while(1)
{
step1();
delay_us(10000);
step2();
delay_us(10000);
step3();
delay_us(10000);
step4();
delay_us(10000);
}
}
程序:void step1(void) {
GPIO_SetBits(GPIOA,MOTOR_GPIO_PinA);
GPIO_ResetBits(GPIOA,MOTOR_GPIO_PinA_);
GPIO_SetBits(GPIOA,MOTOR_GPIO_PinB);
GPIO_ResetBits(GPIOA,MOTOR_GPIO_PinB_);
}
void step2(void)
{
GPIO_SetBits(GPIOA,MOTOR_GPIO_PinA_);
GPIO_ResetBits(GPIOA,MOTOR_GPIO_PinA);
GPIO_SetBits(GPIOA,MOTOR_GPIO_PinB);//设置A口6引脚
GPIO_ResetBits(GPIOA,MOTOR_GPIO_PinB_);//设置A口7引脚
}
void step3(void)
{
GPIO_SetBits(GPIOA,MOTOR_GPIO_PinA_);//设置A口4引脚
GPIO_ResetBits(GPIOA,MOTOR_GPIO_PinA);//设置A口5引脚
GPIO_SetBits(GPIOA,MOTOR_GPIO_PinB_);//设置A口6引脚
GPIO_ResetBits(GPIOA,MOTOR_GPIO_PinB);//设置A口7引脚
}
void step4(void)
{
GPIO_SetBits(GPIOA,MOTOR_GPIO_PinA);//设置A口4引脚
GPIO_ResetBits(GPIOA,MOTOR_GPIO_PinA_);//设置A口5引脚
GPIO_SetBits(GPIOA,MOTOR_GPIO_PinB_);//设置A口6引脚
GPIO_ResetBits(GPIOA,MOTOR_GPIO_PinB);//设置A口7引脚
}
|
|