ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Пятница
27 мая
1154474 Топик полностью
il-2 (13.12.2021 10:09, просмотров: 303) ответил SciFi на Я делаю приём в кольцевой буфер через DMA (там и режим такой имеется circular). Прерывания не нужны совсем, если успеваем выгребать из приёмного буфера:
Я делаю похитрее и посложнее: 

Когда надо выгребать данные из приемного буфера, то после проверки по CNDTR, если она показывает отсутствие данных - разрешаю прерывание RXNEIE и жду приема уже по прерыванию. Там есть тонкости - например, после разрешения RXNEIE надо еще раз проверить CNDTR, т.к. на интервале между первой проверкой CNDTR и разрешением RXNEIE могли прийти данные, которые тут-же схватит DMA (и сбросит флаг запроса RXNE).

Ответы