2024-11-24 11:18
86 次阅读|
0 个评论
```c void step(int dir) { if (dir == 0) // 正转 { GPIO_SetBits(GPIOB, IN1_PIN); GPIO_ResetBits(GPIOB, IN2_PIN); GPIO_ResetBits(GPIOB, IN3_PIN); GPIO_ResetBits(GPIOB, IN4_PIN); delay_ms(5); GPIO_ResetBits(GPIOB, IN1_PIN); GPIO_SetBits(GPIOB, IN2_PIN); GPIO_ResetBits(GPIOB, IN3_PIN); GPIO_ResetBits(GPIOB, IN4_PIN); delay_ms(5); GPIO_ResetBits(GPIOB, IN1_PIN); GPIO_ResetBits(GPIOB, IN2_PIN); GPIO_SetBits(GPIOB, IN3_PIN); GPIO_ResetBits(GPIOB, IN4_PIN); delay_ms(5); GPIO_ResetBits(GPIOB, IN1_PIN); GPIO_ResetBits(GPIOB, IN2_PIN); GPIO_ResetBits(GPIOB, IN3_PIN); GPIO_SetBits(GPIOB, IN4_PIN); delay_ms(5); } else if (dir == 1) // 反转 { GPIO_ResetBits(GPIOB, IN1_PIN); GPIO_ResetBits(GPIOB, IN2_PIN); GPIO_ResetBits(GPIOB, IN3_PIN); GPIO_SetBits(GPIOB, IN4_PIN); delay_ms(5); GPIO_ResetBits(GPIOB, IN1_PIN); GPIO_ResetBits(GPIOB, IN2_PIN); GPIO_SetBits(GPIOB, IN3_PIN); GPIO_ResetBits(GPIOB, IN4_PIN); delay_ms(5); GPIO_ResetBits(GPIOB, IN1_PIN); GPIO_SetBits(GPIOB, IN2_PIN); GPIO_ResetBits(GPIOB, IN3_PIN); GPIO_ResetBits(GPIOB, IN4_PIN); delay_ms(5); GPIO_SetBits(GPIOB, IN1_PIN); GPIO_ResetBits(GPIOB, IN2_PIN); GPIO_ResetBits(GPIOB, IN3_PIN); GPIO_ResetBits(GPIOB, IN4_PIN); delay_ms(5); } } void StepMotor() { SystemInit(); // 初始化系统时钟和外设 StepMotor_Init(); // 初始化步进电机的GPIO引脚 step(0); // 正转一步 step(0); // 正转两步 step(0); // 正转三步 step(0); // 正转四步 delay_ms(500); // 延时500毫秒 step(1); // 反转一步 step(1); // 反转两步 step(1); // 反转三步 step(1); // 反转四步 delay_ms(500); // 延时500毫秒 } ```