ArduinoCore-avr
ArduinoCore-avr copied to clipboard
Wire library read() returns 0xFF on reading only one byte
I am having a weird problem with my I2C code. The problem is that when I try to read only 1 byte in the master I get 0xFF but if I read 2 bytes I get proper value of the first byte.
Wire.requestFrom(SLAVE_ADDRESS, 1);
data = Wire.read();
=> gives data as 0xFF
Wire.requestFrom(SLAVE_ADDRESS, 2);
data0 = Wire.read();
data1 = Wire.read();
=> gives data0 as 0xA5 (which is expected from the single byte read)
Am I doing anything wrong?
0xFF is one byte (0b11111111) in binary it's mean correct. can i get more information about the issue.
Wire.requestFrom(SLAVE_ADDRESS, 1);
while(Wire.available()) { // slave may send less than requested
data0 = Wire.read();
Serial.print(data0);
}