请教怎么驱动步进电机转起来
时间:10-02
整理:3721RD
点击:
买下电机后只有51的代码 然后改成了STM32的(实际上我并不懂原理)
但是下载进去后没一点 反应 想找一个人请教!
int16_t phasecw[4] = {0x0001,0x0002,0x0004,0x0008};
int16_t phaseccw[4] = {0x0008,0x0004,0x0002,0x0001};
void Moto_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;//定义结构体
__GPIOC_CLK_ENABLE();//设置时钟
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
GPIO_InitStruct.Pin = GPIO_PIN_0;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_SET);
GPIO_InitStruct.Pin = GPIO_PIN_1;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_1, GPIO_PIN_SET);
GPIO_InitStruct.Pin = GPIO_PIN_2;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_2, GPIO_PIN_SET);
GPIO_InitStruct.Pin = GPIO_PIN_3;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_3, GPIO_PIN_SET);
}
static void MotorCW(void)
{
int8_t i;
for(i=0;i<4;i++)
{
GPIOC->ODR |= phasecw;
HAL_Delay(4);
}
}
static void MotorStop(void)
{
GPIOC->ODR |= 0x0000;
}
int main(void)
{
HAL_Init();
SystemClock_Config();
HAL_Delay(50);
while(1)
{
int8_t i;
for(i=0;i<500;i++)
MotorCW();
MotorStop();
}
}
由于我还是一个大一的小白,求轻喷。
实在没办法了,不知道错在哪里
但是下载进去后没一点 反应 想找一个人请教!
int16_t phasecw[4] = {0x0001,0x0002,0x0004,0x0008};
int16_t phaseccw[4] = {0x0008,0x0004,0x0002,0x0001};
void Moto_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;//定义结构体
__GPIOC_CLK_ENABLE();//设置时钟
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
GPIO_InitStruct.Pin = GPIO_PIN_0;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_SET);
GPIO_InitStruct.Pin = GPIO_PIN_1;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_1, GPIO_PIN_SET);
GPIO_InitStruct.Pin = GPIO_PIN_2;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_2, GPIO_PIN_SET);
GPIO_InitStruct.Pin = GPIO_PIN_3;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_3, GPIO_PIN_SET);
}
static void MotorCW(void)
{
int8_t i;
for(i=0;i<4;i++)
{
GPIOC->ODR |= phasecw;
HAL_Delay(4);
}
}
static void MotorStop(void)
{
GPIOC->ODR |= 0x0000;
}
int main(void)
{
HAL_Init();
SystemClock_Config();
HAL_Delay(50);
while(1)
{
int8_t i;
for(i=0;i<500;i++)
MotorCW();
MotorStop();
}
}
由于我还是一个大一的小白,求轻喷。
实在没办法了,不知道错在哪里