ULN2003步进电机通过延时固定打角

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31339221/article/details/77247861

主函数

#include "dj.h"
#include "delay.h"
#include "sys.h"
#include "key_led.h"

//ALIENTEK miniSTM32¿ª·¢°åʵÑé1
//ÅÜÂíµÆʵÑé  
//¼¼ÊõÖ§³Ö£ºwww.openedv.com
//¹ãÖÝÊÐÐÇÒíµç×ӿƼ¼ÓÐÏÞ¹«Ë¾
        
      
int main()
{	
	 int i=512;   //ÕâÀïתһȦÐèÒª4096¸öÂö³åÐźŠתһȦiÉèÖÃΪ512
	u32 t=550;    //¼ÆËãµÃ305Ϊ10sµÄʱ¼ä£¬ÕâÀïÓÐ1sµÄÎó²î£¬¹Ê¼õÈ¥ÁË1sµÄʱ¼ä   
								//													1s¼ÆËãµÃµ½ËùÐèÑÓʱΪ30     305-30=275
								//´ËÍ⣬¼ÆËãÁË5sËùÐèµÄÑÓʱ£¬275/2=137.5 È¡137  ²âµÃʱ¼äÎó²îÔÚ0.2s×óÒÔÄÚ																										 
	delay_init();	    	 //ÑÓʱº¯Êý³õʼ»¯					
	Dj_Init();		  	//³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú  
  
 while(1)
 {
	 while(i)
   {
		 A1_H;B1_L;C1_L;D1_L;
	   delay_us(t);
     A1_H;B1_H;C1_L;D1_L;
	   delay_us(t);
     A1_L;B1_H;C1_L;D1_L;
	   delay_us(t);
     A1_L;B1_H;C1_H;D1_L;
	   delay_us(t);
     A1_L;B1_L;C1_H;D1_L;
	   delay_us(t);
     A1_L;B1_L;C1_H;D1_H; 
	   delay_us(t);
     A1_L;B1_L;C1_L;D1_H;	 
	   delay_us(t);
     A1_H;B1_L;C1_L;D1_H;
	   delay_us(t);
		 i--;
	 }

 }
}

端口使能

dj.c

#include "stm32f10x.h"
#include "sys.h"
#include "dj.h"
#include "delay.h"





void Dj_Init(void)
{
 
 GPIO_InitTypeDef  GPIO_InitStructure;
 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);	 //ʹÄÜPA,PD¶Ë¿ÚʱÖÓ
	
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;				 //LED0-->PA.8 ¶Ë¿ÚÅäÖÃ
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //ÍÆÍìÊä³ö
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO¿ÚËÙ¶ÈΪ50MHz
 GPIO_ResetBits(GPIOA,GPIO_Pin_0);						 //PA.8 Êä³ö¸ß
	 GPIO_Init(GPIOA, &GPIO_InitStructure);					 //¸ù¾ÝÉ趨²ÎÊý³õʼ»¯GPIOA.8


 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;	    		 //LED1-->PD.2 ¶Ë¿ÚÅäÖÃ, ÍÆÍìÊä³ö
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //ÍÆÍìÊä³ö
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO¿ÚËÙ¶ÈΪ50MHz
 GPIO_ResetBits(GPIOA,GPIO_Pin_1); 						 //PD.2 Êä³ö¸ß 
GPIO_Init(GPIOA, &GPIO_InitStructure);					 //¸ù¾ÝÉ趨²ÎÊý³õʼ»¯GPIOA.8

	
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;	    		 //LED1-->PD.2 ¶Ë¿ÚÅäÖÃ, ÍÆÍìÊä³ö
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //ÍÆÍìÊä³ö
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO¿ÚËÙ¶ÈΪ50MHz
 GPIO_ResetBits(GPIOA,GPIO_Pin_2); 						         //PD.2 Êä³ö¸ß 
GPIO_Init(GPIOA, &GPIO_InitStructure);					

	
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;	    		 //LED1-->PD.2 ¶Ë¿ÚÅäÖÃ, ÍÆÍìÊä³ö
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //ÍÆÍìÊä³ö
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO¿ÚËÙ¶ÈΪ50MHz
 GPIO_ResetBits(GPIOA,GPIO_Pin_3); 						 //PD.2 Êä³ö¸ß 
 GPIO_Init(GPIOA, &GPIO_InitStructure);					 //¸ù¾ÝÉ趨²ÎÊý³õʼ»¯GPIOA.8

}




猜你喜欢

转载自blog.csdn.net/qq_31339221/article/details/77247861