BMP280 подключён к I2C1 на выводах PB6/PB7. Код сгенерирован Кубом, подключена библиотека, пока ничего не делаю кроме чтения с датчика и отправки в порт. Никакой другой периферии, таймеров, ничего не взведено и не трогается. И... оно не работает. Вообще никак. Оба вывода в состоянии лог.1 и ничего не происходит.
Если тем же Кубом собрать тот же проект, но I2C1 назначить на соседние выводы PB8/PB9, то всё прекрасно стартует, читается и шлётся. Но... у меня уже пара десятков плат, на которых датчик разведён на выводы рядом. Перемычек честно говоря не охота.
Собственно вопрос -- что делать? На используемых мной выводах (PB6/PB7) ещё возможен USART1. Но я его не использую, использую USART2. Он тоже работает штатно, никаких косяков. Если в коде инициализации I2C руками заменить GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; на GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; то осциллографом становятся видны попытки к посылкам. Но естественно в режиме пуш-пулл ничего работать не будет. И дело явно не в датчике/проводах, потому что такой же датчик подключенный на макетке к другим выводам работает нормально. Воооот... Я в растерянности, товарищи. Микроконтроллер вроде один из самых популярных, а вот найти ничего не смог.

