Цитата
По протоколу после этого мастер должен выдать СТОП и потом начать чтение.
По какому протоколу? По протоколу I2C? Если так, то ничего он не должен. Для этого и существует понятие повторного старта, чтобы лишний раз не останавливать транзакцию. А STM32 прекрасно ловит после повторного старта и передачи физического адреса прерывание по ADDR, вот его и используйте. И времени там в прерывании раздуплиться да понять что произошло - вагон

Это ж I2C.