ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
31 июля
1059008 Топик полностью
il-2 (09.12.2020 15:02, просмотров: 328) ответил Andreas на Сделано конечно на редкость косячно, особенно с учетом ерраты. Но работает по прерыванием нормально в мастере и слейве. Глянул в свой код - I2C_SR1_BTF используется и при приеме, и при передаче. Таймер конечно тоже используется для отлова ошибок и зависонов, но основная работа по прерываниям. В RM очень неплохо описан алгоритм..
А проц какой? В моем при прерывании по BTF до момента его сброса (я делал сброс BTF по START, ReSTART, STOP) прерывание успевает вызваться еще 5 раз. Явный идеалогический косяк. Если BTF - флаг запроса на прерывание, то он должен мнгновенно сбрасываться, а не по достижения кондиций на шине. 

В общем - оставил в таком виде. Это аналогично работе "по опросу", только вместо цикла вызывается обработчик. В остальных местах флаги прерываний отрабатывают нормально.