基于STM32的步进电机控制系统 联系客服

发布时间 : 星期日 文章基于STM32的步进电机控制系统更新完毕开始阅读

40

附录Ⅱ 程序清单

/**

******************************************************************************

* @file TIM/PWM_Output/main.c * @author MCD Application Team * @version V3.2.0 * @date 03/01/2010 * @brief Main program body

****************************************************************************** * @copy *

* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS

* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE

* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY

* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING

* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE

* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. *

*

© COPYRIGHT 2010 STMicroelectronics

*/

41

/* Includes ------------------------------------------------------------------*/ #include \#include \#include \#include

/** @addtogroup STM32F10x_StdPeriph_Examples * @{ */

/** @addtogroup TIM_PWM_Output * @{ */

/* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ #define LED ( 1 << 5 ) // PB5: LED D2

#define BP2 0x2000 // PC13: BP2 #define BP3 0x0001 // PA0 : BP3

#define UP 0x0800 // PB11: UP #define RIGHT 0x1000 // PB12: RIGHT #define LEFT 0x2000 // PB13: LEFT #define DOWN 0x4000 // PB14: DOWN #define OK 0x8000 // PB15: OK

#define JOYSTICK 0xF800 // JOYSTICK ALL KEYS

#define ADC1 ((ADC_TypeDef *) ADC1_BASE) #define DMA1_Channel1 ((DMA_Channel_TypeDef *) DMA1_Channel1_BASE)

42

unsigned short analog []; /* voltage on analog Pins PA1 .. PA3 */ float ad_value1,ad_value2,ad_value;

/* Private macro -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; uint16_t CCR1_Val = 255; uint16_t CCR2_Val = 0; uint16_t CCR3_Val = 255; uint16_t CCR4_Val = 255; //uint16_t CCR1_New=133 ; //uint16_t CCR2_New=100 ; u16 CCR31_Val = 5; uint16_t PrescalerValue = 0; char run_dir;

/* Private function prototypes -----------------------------------------------*/ void RCC_Configuration(void); void GPIO_Configuration(void); void NVIC_Configuration(void);

//void TIM2_INIT_CCR1_2_VAL(uint16_t CCR1_Val,uint16_t CCR2_Val,uint16_t CCR3_Val,uint16_t CCR4_Val);

void TIM2_INIT_CCR1_2_VAL(uint16_t CCR11_Val,unsigned char Ch_Num); void Motor_Steps(unsigned char fDirect,unsigned int mSteps); static void InMotor_Energy(unsigned char mId,unsigned char mNum); static void InMotor_DirecctStep(unsigned char fDirect);

/* Private functions ---------------------------------------------------------*/

/*----------------------------------------------------------*\\

| Delay | | 延时 Inserts a delay time. |

43