新手上路
- 积分
- 21
- 金钱
- 21
- 注册时间
- 2018-4-28
- 在线时间
- 3 小时
|
2金钱
我用的是STM32MINI版的板子,程序如下所示,不知道为什么会这样,弄了好几天也不知道怎么回事。
求大神帮忙看下。板子和电机,芯片的接线确定都没错误
#include "led.h"
#include "delay.h"
#include "sys.h"
// IN4: PC9 d
// IN3: PC8 c
// IN2: PC7 b
// IN1: PC6 a
uint16_t phasecw[4] ={0x0200,0x0100,0x0080,0x0040};// D-C-B-A
uint16_t phaseccw[4]={0x0040,0x0080,0x0100,0x0200};// A-B-C-D
void Delay_xms(int x)
{
int i,j;
for(i=0;i<j;i++)
for(j=0;j<100;j++);
}
void Moto_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_ResetBits(GPIOC,GPIO_Pin_6 | GPIO_Pin_7 |GPIO_Pin_8 |GPIO_Pin_9 );
}
void Motorcw(void)
{
uint8_t i;
for(i=0;i<4;i++)
{
GPIO_Write(GPIOC,phasecw);
Delay_xms(50);
}
}
void Motorccw(void)
{
uint8_t i;
for(i=0;i<4;i++)
{
GPIO_Write(GPIOC,phaseccw);
Delay_xms(50);
}
}
void MotorStop(void)
{
GPIO_Write(GPIOC,0x0000);
}
int main()
{
unsigned int i;
Moto_Init();
|
|