EasyManua.ls Logo

Waveshare NRF52840 - Chapter 7. I2 C; Scanning Slave Devices; Read Data from BME280

Waveshare NRF52840
72 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
NRF52840 Eval Kit User Manual
Vision: V1.0.1 Date: 2019.01.19 33 / 72
CHAPTER 7. I2C
In this chapter, we will learn about how to use the I2C interface of NRF52840. There
are three examples, which are used here: 006_I2C(Scan Device), 007_I2C(BME280),
008_I2C(MPU6050 3D COUBE)
SCANNING SLAVE DEVICES
It keeps scanning the slave device address of those devices which are connected to
I2C bus.
for(address=1; address<=TWI_ADDRESSES; address++)
{
err_code = nrf_drv_twi_rx(&m_twi, address, &sample_data,
sizeof(sample_data));
if (err_code == NRF_SUCCESS)
{
detected_device = true;
device_address = address;
NRF_LOG_INFO("TWI device detected at address 0x%x.",
address);
NRF_LOG_FLUSH();
}
}
The code will scan slave devices address connected and print them.
READ DATA FROM BME280
BME280 is a module from Bosch that supports sense environmental temperature,
humidity and barometric pressure.
Write/read function from Bosch: https://github.com/BoschSensortec/BME280_driver
int8_t user_i2c_read(uint8_t dev_id, uint8_t reg_addr, uint8_t
*reg_data, uint16_t len)