我现在对DMA有点疑惑,我用DMA传AD的数据,我用级联模式,我看了TI的历程了,但是我不会改成15个通道的,
DMACH1BurstConfig(15,1,1);
这条语句,是确定一帧要传多少个字吗?我16个AD通道,所以要传16个字,每传一个字源地址就加“1”,不对吗?同样我也目的地址加“1”,有错吗?
DMACH1TransferConfig(1,0,0);
设置每次传送包含多少个帧,我AD16个通道,传一帧不就可以了?源地址增量我设的为“0”、目标地址增量为“0”(请不要看我复制粘贴的数字多少),因为传完16个数据,AD地址应回到原位,目的地址也应该回到原位。
DMACH1WrapConfig(16,0,16,0);
源地址总偏移量多少后就重载,重载后源地址偏移量多少,后面是目的地址的,我传16个数,就要求重新从AD0结果开始。
DMACH1ModeConfig(DMA_SEQ1INT,PERINT_ENABLE,ONESHOT_DISABLE,CONT_ENABLE,SYNC_DISABLE,SYNC_SRC,
OVRFLOW_DISABLE,SIXTEEN_BIT,CHINT_END,CHINT_ENABLE);
我就把第四项,连续模式使能位给使能了,升息的我都没有改,
为什么这样做 我AD采样结果传输不成功呢
|