airwill 发表于 2013-4-18 19:56 
把 DMA 传输的量设定到 1024.
另外我把DMA_InitStructure.DMA_Mode =DMA_Mode_Normal,写满之后清空DMA1_FL ...
谢谢版主的回复,我想是我还没表述清楚,我现在在做一个线阵CCD的驱动,希望定时器的上升沿触发ADC,连续转化1024个点,把DMA 传输的量设定到 1024,然后设定成normal,这样的话buffer满了后即便ADC在连续转化也覆盖不掉,buffer里的数据就当成一帧数据,但现在这样设定会出现两个问题:1,ADC被定时器触发后处在连续转化状态,停不掉,就不能做到等待下次上升沿触发再工作了,如何让它停掉 2.另一方面,由于DMA设定成normal,即便清DMA1_FLAG_TC1后下一帧数据又覆盖不了前面的数据,即希望当前触发ADC后采满1024个点后不覆盖 又希望下次触发后buffer被新的一帧覆盖。 我该如何设置才能解决问题
|