stm32 - dma speicherziel ändern

OP #3076119
Lesenswert?

ich lese mit über den adc einen wert über dma in ein Array DMA[100] an 
die Adresse &DMA[0] ein. wie bekomme ich es hin, dass der der nächste 
adc wert an der Adresse von &DMA[1] steht?

über "memory increment mode" geht dies nämlich nur, wenn man z.B. direkt 
mehrere Kanäle des ADC liest.
#3076529
Lesenswert?

Das geht problemlos ueber "increment", auch wen sie nur 1 ADC Kanal habe 
:
1
  DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)ADC1_CDR_Address;
2
  DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)ADC_Dual;
3
  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
4
  DMA_InitStructure.DMA_BufferSize = 24;
5
  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
6
  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
7
  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;
8
  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;
9
  DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
10
  DMA_InitStructure.DMA_Priority = DMA_Priority_High;
11
  DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
12
  DMA_Init(DMA1_Channel1, &DMA_InitStructure);
HIer werden 24 Werten in array gespeichert, anzahl ADC-Kanalen kan 1 bis 
x sein. Bei 1 Kanal werden 24 (neue) Messwerte von das gleiche ADC Kanal 
gespeichert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren