OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4008|回复: 3

关于stm32F4dma问题

[复制链接]

7

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2016-12-27
在线时间
34 小时
发表于 2017-2-6 12:55:43 | 显示全部楼层 |阅读模式
4金钱
void SD_DMA_Config(u32*mbuf,u32 bufsize,u32 dir)
{                 

  DMA_InitTypeDef  DMA_InitStructure;
       
        while (DMA_GetCmdStatus(DMA2_Stream3) != DISABLE){}//μè′yDMA¿éÅäÖÃ
               
  DMA_DeInit(DMA2_Stream3);//Çå¿Õ֮ǰ¸Ãstream3éÏμÄËùóDÖD¶Ï±êÖ¾
       

  DMA_InitStructure.DMA_Channel = DMA_Channel_4;  //í¨μàÑ¡Ôñ
  DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)&SDIO->FIFO;//DMAíaéèμØÖ·
  DMA_InitStructure.DMA_Memory0BaseAddr = (u32)mbuf;//DMA ′æ′¢Æ÷0μØÖ·
  DMA_InitStructure.DMA_DIR = dir;//′æ′¢Æ÷μ½íaéèÄ£ê½
  DMA_InitStructure.DMA_BufferSize = 0;//êy¾Y′«êäá¿
  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//íaéè·ÇÔöá¿Ä£ê½
  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//′æ′¢Æ÷Ôöá¿Ä£ê½
  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;//íaéèêy¾Y3¤¶è:32λ
  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;//′æ′¢Æ÷êy¾Y3¤¶è:32λ
  DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;// ê1óÃÆÕí¨Ä£ê½
  DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh;//×î¸ßóÅÏè¼¶
  DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Enable;   //FIFOê1Äü      
  DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full;//è«FIFO
  DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_INC4;//íaéèí»·¢4′Î′«êä
  DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_INC4;//′æ′¢Æ÷í»·¢4′Î′«êä
  DMA_Init(DMA2_Stream3, &DMA_InitStructure);//3õê¼»ˉDMA Stream

        DMA_FlowControllerConfig(DMA2_Stream3,DMA_FlowCtrl_Peripheral);//íaéèá÷¿ØÖÆ
         
  DMA_Cmd(DMA2_Stream3 ,ENABLE);//¿aÆôDMA′«êä         

}   
请教大家一个问题,DMA_InitStructure.DMA_BufferSize = 0这句代码我理解是数据长度,但是为什么赋值为0呢,而且程序能够正常运行,这是fatfs例程,我已经使能了dma模式,不是中断模式,是因为dma的fifo模式使能了吗,但是我查找相关资料没有对此的说明。

最佳答案

查看完整内容[请看2#楼]

因为他的值会在后面的代码进行修改
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-2-6 12:55:44 | 显示全部楼层
因为他的值会在后面的代码进行修改
回复

使用道具 举报

7

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2016-12-27
在线时间
34 小时
 楼主| 发表于 2017-2-6 12:56:51 | 显示全部楼层
我已经使能了dma模式,而且设置断点也确定进入了该函数。
回复

使用道具 举报

7

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2016-12-27
在线时间
34 小时
 楼主| 发表于 2017-2-9 16:49:28 | 显示全部楼层
正点原子 发表于 2017-2-6 12:55
因为他的值会在后面的代码进行修改

谢啦,原子哥
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-12 14:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表