Skip to main content
TV_it
Associate II
December 20, 2018
Question

STM32CubeMX 5.0.0 with STM32F413VGTx does not allow configuring Quad SPI DMA

  • December 20, 2018
  • 1 reply
  • 581 views

Hello,

I'm trying to use the Quad SPI peripheral with DMA. In the DMA tab it does not allow me to click the "Increment Address" on the Memory section.

Worse yet, anything I do in that tab is ignored. I modified every single thing possible and the output still looks like this:

/** 
 * Enable DMA controller clock
 */
static void MX_DMA_Init(void) 
{
 /* DMA controller clock enable */
 __HAL_RCC_DMA2_CLK_ENABLE();
 
 /* DMA interrupt init */
 /* DMA2_Stream7_IRQn interrupt configuration */
 HAL_NVIC_SetPriority(DMA2_Stream7_IRQn, 0, 0);
 HAL_NVIC_EnableIRQ(DMA2_Stream7_IRQn);
 
}

Thoughts or workarounds?

    This topic has been closed for replies.

    1 reply

    TV_it
    TV_itAuthor
    Associate II
    December 20, 2018

    Sorry! The configurable GUI components does make a difference, the DMA config is in the QSPI config function. Too early in the morning, haven't had my coffee.

    But the original problem of the memory not being allowed to increment stays.

     /* QUADSPI DMA Init */
     /* QUADSPI Init */
     hdma_quadspi.Instance = DMA2_Stream7;
     hdma_quadspi.Init.Channel = DMA_CHANNEL_3;
     hdma_quadspi.Init.Direction = DMA_PERIPH_TO_MEMORY;
     hdma_quadspi.Init.PeriphInc = DMA_PINC_DISABLE;
     hdma_quadspi.Init.MemInc = DMA_MINC_DISABLE;
     hdma_quadspi.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
     hdma_quadspi.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
     hdma_quadspi.Init.Mode = DMA_NORMAL;
     hdma_quadspi.Init.Priority = DMA_PRIORITY_LOW;
     hdma_quadspi.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
     if (HAL_DMA_Init(&hdma_quadspi) != HAL_OK)
     {
     Error_Handler();
     }

    I tried manually setting hdma_quadspi.Init.MemInc = DMA_MINC_ENABLE and that worked! Just a GUI problem.