资源简介

HR202程序 HR202L元件库 HR202L资料主要参考别人文档

资源截图

代码片段和文件信息

 

#define HR202_CONTR1_OUT     GPIOC->CRH &= 0xffffff0f;GPIOC->CRH &= 0x00000030;//湿敏电阻 Rh
#define HR202_CONTR1_CLR     GPIOC->BRR = (uint32_t)GPIO_Pin_9
#define HR202_CONTR1_SET     GPIOC->BSRR = (uint32_t)GPIO_Pin_9

#define HR202_CONTR2_OUT     GPIOC->CRH &= 0xfffffff0;GPIOC->CRH &= 0x00000003;//标定电阻 Rf
#define HR202_CONTR2_CLR     GPIOC->BRR = (uint32_t)GPIO_Pin_8
#define HR202_CONTR2_SET     GPIOC->BSRR = (uint32_t)GPIO_Pin_8
#define HR202_CONTR2_RD      GPIO_ReadInputDataBit(GPIOCGPIO_Pin_8)

#define HR202_DECT_IN        GPIOC->CRL &= 0xfffffff0;//模拟量输入 

//全局变量定义
INT16U HUMI_vuletemp_vule;  //湿温值
INT32U R_Humideal_int;  //湿温电阻阻值
INT8U PwmTimeCnt = 0;

_HR202_ADC HR202_ADCTbl;

//求u16型数组[num]平均值,去掉最大最小值
u16 AdcConvertAverage(u16 *pu8 num) 

    u8 i; 
    u16 ret=0; 
    u16 max_idmin_idmax_valuemin_value;   
    for(i=0;i    {
      ret+=(*(p+i)); 
    }
   //找到最大和最小值索引  
   ret/=num; 
   max_id=min_id=1; 
   max_value=min_value=0; 
   for(i=0;i   { 
      if((*(p+i)) > ret) 
      { 
          if((*(p+i)) - ret > max_value) 
         { 
              max_value=(*(p+i)) - ret; 
              max_id=i; 
         } 
      } 
      else 
     { 
          if(ret - (*(p+i)) > min_value) 
         { 
             min_value=ret - (*(p+i)); 
             min_id=i; 
         } 
     } 
  } 
  
 //去掉第一个和最大最小值后的平均值 
   ret=0; 
   for(i=0;i  { 
     if((i!=min_id)&&(i!=max_id)) 
     ret+=(*(p+i));      
  }   
  if(min_id!=max_id) 
     ret = (ret+(num/2))/(num-2); 
  else   
     ret = (ret+(num/2))/(num-1);  
  return ret; 
}

/***************************************************************************
*** 函数名称 : HR202Dect_Init                                      
*** 创建人   : xx                                                
*** 创建日期 : xxxx                                           
*** 修改人者 :                                                           
*** 修改日期 :                                                           
*** 输入     : 
*** 返回     : 
*** 函数功能 : AI 初始化
***************************************************************************/
void HR202Dect_Init(void)
{
  //Param 参数初始化
  for(INT8U i=0;i<10;i++)
  {
  HR202_ADCTbl.AITbl[i] = 0;//采集AD数据 10个
  }
  HR202_ADCTbl.AIEnable = OS_FALSE;//采集是否完成
  HR202_ADCTbl.AICnt = 0;//采集数量
  //Pin 初始化IO模拟输入
  HR202_DECT_IN;
  //ADC2 初始化
  ADC_InitTypeDef ADC_InitStructure;
  
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC2ENABLE);
                           
  ADC_DeInit(ADC2);

  ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
  ADC_InitStructure.ADC_ScanConvMode = ENABLE;
  ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
  ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  ADC_InitStructure.ADC_NbrOfChannel = 1;
  ADC_Init(ADC2 &ADC_InitStructure);

  ADC_RegularChannelConfig(A

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       7243  2013-12-05 20:16  HR202.c

----------- ---------  ---------- -----  ----

                 7243                    1


评论

共有 条评论

相关资源