Использую прерывания для передачи (не ожидаю в вайле когда встанет флаг)
разрешил флаги
Код
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();// тут у меня стоит бряк и он срабатывает!
}
.....
}
volatile byte cnt = 0;
void I2C1_EV_IRQHandler()
{
ushort status = I2C1->SR1;
lastreg = status;
cnt++;
if(status == 0)
{
__NOP();// тут у меня стоит бряк и он срабатывает!
}
.....
}
Как может сработать такой бряк? А если точнее как вообще может сработать такое прерывание?
P.S. Похоже я большой любитель сначала прочесть бит отладчиком, а потом считать в переменную.