pokk 0 24 августа, 2021 Опубликовано 24 августа, 2021 · Жалоба Правлю драйвер I2c он работает полностью на прерываниях. Создал задачу которая закидывает данные в LCD через PCF (адрес + 2 байта данных) Работало это по событиям START->ADDR->BTF(устанавливаю STOP)->BTF -> освобождаю задачу и запускал отправку следующих данных. Появились грабли, после старта устанавливался сразу стоп, пришел к выводу что это из за того что бит START для новой посылки устанавливался слишком рано, после последнего BTF но перед установкой STOP. Поставил ожидание сброса бита STOP в CR1 или флаг I2C_SR2_BUSYBUSY (что правильнее ?) больше таких граблей не встречал. Есть какие либо варианты кроме как в цикле его ждать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться