Hi,
I also want to transmit data from UART to memory by using DMA and I have the same problem you discribe. So I´m glad to see that I´m not the only one with that problem. But first of all I think you don´t really know what a DMA should do. So I´m wondering why prepare DMA without using the interrupt handle. The next think is that you close DMA after prepare him in order to open DMA again cause you are in an endless while loop. That doesn´t seem to make sense. You have to wait till DMA has finished. Thats why you have to use the DMA interrupt handle - I think.
And last you should begin with a transfer of 4 Byte. I realized that the DMA works better with a small transfer size than with a large one.