DMA结构体的设置

[复制链接]
2570|4
 楼主| pinghpu 发表于 2013-5-10 11:07 | 显示全部楼层 |阅读模式
ADC1使用DMA方式,但是对DMAstructure里的几个设置还有疑问:
DMA_InitStructure.DMA_MemoryBaseAddr = (u32)ADC1_Value;
  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//外设地址寄存器递增
  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;//内存地址寄存器不变
  DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;//工作在循环缓存模式
。。。。。。。。。。。。。。。。。。。。
  DMA_InitStructure.DMA_Priority = DMA_Priority_High;//DMA通道1拥有高优先级
  DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;//DMA通道x没有设置为内存到内存传输


一、外设地址寄存器和内存地址寄存器是否发生变化的依据是什么?二、ADC1的值为什么一定要转为32位?
紫辰晓风 发表于 2013-5-12 09:32 | 显示全部楼层
总线是32位的啊!寻址当然得32位的呢!DMA相当于免CPU监控的搬运工,负责把ADC的数据转到内存中去,所以 一般才多路AD时,为了方便, 外设地址不变,内存地址就要变哦!不知回答清楚了没。
cjhk 发表于 2013-5-12 13:25 | 显示全部楼层
不是很了解这一块   顶一个    呵呵   希望有更多的高手能够指点一下
hawksabre 发表于 2013-5-12 18:17 | 显示全部楼层
查一查技术手册  找找相对应的寄存器的设置   应该可以将这个问题搞定   呵呵   顶一个
 楼主| pinghpu 发表于 2013-5-12 22:10 | 显示全部楼层
紫辰晓风 发表于 2013-5-12 09:32
总线是32位的啊!寻址当然得32位的呢!DMA相当于免CPU监控的搬运工,负责把ADC的数据转到内存中去,所以 一 ...

多谢多谢!
如果是一路AD,内存地址不变吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

30

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部