新手上路 
 
	- 积分
 - 42
 
        - 金钱
 - 42 
 
       - 注册时间
 - 2019-12-2
 
      - 在线时间
 - 8 小时
 
 
 
 | 
 
3金钱 
用的是ADUCM410的单片机,在使用DMA传输ADC的采样数据时,定义DMA数据长度位3000,ADC采样的数据长度在1000~3000之间变化。 
在信号开始时,AD开始采样,采样一个周期 
DMA配置为PING-PONG模式 
DMA传输第一个周期时,采样1000个值,占数组的0~999;读取数据后,清零数组; 
DMA传输第二个周期时,采样1000个值,但是占数组的1000~1999,我想让它继续放到数组的0~999,但是并没有;读取后清零; 
DMA传输第三个周期时,采样1000个值,占数组2000~2999。我想让它继续放到数组的0~999,但是并没有 
当三轮传输后,DMA的数据长度为0,不再进行传输。 
  
查阅资料后,可以将DMA运行模式配置为循环模式,再配置输入引脚中断,在完成一个信号周期采样后,进入引脚中断,重新配置DMA以解决问题。 
但查阅数据手册,发现DMA运行模式仅有下图中几种,没有找到循环模式? |  
  
 |   
 
 
最佳答案
查看完整内容[请看2#楼] 
问题已解决,DMA是处在PINGPANG模式下,只是在开启下一次传输之前要重置DMA的配置,才可以将数据重新放在数组的第一位 
 
 
 
 
 
 
 |