uint8_t data_to_write[MAX_DATA_READ]; for (i = 0; i < MAX_DATA_READ; i++ ){ data_to_write = 0x00; } state = I2CWrite(PCF8594_ADDR, 0, 2, MAX_DATA_READ, data_to_write); /* Be careful with below fixed delay. From device to device, or even same device with different write length, or various I2C clock, below delay length may need to be changed accordingly. Having a break point before Write/Read start will be helpful to isolate the problem. */ for ( i = 0; i < 0x2000; i++ );/* Delay after write */ /* Write SLA(W), address, SLA(R), and read one byte back. */ uint8_t data_read[MAX_DATA_READ]; for (i = 0; i < MAX_DATA_READ; i++ ){ data_read = 0; } state = I2CRead(PCF8594_ADDR, 0, 2, MAX_DATA_READ, data_read); |