Быстрый поиск в Google спецификации I2C привел к следующему: http://i2c2p.twibright.com/spec/i2c.pdf
Прошло много времени с тех пор, как я играл с устройствами i2c (мне пришлось написать свой собственный драйвер для специализированного чипсета).
Чип, который выполняет код, является мастером I2C.
i2c_CmdBufAppend(2, 0x50, 1, 2, (char *)pDataWr, true, true); // Cmd = 2 : I2C write
// Address = 0x50
// AddrType = 1 : 7-bit address
// Length = 2 : 2 byte payload
// pDataWr : buffer with 2 bytes payload (0x1234)
// STA = true : generate start
// STO = true : generate stop
Я ничего не знаю о используемой вами библиотеке, но комментарии полностью объясняют, что вы обращаетесьустройство по адресу 0x50 (использует 7-битную адресацию) и записывает 2 байта данных, а также генерирует условия запуска и остановки.
Вам необходимо обратиться к спецификации I2C и EEPROM, с которыми вы взаимодействуете.
Это действительно не сложно, если вы понимаете спецификацию.У которого, кстати, полно примеров чтения / записи данных на устройства I2C.
Некоторые устройства настроены так, что вам необходимо записать для них специальное значение (например, регистр или значение команды), а затем прочитатьназад данные.Это делается путем передачи команды записи, а затем команды чтения без остановки между командами.
Устройство, с которым вы взаимодействуете, должно иметь подробную информацию о специальных командах и тому подобном.Библиотека I2C не будет иметь этих данных.