Да, читайте Reference Manual - в DMA burst нужен для того, кто имеет у буфера FIFO: "Supports incremental burst transfers of 4, 8 or 16 beats. The size of the burst is
software-configurable, usually equal to half the FIFO size of the peripheral"
Т.е. например USART передает информацию побайтово, если нет FIFO, то DMA кладёт в буфер USART за каждую операцию только 1 байт, потом ждет окончания его передачи, кладёт следующий байт и т.д. Когда у буфера USART есть FIFO - тогда, DMA за одну операцию может сложить туда сразу несколько байт(в половину буфера), что разгружает шину.
FIFO error - это или неправильная настройка DMA или ошибки в работе DMA, почитай Reference Manual там описано когда она возникает.
Цитата(Haamu @ Dec 23 2013, 12:10)

Правильно я понял, что для разных размеров данных в памяти и периферии без FIFO не обойтись?
Нет, DMA без разницы какой размер данных лежит в памяти, он просто читает указанное количество байт(DMA_InitStruct.DMA_Memory0BaseAddr) начиная с указанного адреса(DMA_InitStruct.DMA_Memory0BaseAddr) из памяти и передает их в буфер приемника, или наоборот.
Количество передаваемых байт в каждом чтении должны совпадать с размером буфера приемника! Но если буфер приемника имеет FIFO, тогда они могут не совпадать:
"Independent source and destination transfer width (byte, half-word, word): when the data widths of the source and destination are not equal, the DMA automatically packs/unpacks the necessary transfers to optimize the bandwidth. This feature is only available in FIFO mode"
Цитата(Haamu @ Dec 23 2013, 12:10)

Я решил проблемму в лоб, без использования FIFO. Просто указал, что в памяти массив состоит из байтов и отключил FIFO. Передаю по одному байту, а наверху уже собираю в полуслова. Но ведь так поидее не правильно...
А так все и делают, ведь USART передает данные побайтово.