/** * @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; }
/** * @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; }