STM32 控制步进电机 28BYJ-48 http://blog.chinaunix.net/uid-12664992-id-300272.html
步进电机驱动最简化的逻辑:
//四相八拍:A->AB->B ->BC ->C ->CD ->D ->DA unsigned char Motor_StepDat[8] = {0x08,0x0C,0x04,0x06,0x02,0x03,0x01,0x09}; /* A 1000 0x08 AB 1100 0x0C B 0100 0x04 BC 0110 0x06 C 0010 0x02 CD 0011 0x03 D 0001 0x01 DA 1001 0x09 */ void MotorH_Step1(unsigned char Dir_Flag) { if(Dir_Flag) { Motor1_StepNum++; } else { Motor1_StepNum--; } GPIOB->ODR |= ((unsigned short)Motor_StepDat[Motor1_StepNum]<<12); GPIOB->ODR &= (((unsigned short)Motor_StepDat[Motor1_StepNum]<<12) | 0x0FFF); //驱动电机的引脚是PB12-PB15,将这四位的值设置为Motor_StepDat[Motor1_StepNum] }
S和STM32的智能步进电机驱动控制模块设计 http://wenku.baidu.com/view/0b0876479ec3d5bbfd0a748a.html