/**
 * @brief  Set HTS221 Initialization
 * @param  HTS221_Init the configuration setting for the HTS221
 * @retval HUM_TEMP_OK in case of success, an error code otherwise
 */
static HUM_TEMP_StatusTypeDef HTS221_Init(HUM_TEMP_InitTypeDef *HTS221_Init)
{  
    uint8_t tmp = 0x00;

    /* Configure the low level interface ---------------------------------------*/
    if(HTS221_IO_Init() != HUM_TEMP_OK)
    {
      return HUM_TEMP_ERROR;
    }

    if(HTS221_Power_On() != HUM_TEMP_OK)
    {
      return HUM_TEMP_ERROR;
    }

    if(HTS221_Calibration() != HUM_TEMP_OK)
    {
      return HUM_TEMP_ERROR;
    }
    ////////////////////////////////////////////////////////////////////////////////
    if(HTS221_IO_Read(&tmp, HTS221_ADDRESS, HTS221_RES_CONF_ADDR, 1) != HUM_TEMP_OK)
    {
      return HUM_TEMP_ERROR;
    }

    /* Resolution Register */
    tmp &= ~(HTS221_H_RES_MASK);
    tmp |= HTS221_Init->Humidity_Resolutin;
    
    tmp &= ~(HTS221_T_RES_MASK);
    tmp |= HTS221_Init->Temperature_Resolution;

    if(HTS221_IO_Write(&tmp, HTS221_ADDRESS, HTS221_RES_CONF_ADDR, 1) != HUM_TEMP_OK)
    {
      return HUM_TEMP_ERROR;
    }
    //////////////////////////////////////////////////////////////////////////////////
    if(HTS221_IO_Read(&tmp, HTS221_ADDRESS, HTS221_CTRL_REG1_ADDR, 1) != HUM_TEMP_OK)
    {
      return HUM_TEMP_ERROR;
    }

    /* Output Data Rate selection */
    tmp &= ~(HTS221_ODR_MASK);
    tmp |= HTS221_Init->OutputDataRate;

    if(HTS221_IO_Write(&tmp, HTS221_ADDRESS, HTS221_CTRL_REG1_ADDR, 1) != HUM_TEMP_OK)
    {
      return HUM_TEMP_ERROR;
    }
    
    return HUM_TEMP_OK;
}
Exemplo n.º 2
0
/**
 * @brief  Set HTS221 Initialization
 * @param  HTS221_Init the configuration setting for the HTS221
 * @retval HUM_TEMP_OK in case of success, an error code otherwise
 */
static HUM_TEMP_StatusTypeDef HTS221_Init(HUM_TEMP_InitTypeDef *HTS221_Init)
{
  uint8_t tmp = 0x00;
  
  /* Configure the low level interface ---------------------------------------*/
	/* I2C1 already configured in MX_I2C1_Init - JBD */
//  if(HTS221_IO_Init() != HUM_TEMP_OK)
//  {
//    return HUM_TEMP_ERROR;
//  }
  
  if(HTS221_Power_On() != HUM_TEMP_OK)
  {
    return HUM_TEMP_ERROR;
  }
  
  if(HTS221_Calibration() != HUM_TEMP_OK)
  {
    return HUM_TEMP_ERROR;
  }
  
  if(HTS221_IO_Read(&tmp, HTS221_ADDRESS, HTS221_CTRL_REG1_ADDR, 1) != HUM_TEMP_OK)
  {
    return HUM_TEMP_ERROR;
  }
  
  /* Output Data Rate selection */
  tmp &= ~(HTS221_ODR_MASK);
  tmp |= HTS221_Init->OutputDataRate;
  
  if(HTS221_IO_Write(&tmp, HTS221_ADDRESS, HTS221_CTRL_REG1_ADDR, 1) != HUM_TEMP_OK)
  {
    return HUM_TEMP_ERROR;
  }
  
  HTS221_IO_ITConfig();
  
  return HUM_TEMP_OK;
}