发布时间 : 星期日 文章基于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. *
*
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