新手上路
- 积分
- 43
- 金钱
- 43
- 注册时间
- 2015-5-13
- 在线时间
- 0 小时
|

楼主 |
发表于 2015-5-13 23:09:35
|
显示全部楼层
#include "myhead.h"
void RCC_Configration(void);
void GIOP_Configration(void);
void   WM_Configration(void);
void NVIC_InitConfigration(void);
void USART_InitConfigration(void);
// void setSpeed(int org,int tar,int nSpeed);
void check(void);
enum serverName {LeftFrontA,LeftFrontB,LeftFrontC,LeftCentrA,LeftCentrB,LeftCentrC,LeftBackA,LeftBackB,LeftBackC,RightFrontA,RightFrontB,RightFrontC,RihgtCenterA,RihgtCenterB,RihgtCenterC,RihgtBackA,RihgtBackB,RihgtBackC};
void setArgl(enum serverName aa,int angle);
void startStu(void);
void go(void);
void back(void);
void left(void);
void right(void);
void gongi(void);
int standHigh=130;
int severC=140;
int flag=0;
int step=15;
int high=0;
char cmd;
int main(void)
{
RCC_Configration( );
GIOP_Configration( );
PWM_Configration();
NVIC_InitConfigration();
USART_InitConfigration();
high=40+standHigh;
delay_ms(3000);
startStu();
delay_ms(3000);
while(1)
{
if(cmd=='a') go();
if(cmd=='b') back();
if(cmd=='c')left();
if(cmd=='d')right();
if(cmd=='f')startStu();
if(cmd=='e')gongi();
// startStu();
}
}
void   WM_Configration(void)
{
TIM_TimeBaseInitTypeDef TIM_InitStruct;
TIM_OCInitTypeDef TIM_OCInitStrue;
TIM_InitStruct.TIM_Period=2000;
TIM_InitStruct.TIM_Prescaler=720-1;
TIM_InitStruct.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_InitStruct.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM1,&TIM_InitStruct);
TIM_TimeBaseInit(TIM2,&TIM_InitStruct);
TIM_TimeBaseInit(TIM3,&TIM_InitStruct);
TIM_TimeBaseInit(TIM4,&TIM_InitStruct);
TIM_TimeBaseInit(TIM5,&TIM_InitStruct);
TIM_OCInitStrue.TIM_OCMode=TIM_OCMode_PWM1;
TIM_OCInitStrue.TIM_OCPolarity=TIM_OCPolarity_High;
TIM_OCInitStrue.TIM_OutputState=TIM_OutputState_Enable;
TIM_OC1Init(TIM1,&TIM_OCInitStrue); //Tim1TIM_OCPreload_Disable
TIM_OC1PreloadConfig(TIM1,ENABLE);
TIM_OC2Init(TIM1,&TIM_OCInitStrue);
TIM_OC2PreloadConfig(TIM1,ENABLE);
TIM_OC3Init(TIM1,&TIM_OCInitStrue);
TIM_OC3PreloadConfig(TIM1,ENABLE);
TIM_OC4Init(TIM1,&TIM_OCInitStrue);
TIM_OC4PreloadConfig(TIM1,ENABLE);
TIM_OC1Init(TIM2,&TIM_OCInitStrue); //Tim2
TIM_OC1PreloadConfig(TIM2,ENABLE);
TIM_OC2Init(TIM2,&TIM_OCInitStrue);
TIM_OC2PreloadConfig(TIM2,ENABLE);
TIM_OC3Init(TIM2,&TIM_OCInitStrue);
TIM_OC3PreloadConfig(TIM2,ENABLE);
TIM_OC4Init(TIM2,&TIM_OCInitStrue);
TIM_OC4PreloadConfig(TIM2,ENABLE);
TIM_OC1Init(TIM3,&TIM_OCInitStrue); //Tim3
TIM_OC1PreloadConfig(TIM3,ENABLE);
TIM_OC2Init(TIM3,&TIM_OCInitStrue);
TIM_OC2PreloadConfig(TIM3,ENABLE);
TIM_OC3Init(TIM3,&TIM_OCInitStrue);
TIM_OC3PreloadConfig(TIM3,ENABLE);
TIM_OC4Init(TIM3,&TIM_OCInitStrue);
TIM_OC4PreloadConfig(TIM3,ENABLE);
TIM_OC1Init(TIM4,&TIM_OCInitStrue); //time4
TIM_OC1PreloadConfig(TIM4,ENABLE);
TIM_OC2Init(TIM4,&TIM_OCInitStrue);
TIM_OC2PreloadConfig(TIM4,ENABLE);
TIM_OC3Init(TIM4,&TIM_OCInitStrue);
TIM_OC3PreloadConfig(TIM4,ENABLE);
TIM_OC4Init(TIM4,&TIM_OCInitStrue);
TIM_OC4PreloadConfig(TIM4,ENABLE);
TIM_OC1Init(TIM5,&TIM_OCInitStrue); //time5
TIM_OC1PreloadConfig(TIM5,ENABLE);
TIM_OC2Init(TIM5,&TIM_OCInitStrue);
TIM_OC2PreloadConfig(TIM5,ENABLE);
TIM_OC3Init(TIM5,&TIM_OCInitStrue);
TIM_OC3PreloadConfig(TIM5,ENABLE);
TIM_OC4Init(TIM5,&TIM_OCInitStrue);
TIM_OC4PreloadConfig(TIM5,ENABLE);
TIM_Cmd(TIM1,ENABLE);
TIM_Cmd(TIM2,ENABLE);
TIM_Cmd(TIM3,ENABLE);
TIM_Cmd(TIM4,ENABLE);
TIM_Cmd(TIM5,ENABLE);
TIM_CtrlPWMOutputs(TIM1,ENABLE); //what is
GPIO_PinRemapConfig(GPIO_FullRemap_TIM2,ENABLE);
}
void GIOP_Configration(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8; //time1_1 LeftFrontA
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOA,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOA,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOA,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_11; //time1_4 LeftFrontB
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOA,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_15; //time2_1 LeftFrontC
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOA,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_3; //time2_2 LeftCentrA
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOB,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10; //time2_3 LeftCentrB
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOB,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_11; //time2_4 LeftCentrC
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOB,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_6; //time3_1 LeftBackA
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOA,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_7; //time3_2 LeftBackB
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOA,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0; //time3_3 LeftBackC
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOB,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_1; //time3_4 RightFrontA
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOB,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_6; //time4_1 RightFrontB
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOB,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_7; //time4_2 RightFrontC
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOB,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8; //time4_3 RihgtCenterA
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOB,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9; //time4_4 RihgtCenterB
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOB,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0; //time5_1 RihgtCenterC
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOA,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_1; //time5_2 RihgtBackA
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOA,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_2; //time5_3 RihgtBackB
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOA,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_3; //time5_4 RihgtBackC
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOA,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOC,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_11;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOC,&GPIO_InitStruct);
}
void RCC_Configration(void)
{
SystemInit();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOE|RCC_APB2Periph_AFIO,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2|RCC_APB1Periph_TIM3|RCC_APB1Periph_TIM4|RCC_APB1Periph_TIM5,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4,ENABLE);
}
void NVIC_InitConfigration(void)
{
NVIC_InitTypeDef NVIC_InitStruct;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStruct.NVIC_IRQChannel=UART4_IRQn;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=2;
NVIC_InitStruct.NVIC_IRQChannelSubPriority=0;
NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStruct);
}
void USART_InitConfigration(void)
{
USART_InitTypeDef USART_InitStruct;
USART_InitStruct.USART_BaudRate=9600;
USART_InitStruct.USART_WordLength=USART_WordLength_8b;
USART_InitStruct.USART_StopBits=USART_StopBits_1;
USART_InitStruct.USART_Parity=USART_Parity_No;
USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
USART_InitStruct.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
USART_Init(UART4,&USART_InitStruct);
USART_ITConfig(UART4,USART_IT_RXNE,ENABLE);
USART_Cmd(UART4,ENABLE);
}
int fputc(int ch,FILE *f)
{
USART_SendData(UART4,ch);
while(USART_GetFlagStatus(UART4,USART_FLAG_TXE )==RESET);
return ch;
}
//????????
void setArgl(enum serverName aa, int angle)
{
int nTemp;
if(aa==RightFrontA||aa==RightFrontB||aa==RightFrontC||aa==RihgtCenterA||aa==RihgtCenterB||aa==RihgtCenterC||aa==RihgtBackA||aa==RihgtBackB||aa==RihgtBackC)
nTemp=55+(float)(250-55)*((float)(180-angle)/(float)180);
else nTemp=55+(float)(250-55)*((float)(angle)/(float)180);
switch(aa)
{
case LeftFrontA: TIM_SetCompare1(TIM1,nTemp); break;
case LeftFrontB: TIM_SetCompare4(TIM1,nTemp);break;
case LeftFrontC: TIM_SetCompare1(TIM2,nTemp);break;
case LeftCentrA: TIM_SetCompare2(TIM2,nTemp);break;
case LeftCentrB: TIM_SetCompare3(TIM2,nTemp);break;
case LeftCentrC: TIM_SetCompare4(TIM2,nTemp);break;
case LeftBackA: TIM_SetCompare1(TIM3,nTemp);break;
case LeftBackB: TIM_SetCompare2(TIM3,nTemp);break;
case LeftBackC: TIM_SetCompare3(TIM3,nTemp);break;
case RightFrontA: TIM_SetCompare4(TIM3,nTemp);break;
case RightFrontB: TIM_SetCompare1(TIM4,nTemp);break;
case RightFrontC: TIM_SetCompare2(TIM4,nTemp);break;
case RihgtCenterA: TIM_SetCompare3(TIM4,nTemp);break;
case RihgtCenterB: TIM_SetCompare4(TIM4,nTemp);break;
case RihgtCenterC: TIM_SetCompare1(TIM5,nTemp);break;
case RihgtBackA: TIM_SetCompare2(TIM5,nTemp);break;
case RihgtBackB: TIM_SetCompare3(TIM5,nTemp);break;
case RihgtBackC: TIM_SetCompare4(TIM5,nTemp);break;
}
}
void check(void)
{
setArgl(LeftFrontA,130);
setArgl(LeftFrontB,90);
setArgl(LeftFrontC,90);
setArgl(LeftCentrA,90);
setArgl(LeftCentrB,90);
setArgl(LeftCentrC,90);
setArgl(LeftBackA,90);
setArgl(LeftBackB,90);
setArgl(LeftBackC,90);
setArgl(RightFrontA,90);
setArgl(RightFrontB,90);
setArgl(RightFrontC,90);
setArgl(RihgtCenterA,90);
setArgl(RihgtCenterB,90);
setArgl(RihgtCenterC,90);
setArgl(RihgtBackA,90);
setArgl(RihgtBackB,90);
setArgl(RihgtBackC,90);
}
void go(void)
{
if(flag==0)
{
setArgl(LeftFrontA,90); //lf up
setArgl(LeftBackA,90);
setArgl(RihgtCenterA,90);
setArgl(LeftFrontB,high);
setArgl(LeftBackB,high);
setArgl(RihgtCenterB,high);
setArgl(LeftFrontC,155);
setArgl(LeftBackC,155);
setArgl(RihgtCenterC,155);
delay_ms(100);
setArgl(LeftFrontA,90+step); //lf uping go
setArgl(LeftBackA,90+step);
setArgl(RihgtCenterA,90+step);
setArgl(LeftFrontB,high);
setArgl(LeftBackB,high);
setArgl(RihgtCenterB,high);
setArgl(LeftFrontC,155);
setArgl(LeftBackC,155);
setArgl(RihgtCenterC,155);
setArgl(RightFrontA,90-step); //rf downing back
setArgl(RihgtBackA,90-step);
setArgl(LeftCentrA,90-step);
setArgl(RightFrontB,140);
setArgl(RihgtBackB,140);
setArgl(LeftCentrB,140);
setArgl(RightFrontC,severC);
setArgl(RihgtBackC,severC);
setArgl(LeftCentrC,severC);
delay_ms(200);
flag=1;
}
setArgl(LeftFrontA,90+step); //lf down
setArgl(LeftBackA,90+step);
setArgl(RihgtCenterA,90+step);
setArgl(LeftFrontB,140);
setArgl(LeftBackB,140);
setArgl(RihgtCenterB,140);
setArgl(LeftFrontC,severC);
setArgl(LeftBackC,severC);
setArgl(RihgtCenterC,severC);
delay_ms(100);
setArgl(RightFrontA,90-step); //rf up
setArgl(RihgtBackA,90-step);
setArgl(LeftCentrA,90-step);
setArgl(RightFrontB,high);
setArgl(RihgtBackB,high);
setArgl(LeftCentrB,high);
setArgl(RightFrontC,155);
setArgl(RihgtBackC,155);
setArgl(LeftCentrC,155);
delay_ms(100);
setArgl(LeftFrontA,90-step); //lf downing back
setArgl(LeftBackA,90-step);
setArgl(RihgtCenterA,90-step);
setArgl(LeftFrontB,140);
setArgl(LeftBackB,140);
setArgl(RihgtCenterB,140);
setArgl(LeftFrontC,severC);
setArgl(LeftBackC,severC);
setArgl(RihgtCenterC,severC);
setArgl(RightFrontA,90+step); //rf uping go
setArgl(RihgtBackA,90+step);
setArgl(LeftCentrA,90+step);
setArgl(RightFrontB,high);
setArgl(RihgtBackB,high);
setArgl(LeftCentrB,high);
setArgl(RightFrontC,155);
setArgl(RihgtBackC,155);
setArgl(LeftCentrC,155);
delay_ms(200);
setArgl(RightFrontA,90+step); //rf down
setArgl(RihgtBackA,90+step);
setArgl(LeftCentrA,90+step);
setArgl(RightFrontB,140);
setArgl(RihgtBackB,140);
setArgl(LeftCentrB,140);
setArgl(RightFrontC,severC);
setArgl(RihgtBackC,severC);
setArgl(LeftCentrC,severC);
delay_ms(100);
setArgl(LeftFrontA,90-step); //lf up
setArgl(LeftBackA,90-step);
setArgl(RihgtCenterA,90-step);
setArgl(LeftFrontB,high);
setArgl(LeftBackB,high);
setArgl(RihgtCenterB,high);
setArgl(LeftFrontC,155);
setArgl(LeftBackC,155);
setArgl(RihgtCenterC,155);
delay_ms(100);
setArgl(LeftFrontA,90+step); //lf uping go
setArgl(LeftBackA,90+step);
setArgl(RihgtCenterA,90+step);
setArgl(LeftFrontB,high);
setArgl(LeftBackB,high);
setArgl(RihgtCenterB,high);
setArgl(LeftFrontC,155);
setArgl(LeftBackC,155);
setArgl(RihgtCenterC,155);
setArgl(RightFrontA,90-step); //rf downing back
setArgl(RihgtBackA,90-step);
setArgl(LeftCentrA,90-step);
setArgl(RightFrontB,140);
setArgl(RihgtBackB,140);
setArgl(LeftCentrB,140);
setArgl(RightFrontC,severC);
setArgl(RihgtBackC,severC);
setArgl(LeftCentrC,severC);
delay_ms(200);
}
|
|