MEM TO MEM DMA
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2022-08-17 8:15 AM
I am using STM32H743ZI2. I am using 6 ADC with external timer and dma to acquire data. After I acquire adc data (16bits), I will use scale ratio to obtain physicals value I would like to get. This value will be 32bits. After I do power (a x a), the result will be 64bits. I set a 64bit 6 elements array to hold these power value, then I would like to copy to another 64bits 48 elements array to hold (8 x 6 channels data). I would like to use mem-to-mem dma to do transfer. I set dma configuration below:
hdma_memtomem_dma1_stream1.Instance = DMA1_Stream1;
hdma_memtomem_dma1_stream1.Init.Request = DMA_REQUEST_MEM2MEM;
hdma_memtomem_dma1_stream1.Init.Direction = DMA_MEMORY_TO_MEMORY;
hdma_memtomem_dma1_stream1.Init.PeriphInc = DMA_PINC_ENABLE;
hdma_memtomem_dma1_stream1.Init.MemInc = DMA_MINC_ENABLE;
hdma_memtomem_dma1_stream1.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
hdma_memtomem_dma1_stream1.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
hdma_memtomem_dma1_stream1.Init.Mode = DMA_NORMAL;
hdma_memtomem_dma1_stream1.Init.Priority = DMA_PRIORITY_LOW;
hdma_memtomem_dma1_stream1.Init.FIFOMode = DMA_FIFOMODE_ENABLE;
hdma_memtomem_dma1_stream1.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
hdma_memtomem_dma1_stream1.Init.MemBurst = DMA_MBURST_INC4;
hdma_memtomem_dma1_stream1.Init.PeriphBurst = DMA_PBURST_INC4;
I use the following function to transfer data from one memory to another memory:
HAL_DMA_Start_IT(&hdma_memtomem_dma1_stream1, &volts_power2[0], &buf_volts_pow2[0], 12);
I am not sure my idea is executable?
- Labels:
-
DMA
-
STM32H7 Series
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2022-08-17 8:25 AM
Yes?
Edit your question to have some actual content and context. See "V" icon, upper right corner posts
What STM32?
Up vote any posts that you find helpful, it shows what's working..
