я когда переходил с Z8Encore (простой 8-битник, но с приятной
системой команд) на STM32, то с трепетом подходил к аппаратному
I2C. Потому как у Zilog-а было как-то наворочено всё это и я там
пользовался исключительно ногодрыгом. А тут (в STM32L476) решил
довериться HAL-у. И нет проблем!