I use circular DMA with a buffer of size n (on a G431) to create bursts that are not necessarily equal to a multiple of n in size. This works fine, I start and stop a timer and end up somewhere in the DMA buffer array (say, at buffer[m] where 0<=m<n)...