打印

有高手做过STR912的DMA吗?

[复制链接]
3144|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
seawwh|  楼主 | 2007-1-11 16:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  我做Momory 到memory的DMA程序OK,但是设备到memory的DMA程序没有成功,有做过的高手能否提供一段代码?


  STR912的“设备到memory”的DMA有两种主控部件,一个是由DMAC主控,另一个是由设备主控,不知道有什么区别?
 

  谢谢!
  
沙发
STF| | 2007-1-12 17:15 | 只看该作者

Flow Controller

Hi seawwh,

这个主控制器会管理分组大小,也会停着传送。

如果你用比较简单的外设(SSP,UART),用DMAC蛀空比较容易。

你想用哪一个外设?你可以给我看一看你的代码?

Regards,
STF

使用特权

评论回复
板凳
seawwh|  楼主 | 2007-1-12 18:43 | 只看该作者

谢谢 SFT, 经过2天的反复,今天终于试验通了。但还有些问题

今天,已经试验通过了 UART0 和 SSP0的接收DMA。
但是还有一些寄存器的设置不太明白,比如PROT0,PROT1,PROT2的作用?



Thank STF

使用特权

评论回复
地板
modelfeifei| | 2007-1-16 20:33 | 只看该作者

我在正在用DMA控制SSP,问问大家

我今天用SSP调通了一个串口的FLASH,可是老板说用DMA控制,我弄了半天还是不好使,请问有什么需要注意的,怎么设置呢?seawwh,可以把你写的参考一下吗,谢谢!modelfeifei@126.com

使用特权

评论回复
5
modelfeifei| | 2007-1-16 21:32 | 只看该作者

是这样初始化吗

void DMA_Init_SSP0() {
DMA_InitTypeDef  DMA_InitStruct;
  
   DMA_Cmd(ENABLE);                          
   DMA_StructInit(&DMA_InitStruct);
   DMA_InitStruct.DMA_Channel_LLstItm=0;    
   DMA_InitStruct.DMA_Channel_SrcWidth  = DMA_SrcWidth_Byte;    // 8bits Transfer
   DMA_InitStruct.DMA_Channel_DesWidth  = DMA_DesWidth_Byte;
   DMA_InitStruct.DMA_Channel_DesBstSize= DMA_DesBst_1Data;
   DMA_InitStruct.DMA_Channel_SrcBstSize= DMA_SrcBst_1Data;
   DMA_InitStruct.DMA_Channel_FlowCntrl = DMA_FlowCntrl0_DMA; 
     
   DMA_ChannelSRCIncConfig (DMA_Channel1, ENABLE);
   DMA_ChannelDESIncConfig (DMA_Channel2, ENABLE);
   DMA_Init(DMA_Channel1,&DMA_InitStruct);
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

145

主题

368

帖子

1

粉丝