DMA循环模式可用于循环队列,可通过DMA+空闲中断+循环队列,实现高效接收数据,然后对数据进行处理。 本文将讲解DMA循环模式与普通模式在实现效果上的区别,及为何循环模式要如此配置才能实现循环队列。
举报
DMA_InitStructure.DMA_MemoryBaseAddr =&RxBuff[0]; //RxBuff一共有10个字节 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_BufferSize = 7; DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
DMA_InitStructure.DMA_MemoryBaseAddr =&RxBuff[0]; //RxBuff一共有10个字节 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_BufferSize = 10; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
DMA_InitStructure.DMA_MemoryBaseAddr =&RxBuff[0]; //RxBuff一共有10个字节 DMA开始存储数据的起始地址要设置在缓存的第一个字节处。
DMA_InitStructure.DMA_BufferSize = 10; CNDTR的值要和缓存的大小相同(数字10只是这个例子中缓存的大小)。
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
等级类勋章
发帖类勋章
时间类勋章
人才类勋章
1477
12910
55
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号