I2C Lost bus arbitration

GolamMostafa:
So, your result and the result of my codes agree. Now, you have to proceed systematically to isolate the faulty hardware/software.

1. Disconnect all devices and wiring from your Arduino.
2. Make your Arduino I2C Bus working by checking an I2CLCD.
3. Connect your original slave with the Arduino and check if it is working.
4. If the system does not work, change your original slave?

When I disconnect all wiring, the Wire.endTransmission() function will return the status 2 (address send, NACK received) instead of 4, which makes sense since it is not connected with the slave. However, when I tried to probe the SDA and SCLK on Oscilloscope, I see my Teensy actually transmit the slave address 0x74 (ob1110100) and a write (0). Oscilloscope can only read 0xE8 (which is 0b11101000). This meant the Wire.write() function does not send any data through I2C although this function returns 1. Now I just completely confused about the Wire.write() and Wire.endTransmission().