Перейти к содержанию
    

STM32F743 UART4 DMA ISR

Здравствуйте.

Разрешаю только одно прерывание по Transfer Complette.

Настраиваю для RS485 аппаратное управление сигналом DE.

передача по DMA, прием запрещен.

Но по завершению отправки пакета программа дважды входит в прерывание.

Первый раз стоят флаги REACK, TEACK, TXE и TC.

Второй раз - REACK, TEACK, TXE.

В обработчике по завершению обработки сбрасываю абсолютно все флаги.

Пробовал вставлять DSB, DMB после команды сброса флагов, пробовал вызывать NVIC_ClearPendingInterrupt.

Ничего не помогает.

Может кто-нибудь сталкивался с подобной ситуацией ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сбрасывайте флаг по которому разрешено прерывание в начале обработчика прерывания. А затем только полезные действия.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

29 minutes ago, VladislavS said:

Сбрасывайте флаг по которому разрешено прерывание в начале обработчика прерывания. А затем только полезные действия.

Почему ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Потому что флаг в контроллере прерываний сбрасывается медленней, чем быстрый процессор выходит из обработчика. И вторично в него попалает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, VladislavS said:

Потому что флаг в контроллере прерываний сбрасывается медленней, чем быстрый процессор выходит из обработчика. И вторично в него попалает.

Спасибо !!!

Попробую.

А почему DSB и DMB не помогают ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 4/2/2021 at 7:31 PM, VladislavS said:

Сбрасывайте флаг по которому разрешено прерывание в начале обработчика прерывания. А затем только полезные действия.

Так и сделал.

Все отлично заработало.

Спасибо !

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...