32F205VC, I2C1.

Использую прерывания для передачи (не ожидаю в вайле когда встанет флаг)

разрешил флаги
Код
I2C_CR2_ITERREN | I2C_CR2_ITEVTEN | I2C_CR2_ITBUFEN;

согласно ДШ



То есть бит прерывания должен быть обязательно

В процессе отладки то работает, то затупляет, решил проверить:
Код
         volatile ushort lastreg;
         volatile byte cnt = 0;
    
         void I2C1_EV_IRQHandler()
         {
             ushort status = I2C1->SR1;
             lastreg = status;
             cnt++;
             if(status == 0)
             {
                 __NOP();// тут у меня стоит бряк и он срабатывает!
             }
             .....
    
         }


Как может сработать такой бряк? А если точнее как вообще может сработать такое прерывание?


P.S. Похоже я большой любитель сначала прочесть бит отладчиком, а потом считать в переменную.