Ну тогда надо больше подробностей. Потому что, например, uart и i2c
— это две большие разницы. Ну и какие-то вещи есть смысл обобщать,
а другие настолько крепко прибиты к железу, что делать вид, что они
могут быть прибиты к другому железу — это бред. Скажем, работать с
блоком CRC у stm32 и делать вид, что sizeof(int) может быть не 4.