2025-07-18 2:24 AM - last edited on 2025-07-18 3:13 AM by Sarra.S
Hello again,
The DMA now works in standard request mode with circular mode disabled, but it doesn't when I am trying to use circular buffering mode (my destination buffer only contains 0s).
I defined manually the data size, the source and destination addresses in my code once my memory buffers are defined. Once these parameters defined I enable the GPDMA.
Here are the lines I add in the main() :
LL_DMA_ConfigAddresses(GPDMA1, LL_DMA_CHANNEL_0, p_dma_buffer, m_dma_buffer);
LL_DMA_SetBlkDataLength(GPDMA1, LL_DMA_CHANNEL_0, 8);
LL_DMA_EnableChannel(GPDMA1, LL_DMA_CHANNEL_0);
But when I launch the debug only the parameters I set manually were taken into account. All the CubeMX Configuration doesn't appear here (for example DINC and SINC should be at 1 in GPDMA_C0TR1 in the image below) ...
Do you have any idea of what I should do to use circular buffering in standard request mode?
I saw in the user manual an example of application for circular buffering using linked-lists. Is it possible to do circular buffering without linked lists ?
Thanks
2025-07-18 3:11 AM
This post was moved from this related thread: Solved: GPDMA & HPDMA on STM32N6 - STMicroelectronics Community
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2025-07-18 3:56 AM
Hello again @ClemR,
Circular mode is specifically designed for continuous data flows between peripherals and memory, for example in ADC scan mode.
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.