Exemplo n.º 1
0
bool HD100x_read_temp_humi(float* temp , float* humi) {
	unsigned char data[2];
	uint16_t buffer;
	
	data[0] = HDC100X_TEMP;
	HAL_I2C_write(HDC100X_I2CADDR , 1 ,data );
	vTaskDelay(100);
	if(HAL_I2C_read(HDC100X_I2CADDR , 2 , data) != STATUS_OK){
		return false;
	}
	buffer = data[0] << 8 | data[1];
	*temp = (float) buffer;
	*temp /=65536;
	*temp *= 165;
	*temp -= 40;
	
	data[0] = HDC100X_HUMID;
	if(HAL_I2C_read(HDC100X_I2CADDR , 2 , data) != STATUS_OK){
		return false;
	}
	buffer = data[0] << 8 | data[1];
	*humi = (float) buffer;
	*humi /= 65536;
	*humi *= 100;
	
	return true;
}
Exemplo n.º 2
0
bool HDC100x_init(void){
	
	unsigned char data[2];
	uint16_t config = HDC100X_CONFIG_RST | HDC100X_CONFIG_MODE | HDC100X_CONFIG_TRES_14 | HDC100X_CONFIG_HRES_14;
	data[0] = config >> 8;
	data[1] = config & 0xFF;
	HAL_I2C_write(HDC100X_I2CADDR , 2 , data );
	
	data[0] = HDC100X_MANUFID;
	HAL_I2C_write(HDC100X_I2CADDR , 1 ,data );
	HAL_I2C_read(HDC100X_I2CADDR , 2 , data);
	
	if(data[0] != 0x54 || data[1] != 0x49) {
		return false;
	}
	
	data[0] = HDC100X_DEVICEID;
	HAL_I2C_write(HDC100X_I2CADDR , 1 ,data );
	HAL_I2C_read(HDC100X_I2CADDR , 2 , data);
	
	if(data[0] != 0x10 || data[1] != 0x00) {
		return false;
	}
	
	return true;
}
Exemplo n.º 3
0
bool HU21D_F_read_temp_humi(float* temp , float* humi){
	
	unsigned char data[3];
	uint16_t buffer;
	data[0] = HTU21DF_READTEMP;
	HAL_I2C_write(HTU21DF_I2CADDR , 1 , data );
	vTaskDelay(50);
	if(HAL_I2C_read(HTU21DF_I2CADDR , 3 , data) != STATUS_OK){
		return false;
	}
	buffer = data[0] << 8 | data[1];
	*temp = (float) buffer;
	*temp *= 175.72;
	*temp /= 65536;
	*temp -= 46.85;
	
	data[0] = HTU21DF_READHUM;
	HAL_I2C_write(HTU21DF_I2CADDR , 1 , data );
	vTaskDelay(50);
	if(HAL_I2C_read(HTU21DF_I2CADDR , 3 , data) != STATUS_OK){
		return false;
	}
	buffer = data[0] << 8 | data[1];
	*humi = (float) buffer;
	*humi *= 125;
	*humi /= 65536;
	*humi -= 6;
	
	return true;
}
Exemplo n.º 4
0
bool MCP9808_init(void){

	unsigned char data[2];

	data[0] = MCP9808_REG_MANUF_ID;
	HAL_I2C_write(MCP9808_I2CADDR_DEFAULT , 1 ,data );
	HAL_I2C_read(MCP9808_I2CADDR_DEFAULT , 2 , data);
	
	if(data[0] != 0x00 || data[1] != 0x54) {
		return false;
	}
	
	data[0] = MCP9808_REG_DEVICE_ID;
	HAL_I2C_write(MCP9808_I2CADDR_DEFAULT , 1 ,data );
	HAL_I2C_read(MCP9808_I2CADDR_DEFAULT , 2 , data);
	
	if(data[0] != 0x04 || data[1] != 0x000) {
		return false;
	}
	
	return true;
}
Exemplo n.º 5
0
bool HU21D_F_init(void){
	unsigned char data;
	data = HTU21DF_RESET;
	HAL_I2C_write(HTU21DF_I2CADDR , 1 , &data );
	vTaskDelay(100);
	
	data = HTU21DF_READREG;
	HAL_I2C_write(HTU21DF_I2CADDR , 1 , &data );
	HAL_I2C_read(HTU21DF_I2CADDR , 1 , &data );
	
	if(data == 0x20){
		return false;
	}
	
	return true;
}
Exemplo n.º 6
0
/*! @brief get 64bit address
  @param[in] *macaddr	pointer of 64bit mac address
  @return    STATUS_OK	ok
  @exception	EIO hardware error
 ******************************************************************************/
int	get_mac_addr(uint8_t *macaddr)
{
	int status=STATUS_OK;
	int i;
	uint8_t rdata[8];

	HAL_I2C_read((uint8_t)0x20,(uint8_t*)rdata,(uint8_t)8);

	for (i=0;i<8;i++)
	{
		macaddr[i] = rdata[7-i];
	}
	if(status != STATUS_OK)
	{
		status = -EIO;
	}

	return status;
}
Exemplo n.º 7
0
bool MCP9808_read_temp_C(double* temp){
	unsigned char data[2];
	data[0] = 	MCP9808_REG_AMBIENT_TEMP;
	
	if(HAL_I2C_write(MCP9808_I2CADDR_DEFAULT , 1 ,data ) != STATUS_OK) {
		return false;
	}
	if(HAL_I2C_read(MCP9808_I2CADDR_DEFAULT , 2 , data) != STATUS_OK) {
		return false;
	}
	
	uint16_t raw_temp;
	raw_temp = data[0] << 8 |  data[1];
	raw_temp = raw_temp & 0x0FFF;
	*temp = (float) raw_temp / 16.0;
	if(data[0] & 0x10) {
		*temp -= 256;
	}
	return true;
}