What do the I2C functions read and write exactly do

I am currently trying to communicate with a BNO055 via i2c with a NodeMCU (flashing programms through the Arduino IDE). In a past project I already communicated with that sensor and got the right values, programming a NUCLEO-F411RE via Mbed. Mbed however does make it easy to communicate using i2c but using an other IDE (Arduino) I would like to know what exactly happens when I use the member-functions write() and read() of the i2c object.
In ohter words I want to translate something like
data[0] = BNO055_CHIP_ID;
i2c.write(BNO055_ADDR, data, 1, true);
to be working with the Wire.h library from Arduino

Here is the definition.


I believe Arduino’s Wire uses 7 bit slave address while mbed uses 8 bit address. So, you may need to chop off the least significant bit from BNO055_ADDR for Wire.

Firstly thank you for your quick reply.
Do you mean that when my address in Mbed is (28 << 1) it would be just 28 in arduino?
I have already changed that. Now that shouldnt be the thing wich is causing me problems.

Yes, that is what I meant.