Цитата(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. получаю прерывание, запрещаю прерывание, обрабатываю его.
Примерно так.