你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F469 使用16位SDRM时dma如何配置?

[复制链接]
alex8248 提问时间:2018-11-14 12:48 /
hi :
有个问题请教一下大家, STM469官方例程中使用 32位 SDRAM时 DMA配置如下:

  1. /* Configure common DMA parameters */
  2.     dma_handle.Init.Channel             = SDRAM_DMAx_CHANNEL;
  3.     dma_handle.Init.Direction           = DMA_MEMORY_TO_MEMORY;
  4.     dma_handle.Init.PeriphInc           = DMA_PINC_ENABLE;
  5.     dma_handle.Init.MemInc              = DMA_MINC_ENABLE;
  6.    

  7.     dma_handle.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
  8.     dma_handle.Init.MemDataAlignment    = DMA_MDATAALIGN_WORD;

  9.    
  10.     dma_handle.Init.Mode                = DMA_NORMAL;
  11.     dma_handle.Init.Priority            = DMA_PRIORITY_HIGH;
  12.     dma_handle.Init.FIFOMode            = DMA_FIFOMODE_DISABLE;
  13.     dma_handle.Init.FIFOThreshold       = DMA_FIFO_THRESHOLD_FULL;
  14.     dma_handle.Init.MemBurst            = DMA_MBURST_SINGLE;
  15.     dma_handle.Init.PeriphBurst         = DMA_PBURST_SINGLE;

  16.     dma_handle.Instance = SDRAM_DMAx_STREAM;

  17.     /* Associate the DMA handle */
  18.     __HAL_LINKDMA(hsdram, hdma, dma_handle);

  19.     /* Deinitialize the stream for new transfer */
  20.     HAL_DMA_DeInit(&dma_handle);

  21.     /* Configure the DMA stream */
  22.     HAL_DMA_Init(&dma_handle);
复制代码
我现在SDRAM改为 16bit数据宽度后 DMA是否也要做相应修改,如果修改的话请问在配置里应该如何修改?

非常感谢!
收藏 1 评论3 发布时间:2018-11-14 12:48

举报

3个回答
xmshao 回答时间:2018-11-21 11:13:44
第8句 第9句,还有相关内存数组定义数据定义也调整下。
cruelfox 回答时间:2018-11-26 11:19:50
片外SDRAM的接口数据位宽不论是16-bit还是32-bit, 在FMC的AHB接口这边都是可以用8/16/32-bit随机访问, FMC会将AHB对内存的访问转换成外部操作时序,而且它有FIFO. 对程序而言读写操作都是一样的。
DMA对FMC的访问,我想用16-bit还是32-bit都可以,都能成功。效率上也许有差别,要试试。
tanic 回答时间:2018-11-26 14:55:32
授人以渔
找官方用16位SDram的板子的demo
或者用CUBEMAX生成选择16位,看看生成的代码是啥
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版