DMA简介
可编程数据宽度
设置外设地址(CxPADDR寄存器)
数据传输的初始外设地址,在传输过程中不可被改变。
设置存储器地址(CxMADDR寄存器)
数据传输的初始内存地址,在传输过程中不可被改变。
配置数据传输量(CxDTCNT寄存器)
可编程的传输数据长度最大为65535。在传输过程中,该传输数据量的值会逐渐递减。
数据流配置(CxCTRL寄存器)
包含通道优先级,数据传输的方向、宽度、地址增量模式、循环模式和中断方式。
优先级(CHPL)
分为4个等级,最高优先级、高优先级、中等优先级和低优先级。
若有2个流优先级设定相同,则较低编号的流有较高的优先权。举例,通道1优先于通道2。
数据传输方向(DTD)
分为存储器到外设(M2P),外设到存储器(P2M)或存储器到存储器(M2M)传输。在存储器到存储器传输模式下不允许使用循环模式、双缓冲模式和直接模式。
数据传输宽度(PWIDTH/MWIDTH)
根据实际使用情景,可配置宽度为byte、halfword、word。
地址增量模式(PINCM/MINCM)
当通道配置设定为增量模式时,下一笔传输的地址将是前一笔传输地址加上传输宽度(PWIDTH/MWIDTH)。
循环模式(LM)
当流配置设定为循环模式时,在最后一次传输后CxDTCNT寄存器的内容会恢复成初始值。
配置DMA弹性映射(DMA_SRC_SELx寄存器的CHx_SRC)
在非存储器到存储器(M2M)模式下时,需要将外设的DMA请求DMA请求号写入,才能启动通道响应外设的DMA请求。
打开通道(CxCTRL寄存器的CHEN位)
打开DMA时钟;
调用通道复位函数复位数据流;
调用结构体初始化函数初始化通道配置结构体;
调用初始化函数初始化通道;
调用DMA请求映射使能函数配置弹性映射功能;
调用通道使能函数开启通道。
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。