dimka76 63 2 апреля, 2021 Опубликовано 2 апреля, 2021 · Жалоба Здравствуйте. Разрешаю только одно прерывание по Transfer Complette. Настраиваю для RS485 аппаратное управление сигналом DE. передача по DMA, прием запрещен. Но по завершению отправки пакета программа дважды входит в прерывание. Первый раз стоят флаги REACK, TEACK, TXE и TC. Второй раз - REACK, TEACK, TXE. В обработчике по завершению обработки сбрасываю абсолютно все флаги. Пробовал вставлять DSB, DMB после команды сброса флагов, пробовал вызывать NVIC_ClearPendingInterrupt. Ничего не помогает. Может кто-нибудь сталкивался с подобной ситуацией ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 2 апреля, 2021 Опубликовано 2 апреля, 2021 · Жалоба Сбрасывайте флаг по которому разрешено прерывание в начале обработчика прерывания. А затем только полезные действия. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 63 2 апреля, 2021 Опубликовано 2 апреля, 2021 · Жалоба 29 minutes ago, VladislavS said: Сбрасывайте флаг по которому разрешено прерывание в начале обработчика прерывания. А затем только полезные действия. Почему ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 2 апреля, 2021 Опубликовано 2 апреля, 2021 · Жалоба Потому что флаг в контроллере прерываний сбрасывается медленней, чем быстрый процессор выходит из обработчика. И вторично в него попалает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 63 2 апреля, 2021 Опубликовано 2 апреля, 2021 · Жалоба 4 minutes ago, VladislavS said: Потому что флаг в контроллере прерываний сбрасывается медленней, чем быстрый процессор выходит из обработчика. И вторично в него попалает. Спасибо !!! Попробую. А почему DSB и DMB не помогают ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 2 апреля, 2021 Опубликовано 2 апреля, 2021 · Жалоба Потому что они из другой оперы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 63 2 апреля, 2021 Опубликовано 2 апреля, 2021 · Жалоба 7 minutes ago, VladislavS said: Потому что они из другой оперы. Спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 63 5 апреля, 2021 Опубликовано 5 апреля, 2021 · Жалоба On 4/2/2021 at 7:31 PM, VladislavS said: Сбрасывайте флаг по которому разрешено прерывание в начале обработчика прерывания. А затем только полезные действия. Так и сделал. Все отлично заработало. Спасибо ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться