Yes I've found the answer. You need to select destination size as 32 bit despite your source is 16 bit. DMA will do unpacking for you so hdma_dac4_ch1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD; // must be replaced with DMA_PDATAALIGN_WORD h...
Sorry to confuse you Dacbuffers[2][DAC_BUFFER_SIZE] Supposed to be double bufferWhat do you mean by initialization. Typically cubemex do this for you (second snippet)