注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

小哲

从今以后,你会是所有幸福的理由!

 
 
 

日志

 
 

STM32 DMA理解(一)  

2012-01-10 14:57:05|  分类: ARM7-STM32 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

通道配置过程

1、 DMA_CPARx寄存器总设置外设寄存器的地址。发生外设数据传输请求时,这个地址将是传输的源或目标

2、 DMA_CMARx寄存器中设置数据存取器的地址,发生外设数据传输请求时,传输的数据将从这个地址读出或写入这个地址

3、 DMA_CMARx寄存器中设置要传输的数据量,在每个数据传输后,这个数值递减。

4、 DMA_CCRx寄存器的PL位中设置通道的优先级

5、 DMA_CCRx寄存器中设置数据传输方向、循环模式、外设和寄存器的增量模式、外设和存储器的数据宽度、传输一半产生中断或传输完成产生中断

6、 设置DMA_CCRx寄存器的ENABLE位,启动该通道

 

一旦启动了DMA通道,它即可响应连到该通道上的外设的DMA请求

当传输一般的数据后,半传输标志(HTIF)将被置1,当设置了半传输中断位时,

将产生一个中断请求,在数据传输结束后,传输完成标志被置1,当设置了允许传输完成中断位后,将产生一个中断请求。

      

循环模式

循环模式用于处理循环缓冲区和连续的数据传输(如ADC的扫描模式),在DMA_CCRx寄存器中的CIRC位用于开启这一功能,当启动了循环模式,数据传输的数目变为0时,将会自动地被恢复成配置通道时设置的初值,DMA操作将会继续进行。

 

存储器到存储器模式

DMA通道的操作可以在没有外设请求的情况下进行,这种操作就是存储器到存储器模式。当设置了DMA_CCRx寄存器中的MEM2MEM位之后,在软件设置了DMA_CCRx寄存器中的EN位启动DMA通道时,DMA传输将马上开始,当DMA_CNDTRx寄存器变为0时,DMA传输结束,存储器到存储器模式不能与循环模式同时使用

  评论这张
 
阅读(3053)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017