И ещё, как-то я работал со светодиодами ws2812, постоянно светился не тем заданным цветом, помогло увелечение массива на 1 элемент, и туда просто записать 0. Также прерывания ДМА вызываються два раза, первый когда передало половину буфера и второй когда весь буфер, это нужно учитывать, в свое время намучался)