STM32F469 使用16位SDRM时dma如何配置?
hi :有个问题请教一下大家, STM469官方例程中使用 32位 SDRAM时 DMA配置如下:
/* Configure common DMA parameters */
dma_handle.Init.Channel = SDRAM_DMAx_CHANNEL;
dma_handle.Init.Direction = DMA_MEMORY_TO_MEMORY;
dma_handle.Init.PeriphInc = DMA_PINC_ENABLE;
dma_handle.Init.MemInc = DMA_MINC_ENABLE;
dma_handle.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
dma_handle.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
dma_handle.Init.Mode = DMA_NORMAL;
dma_handle.Init.Priority = DMA_PRIORITY_HIGH;
dma_handle.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
dma_handle.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
dma_handle.Init.MemBurst = DMA_MBURST_SINGLE;
dma_handle.Init.PeriphBurst = DMA_PBURST_SINGLE;
dma_handle.Instance = SDRAM_DMAx_STREAM;
/* Associate the DMA handle */
__HAL_LINKDMA(hsdram, hdma, dma_handle);
/* Deinitialize the stream for new transfer */
HAL_DMA_DeInit(&dma_handle);
/* Configure the DMA stream */
HAL_DMA_Init(&dma_handle);
我现在SDRAM改为 16bit数据宽度后 DMA是否也要做相应修改,如果修改的话请问在配置里应该如何修改?
非常感谢!
第8句 第9句,还有相关内存数组定义数据定义也调整下。 片外SDRAM的接口数据位宽不论是16-bit还是32-bit, 在FMC的AHB接口这边都是可以用8/16/32-bit随机访问, FMC会将AHB对内存的访问转换成外部操作时序,而且它有FIFO. 对程序而言读写操作都是一样的。
DMA对FMC的访问,我想用16-bit还是32-bit都可以,都能成功。效率上也许有差别,要试试。 授人以渔
找官方用16位SDram的板子的demo
或者用CUBEMAX生成选择16位,看看生成的代码是啥
页:
[1]