Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: При использовании DMA флаг ENDRX всегда взведен
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
wodya
Хочу использовать DMA для USART. Открываю прерывание по ENDRX. Но это флаг у USART все время взведен и, соответственно, все время вызывается прерывание. Данные по RS не передаются. Чтение статусного регистра у USART не помогает.
Кто знает как сбросить этот флаг?
kichkine
Цитата(wodya @ Apr 2 2007, 13:07) *
Хочу использовать DMA для USART. Открываю прерывание по ENDRX. Но это флаг у USART все время взведен и, соответственно, все время вызывается прерывание. Данные по RS не передаются. Чтение статусного регистра у USART не помогает.
Кто знает как сбросить этот флаг?


Это не сигнал об окончании DMA-цикла.
Сигнал ENDRX становится активным, когда счетчик RCR равен нулю.
Сигнал RXBUFF становится активным, когда счетчики RCR И RNCR равны нулю.

Сигнал ENDTX становится активным, когда счетчик TCR равен нулю.
Сигнал TXBUFE становится активным, когда счетчики TCR И TNCR равны нулю.

Я его использую для генерации прерываний следующим образом:
1. программирую DMA, счетчики становятся не нулевыми -> сигналы неактивны
2. разрешаю прерывания, запускаю DMA
3. получаю прерывание, запрещаю прерывание, обрабатываю его.

Примерно так.
wodya
Да, так работает.
Спасибо
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.