Цитата(jcxz @ Jul 9 2014, 05:48)

Всё с точностью до наоборот. Я давно и успешно использую DMA для STM32.
На приём с помощью DMA никаких проблем нет. По сути получается аппаратный приёмный кольцевой буфер, который необходимо с достаточной интенсивностью выгребать.
И знать кол-во принимаемых данных совсем не нужно.
А вот с передачей действительно немного не тривиально.
Как вариант, можно организовать очередь из блоков памяти для отправки по ДМА. Но это не выгодно для байтовой передачи.
Но и здесь можно вывернуться накапливая байты в блоке и отправлять их например по таймеру и или таймауту и по заполнению блока.
На мой взгляд это всё не слишком красиво. А вашу идею с кольцевым буфером я не до конца понял.
Как передать участок кольцевого буфера перехлёстывающегося через его конец?
ПС: При использовании динамической памяти задача для передачи блоков данных по UART через DMA решается самым элегантным образом, но это не мой метод...