请问有什么方法可以重置DMA的存储基地址?

2019-08-17 01:01发布

请问,我现在用dma进行乒乓的方式,有没有办法在切换数组的时候令存储基地址重置,即每次且换数组都是从0开始读数据。谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
正点原子
1楼-- · 2019-08-17 05:01
DMA切换基址本来就是从0开始的。
不知道你担心什么。
ljjdglg520
2楼-- · 2019-08-17 09:22
继续求帮忙...谢谢
aozima
3楼-- · 2019-08-17 10:06
 精彩回答 2  元偷偷看……
ljjdglg520
4楼-- · 2019-08-17 15:50
回复【3楼】aozima:
---------------------------------
就是我定了2个数组,假如数组1,数组2,我通过DMA把数据传到数组1,当数组1收到数据后,我把基地址换成数组2,数组2收到数据再把基地址换成1,这样子循环下去,每次切换我要保证是从数组第0位开始写入数据的,我现在只会关了dma再打开,这样基地址就从0开始算,但是这样传输数据就断断续续的,我要连续传输数据
ricefat
5楼-- · 2019-08-17 18:12
回复【4楼】ljjdglg520:
---------------------------------
参考官方demo板子的wav播放例程
ljjdglg520
6楼-- · 2019-08-17 20:49
回复【6楼】正点原子:
---------------------------------

换基地址后要把DMA关了再打开才从0开始吧?我测试是这样的,也可能是我自己的问题,我现在每次切换基地址都要把DCMI和DMA关了再开,这样就很慢。我想用乒乓的模式,但是我这样写,切换不了数组: 

DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)JpegBuffer2; 
DMA_Init(DMA2_Stream1, &DMA_InitStructure); 

每次都要这样写: 

                       DMA_DeInit(DMA2_Stream1); 
DMA_InitStructure.DMA_Channel = DMA_Channel_1;   
DMA_InitStructure.DMA_PeripheralBaseAddr = DCMI_DR_ADDRESS; 
DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)JpegBuffer2;    
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; 
DMA_InitStructure.DMA_BufferSize = 1024*32;   
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; 
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; 
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word; 
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; 
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; 
DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh; 
DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Enable;         
DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full; 
DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; 
DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; 
DMA_Init(DMA2_Stream1, &DMA_InitStructure); 

每次这样初始化切换就很慢了...调了3个多星期快一个月了,DCMI的连续采集模式弄了好久,总是一个数组里的第二张图片出问题,第一张是正常输出的,之后一直有数据输出,但是没有图片,然后我用快照模式+上面乒乓的方式输出,用115200的波特率输出只有0.5帧。。。要崩溃了。。。

一周热门 更多>