|
用STM32的IO+ULN2003驱动一个二相五线步进电机(等于两相六线,两个抽头连在一起的),实验代码如下:
//八拍驱动(半步)
//第一拍
GPIO_SetBits(GPIOB,GPIO_Pin_5 | GPIO_Pin_6| GPIO_Pin_7);
Delay(10);
GPIO_ResetBits(GPIOB,GPIO_Pin_4);
Delay(n_count);
//第二拍
GPIO_SetBits(GPIOB,GPIO_Pin_6 | GPIO_Pin_7);
Delay(100);
//GPIO_ResetBits(GPIOB,GPIO_Pin_4 | GPIO_Pin_5);
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
Delay(n_count);
//第三拍
GPIO_SetBits(GPIOB,GPIO_Pin_4 | GPIO_Pin_6 | GPIO_Pin_7);
Delay(100);
//GPIO_ResetBits(GPIOB,GPIO_Pin_5);
Delay(n_count);
疑问:如果把第三拍中的//GPIO_ResetBits(GPIOB,GPIO_Pin_5);注释掉,电机就会无力。
注释掉的原因是,这一句执不执行,它的电平都是低,因为执行完第二步后,它就是低电平。
如果不注释,就正常,可是明明执行这一句,没有出现一个脉冲的呀。。
哪位高手能解释一下? |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|