手把手入门STM32 ——步进电机操作

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); //IO初始化
void Stepper(void);
#endif

Uln2003.c

#include "uln2003.h"

//按键初始化函数
void ULN_Init(void) //IO初始化
{
	GPIO_InitTypeDef GPIO_InitStructure;

	RCC_APB2PeriphClockCmd(IN1_PORT_CLK | IN2_PORT_CLK | IN3_PORT_CLK | IN4_PORT_CLK, ENABLE); //使能PORTA,PORTC时钟

	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

	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

	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

	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);//初始化GPIO
}


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)

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值