void Motor3(uint32_t b, uint32_t a)
{
if(b==1) //1为下降 ,0为上升
{
GPIO_SetBits(GPIOD , GPIO_Pin_13); //PD13为方向
}
else
{
GPIO_ResetBits(GPIOD , GPIO_Pin_13);
}
TIM_Cmd(TIM4, ENABLE); //开启时钟
while(count2<a)
{
if(count2%2==0) //奇偶输出判断是高电平还是低电平,中断服务程序中计数
{
GPIO_SetBits(GPIOD , GPIO_Pin_12); //PD12为脉冲
}
else
{
GPIO_ResetBits(GPIOD , GPIO_Pin_12);
}
}
count2=0;
GPIO_ResetBits(GPIOD , GPIO_Pin_12); //达到预先设定脉冲数,清空计数值并失效时钟
TIM_Cmd(TIM4, DISABLE);
}
stm32f103连接步进电机驱动器和57步进电机,2相4线步进电机,程序编译没错,但是下载到板子上,步进电机没有动作,这是电机动作的定义函数,请教大神们,有问题吗?
我想要实现单片机控制步进电机实现定向运动、静止、反向运动,如此循环往复。当然实体电路中还有6个接近传感器用来控制步进电机运动位置,所以就有一个初始位置的设定,
void Location(void) {
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0)==1&&GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_4)==1)
//接近传感器
{
Motor1(0,3200); // 下降
}
else if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0)==0&&GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_4)==0)
//接近传感器{
Motor1L(1,3200); //上升
}
else if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0)==1&&GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_4)==0)
//接近传感器
{
Motor1L(1,3200); //上升
}
else if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0)==0&&GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_4)==1)
//接近传感器
{
Motor1L(1,32000); //上升
}
Motor1L(1,32000);
Motor1(0,3200);
Motor3L(1,32000);
Motor3(0,3200) ;
}
主函数中
int main(void)
{
RCC_Configuration();
GPIO_Configuration();
NVIC_Configuration();
TIM2_Configuration();
TIM4_Configuration();
USART_Configuration();
while(1)
{
Motor1L(1,3200); //
Motor1(0,32000); //
}
}
请教大家,为什么下载到板子后电机不动呢
|