STM8S的ADC配置

/*
* 描述: 浮空输入  低电平有效
* 参数: 无
* 返回: 无*/
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();
}

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值