Адаптирую проект метеостанции под свой дисплей esp32-8048s070 , на дисплее touch подключен через I2C к gpio 19 20 esp32 , на плате есть разьем I2C но с gpio 17 и 18 к нему я подключил датчики si7021 или bme280. В исходном коде если не использовать датчики то тач работает , если использовать датчики то после инициализации тача она перед ними идет , для работы с датчиками wire переписывает wire.begin(pin_i2c_sda, pin_i2c_scl); ну и соответственно тач не работает.
то что можно так две шины организовать я понял wire и wire1 , но тогда библиотеки переделать придется под wire1 тк там везде используется wire (или я что то не понимаю?). интересно можно ли как то без переделки библиотек обьединить две I2C в одну ware ?
вот нахрена разработчики дисплея посадили тач на отдельные выводы а не на разьем что на плате I2C
Всё верно, можно сделать несколько i2c интерфейсов.
Есть еще вариант, два проводочка припаять к i2c от тачпада и использовать его как единственный i2c. (Но надо в коде смотреть, как реализованы инициализация и использование i2c тачпада, возможно нужно будет править код)
К сожалению я не совсем понял в 7 сообщении ((Есть библиотеки принимающие как параметр ссылку или указатель на объект Wire)) как такой вариант реализовать.
Есть библиотеки, где интерфейс I2c прописан жестко - то есть указано Wire и только с ним библиотека и работает.
А есть те, где номер I2c - величина переменная. То есть можно задать, чтобы библиотека обращалась к Wire, а можно к Wire1, или Wire2 (если есть). И задается это одной переменной в коде, без замены Wire на Wire1 в исходниках библиотеки