- #include "motor.h"
- #include "rd8_gpio.h"
- #include "HeadFiles\SysFunVarDefine.h"
- #define mtime 1
- void motor_off(void)
- {
- GPIO_WriteLow(GPIO3, 0);
- GPIO_WriteLow(GPIO3, 1);
- GPIO_WriteLow(GPIO3, 2);
- GPIO_WriteLow(GPIO3, 3);
- }
- int motor_init(void)
- {
- GPIO_Init(GPIO3,0,GPIO_MODE_OUT_PP );
- GPIO_Init(GPIO3,1,GPIO_MODE_OUT_PP );
- GPIO_Init(GPIO3,2,GPIO_MODE_OUT_PP );
- GPIO_Init(GPIO3,3,GPIO_MODE_OUT_PP );
- motor_off();
- return 0;
- }
- void motor_left_4(uint8_t speed)
- {
- GPIO_WriteLow(3, 0);
- Delay(mtime);
- GPIO_WriteLow(3, 1);
- Delay(mtime);
- GPIO_WriteHigh(3, 2);
- Delay(mtime);
- GPIO_WriteHigh(3, 3);
- Delay(speed);
- GPIO_WriteLow(3, 1);
- Delay(mtime);
- GPIO_WriteLow(3, 2);
- Delay(mtime);
- GPIO_WriteHigh(3, 3);
- Delay(mtime);
- GPIO_WriteHigh(3, 0);
- Delay(speed);
- GPIO_WriteLow(3, 2);
- Delay(mtime);
- GPIO_WriteLow(3, 3);
- Delay(mtime);
- GPIO_WriteHigh(3, 0);
- Delay(mtime);
- GPIO_WriteHigh(3, 1);
- Delay(speed);
- GPIO_WriteLow(3, 3);
- Delay(mtime);
- GPIO_WriteLow(3, 0);
- Delay(mtime);
- GPIO_WriteHigh(3, 1);
- Delay(mtime);
- GPIO_WriteHigh(3, 2);
- Delay(speed);
- motor_off();
- }
- void motor_right_4(uint8_t speed)
- {
- GPIO_WriteLow(3, 2);
- GPIO_WriteLow(3, 3);
- GPIO_WriteHigh(3, 0);
- GPIO_WriteHigh(3, 1);
- Delay(speed);
- GPIO_WriteLow(3, 1);
- GPIO_WriteLow(3, 2);
- GPIO_WriteHigh(3, 3);
- GPIO_WriteHigh(3, 0);
- Delay(speed);
- GPIO_WriteLow(3, 0);
- GPIO_WriteLow(3, 1);
- GPIO_WriteHigh(3, 2);
- GPIO_WriteHigh(3, 3);
- Delay(speed);
- GPIO_WriteLow(3, 3);
- GPIO_WriteLow(3, 0);
- GPIO_WriteHigh(3, 1);
- GPIO_WriteHigh(3, 2);
- Delay(speed);
- motor_off();
- }
编译完成后,使用ISP工具下载到核心底板上,只听到五线四相步进电机不停地小抖,但并不能线性转动,如果说电压不够,换成了手机充电器直接给电机驱动器供电也是同样的现象,调节了各相的驱动时间也无效。一天一核酸不能少,今天就分享到这儿啦,后续有时间再研究研究。