Тестировал только на STM32F411CE BlackPill. Для других серий надо смотреть pinout SDA1, SCL1; SDA2, SCL2... и менять в main блоке.
Состав:
1. Основной блок.
2. Блок для String.
3. Блок для цифр num.
В приложение скетч для сканирования шины I2C. В 60 и 61 строке скетча изменить пины под другой контроллер или, при подключении к другой шине I2C, в таком виде:
Wire.setSDA(PB7);
Wire.setSCL(PB6);