Если есть признак завершения пакета (не важно какого происхождения), тогда и проблемы нет. Остановить ДМА не по счетчику, а софтово не представляет проблемы. Но в обычном UART нет никакого IDLE как признака завершения пакета. Там все что не байт - IDLE.