STM8获取电压值

                                                       STM8获取电压值


STM8获取电压值

(1)端口定义
static void ADC_POWER_Config()
{
  /*  Init GPIO for ADC1 */
  GPIO_Init(GPIOB, GPIO_PIN_2, GPIO_MODE_IN_FL_NO_IT);//可变电阻
  ADC1_DeInit();
  ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, ADC1_CHANNEL_2, ADC1_PRESSEL_FCPU_D2, ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL0, ENABLE);
  ADC1_Cmd(ENABLE);
}

(2)获取电压值(这里采集五次取平均值)
#define  BATTERY_CHECK_COUNT_PER_COLLECT   5   //每次采集的次数
u16 Get_ADC_POWER_Value(void)
{
   u16 nBattery_Check_Value = 0;
   u16 nNum = 0;
 
  for(nNum = 0; nNum < BATTERY_CHECK_COUNT_PER_COLLECT; nNum++)//采集BATTERY_CHECK_COUNT_PER_COLLECT次,累加采集的电量值
  {
    
    ADC1_StartConversion();//开始转换
    nBattery_Check_Value += ADC1_GetConversionValue(); //累加读取adc的转换值  
  }
  
  nBattery_Check_Value = nBattery_Check_Value/(BATTERY_CHECK_COUNT_PER_COLLECT*10);//求出电量平均值
  return nBattery_Check_Value;
}

(3)main函数
void main(void)
{
     ADC_POWER_Config();
    
	 u16 nBattery_Check_Value2 = 0;
	 nBattery_Check_Value2 = Get_ADC_POWER_Value(); //读取电量
	 printf("nBattery_Check_Value2 = %d\n",nBattery_Check_Value2);
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏波.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值