в cortex-m4 есть битбандинг, читать биты быстрее - сразу грузится бит в переменную с пина. обычным способом - считывается весь регистр idr а потом еще битовые маска накладывается, первое быстрее. но если битов много то как написать.. нужно проверять реальный код что быстрее.