Протокол I2C может использовать два адреса: адрес микросхемы на шине I2C (7 или 10 бит) и адрес регистра.Технически говоря, адрес регистра находится на уровне выше, чем I2C, поэтому он не является частью протокола I2C.
Когда вы отправляете данные, все отправленные данные будут поступать с хоста.Не будет никакого «ответа».
При получении данных все полученные данные будут поступать с устройства.Здесь нет «регистрационного адреса».
Таким образом, в этом случае вы по существу задаетесь вопросом, как вы можете прочитать регистр по его адресу.Это зависит от устройства, но обычно работает, сначала сообщая (отправляя) устройству какой-либо адрес, к которому вы обращаетесь, без его значения, а затем читая данные с устройства.
Я не уверен, как выразработан конкретный чип, но если бы я был разработчиком микрочипа, я бы поддержал чтение с произвольного адреса регистра, записав только 1 байт (адрес, без значения), а затем прочитав 1 байт (таким образом, возвращая значение по адресу).Я бы также поддержал запись в произвольный адрес регистра, записав 2 байта (адрес, значение).
Итак, по сути, вы должны выбрать регистр, отправив его адрес, а затем вы можете получить доступ к регистру, получив егоСодержание.
Я не уверен, что ваш чип разработан таким образом.Вы должны серьезно взглянуть на спецификации I2C чипа.