STM32
直播中

张玉珍

8年用户 1143经验值
私信 关注
[问答]

求大佬分享STM32F103C8T6 ULN2003步进电机驱动代码

求大佬分享STM32F103C8T6 ULN2003步进电机驱动代码

回帖(1)

韩刚龙

2021-12-22 11:07:24
步进电机的驱动原理特别简单百度一下就OK了。
  以下是用流水灯改进的代码。很垃圾但是可以使用!!!
  仅供测试
  
  
#include "stm32f10x.h"
#include "delay.h"
#include "sys.h"

void Delay(u32 count)
{
        u32 i=4000;
        for(;i }
int main(void)
{       
        int t=500000;
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
       
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;
        GPIO_Init(GPIOA,&GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;
        GPIO_Init(GPIOA,&GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;
        GPIO_Init(GPIOA,&GPIO_InitStructure);
       
        while(1){
        GPIO_ResetBits(GPIOA,GPIO_Pin_0);
        GPIO_SetBits(GPIOA,GPIO_Pin_1);
        GPIO_SetBits(GPIOA,GPIO_Pin_2);
        GPIO_SetBits(GPIOA,GPIO_Pin_3);       
//        delay_ms(t);       
        Delay(t);       
        GPIO_SetBits(GPIOA,GPIO_Pin_0);
        GPIO_ResetBits(GPIOA,GPIO_Pin_1);
        GPIO_SetBits(GPIOA,GPIO_Pin_2);
        GPIO_SetBits(GPIOA,GPIO_Pin_3);       
//        delay_ms(t);
Delay(t);
        GPIO_SetBits(GPIOA,GPIO_Pin_0);
        GPIO_SetBits(GPIOA,GPIO_Pin_1);
        GPIO_ResetBits(GPIOA,GPIO_Pin_2);
        GPIO_SetBits(GPIOA,GPIO_Pin_3);       
//        delay_ms(t);
Delay(t);
        GPIO_SetBits(GPIOA,GPIO_Pin_0);
        GPIO_SetBits(GPIOA,GPIO_Pin_1);
        GPIO_SetBits(GPIOA,GPIO_Pin_2);
        GPIO_ResetBits(GPIOA,GPIO_Pin_3);       
//        delay_ms(t);
Delay(t);       
        }
}       
       
/*        GPIO_InitTypeDef  GPIO_InitStructure;
        delay_init();
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);         //??PB,PE????
       
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;                                 //LED0-->PB.5 ????
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //????
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO????50MHz
  GPIO_Init(GPIOA, &GPIO_InitStructure);                                         //?????????GPIOB.5
  GPIO_SetBits(GPIOA,GPIO_Pin_2);                                                 //PB.5 ???
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;                             //LED1-->PE.5 ????, ????
  GPIO_Init(GPIOA, &GPIO_InitStructure);                                           //???? ,IO????50MHz
  GPIO_SetBits(GPIOA,GPIO_Pin_3);                                                  //PE.5 ???           
  while(1)
        {
            GPIO_ResetBits(GPIOA,GPIO_Pin_2);
            GPIO_SetBits(GPIOA,GPIO_Pin_3);
//                        Delay(5000000);
                        delay_ms(1000);
                        GPIO_SetBits(GPIOA,GPIO_Pin_2);
                        GPIO_ResetBits(GPIOA,GPIO_Pin_3);
//                        Delay(5000000);
                        delay_ms(1000);
        }*/
//}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分