/*
* 描述: 浮空输入 低电平有效
* 参数: 无
* 返回: 无*/
void ADC1_Init(void)
{
GPIO_Init(MOTOR1_GPIO, MOTOR1_GPIO_PIN, GPIO_MODE_IN_FL_NO_IT); //浮空输入
GPIO_Init(MOTOR2_GPIO, MOTOR2_TGPIO_PIN, GPIO_MODE_IN_FL_NO_IT); //浮空输入
GPIO_Init(MOTOR3_GPIO, MOTOR3_GPIO_PIN, GPIO_MODE_IN_FL_NO_IT); //浮空输入
GPIO_Init(MOTOR4_GPIO, MOTOR4_GPIO_PIN, GPIO_MODE_IN_FL_NO_IT); //浮空输入
ADC1_DeInit();
ADC1_Init(ADC1_CONVERSIONMODE_SINGLE,
MOTOR1_CHANNEL|MOTOR2_CHANNEL|MOTOR3_CHANNEL|MOTOR4_CHANNEL,
ADC1_PRESSEL_FCPU_D8,
ADC1_EXTTRIG_TIM,
DISABLE,
ADC1_ALIGN_RIGHT,
ADC1_SCHMITTTRIG_ALL,
DISABLE);
ADC1_ITConfig(ADC1_IT_EOCIE,DISABLE); //关中断
ADC1_Cmd(ENABLE);
}
/*
* 描述: 返回ADC值
* 参数: 无
* 返回值:*/
u16 Get_ADC1_Data(void)
{
u8 change_time = 0;
ADC1_ConversionConfig(ADC1_CONVERSIONMODE_SINGLE, MOTOR1_CHANNEL, ADC1_ALIGN_RIGHT);
ADC1_StartConversion();
ADC1_ClearFlag(ADC1_FLAG_EOC); //标志位要在开始启动后再清除
while(!ADC1_GetFlagStatus(ADC1_FLAG_EOC))
{
change_time++;
if(change_time>=255) break;
}
return ADC1_GetConversionValue();
}
/*
* 描述: 浮空输入 低电平有效
* 参数: 无
* 返回: 无*/
void ADC2_Init(void)
{
GPIO_Init(MOTOR1_GPIO, MOTOR1_GPIO_PIN, GPIO_MODE_IN_FL_NO_IT); //浮空输入
GPIO_Init(MOTOR2_GPIO, MOTOR2_GPIO_PIN, GPIO_MODE_IN_FL_NO_IT); //浮空输入
GPIO_Init(MOTOR3_GPIO, MOTOR3_GPIO_PIN, GPIO_MODE_IN_FL_NO_IT); //浮空输入
GPIO_Init(MOTOR4_GPIO, MOTOR4_GPIO_PIN, GPIO_MODE_IN_FL_NO_IT); //浮空输入
ADC2_DeInit();
ADC2_Init(ADC2_CONVERSIONMODE_SINGLE,
MOTOR1_CHANNEL|MOTOR2_CHANNEL|MOTOR3_CHANNEL|MOTOR4_CHANNEL,
ADC2_PRESSEL_FCPU_D8,
ADC2_EXTTRIG_TIM,
DISABLE,
ADC2_ALIGN_RIGHT,
ADC2_SCHMITTTRIG_CHANNEL0,
DISABLE);
ADC2_ITConfig(DISABLE); //关中断
ADC2_Cmd(ENABLE);
}
/*
* 描述: 返回ADC值
* 参数: 无
* 返回值:*/
u16 GetADC2_Data(void)
{
u8 change_time = 0;
ADC2_ConversionConfig(ADC2_CONVERSIONMODE_SINGLE, MOTOR1_CHANNEL, ADC2_ALIGN_RIGHT);
ADC2_StartConversion();
ADC2_ClearFlag(); //标志位要在开始启动后再清除
while(!ADC2_GetFlagStatus())
{
change_time++;
if(change_time>=255) break;
}
ADC2_ClearFlag();
return ADC2_GetConversionValue();
}