Uln2003驱动五线四向布进电机
(按一次按键步进电机约旋转60°)
Uln2003.h
#ifndef __ULN_H
#define __ULN_H
#include "Systick.h"
#include "stm32f10x.h"
#define IN1_PORT_CLK RCC_APB2Periph_GPIOA
#define IN1_PORT GPIOA
#define IN1_PORT_PIN GPIO_Pin_4
#define IN2_PORT_CLK RCC_APB2Periph_GPIOA
#define IN2_PORT GPIOA
#define IN2_PORT_PIN GPIO_Pin_5
#define IN3_PORT_CLK RCC_APB2Periph_GPIOA
#define IN3_PORT GPIOA
#define IN3_PORT_PIN GPIO_Pin_6
#define IN4_PORT_CLK RCC_APB2Periph_GPIOA
#define IN4_PORT GPIOA
#define IN4_PORT_PIN GPIO_Pin_7
void ULN_Init(void);
void Stepper(void);
#endif
Uln2003.c
#include "uln2003.h"
void ULN_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(IN1_PORT_CLK | IN2_PORT_CLK | IN3_PORT_CLK | IN4_PORT_CLK, ENABLE);
GPIO_InitStructure.GPIO_Pin = IN1_PORT_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(IN1_PORT, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = IN2_PORT_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(IN2_PORT, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = IN3_PORT_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(IN3_PORT, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = IN4_PORT_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(IN4_PORT, &GPIO_InitStructure);
}
void Stepper()
{
u8 i;
for(i=0;i<86;i++)
{
GPIO_SetBits(GPIOA, GPIO_Pin_4);
Delay_ms(4);
GPIO_ResetBits(GPIOA, GPIO_Pin_4);
GPIO_SetBits(GPIOA, GPIO_Pin_7);
Delay_ms(4);
GPIO_ResetBits(GPIOA, GPIO_Pin_7);
GPIO_SetBits(GPIOA, GPIO_Pin_6);
Delay_ms(4);
GPIO_ResetBits(GPIOA, GPIO_Pin_6);
GPIO_SetBits(GPIOA, GPIO_Pin_5);
Delay_ms(4);
GPIO_ResetBits(GPIOA, GPIO_Pin_5);
}
}
注:INT1(PA^4)
INT2(PA^5)
INT3(PA^6)
INT4(PA^7)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)