STM32f407 DMA ile ADC

Başlatan adam, 22 Mayıs 2016, 02:39:06

adam

Merhaba,
DMA kullanarak ADC'den okuduğum verileri bir diziye yazdırmak istiyorum. Hem buradan hem de referans kitaptan yaptığım araştırmalar sonucu aşağıdaki kodları oluşturdum ancak ADC1 üzerinden veri okuyamıyorum.
Hatam nerede diye sormak istedim.

uint16_t ADC1_ARR[5];
void ADC1_DMA2_init(){
unsigned int i;
RCC->APB2ENR|=0x00000100; 
RCC->AHB1ENR |= 0x00400000;
RCC->AHB1RSTR|= 0x00400000;       // DMA2 resetleyelim//??
for(i=0;i<0x1FF;i++);			   // DMA2 için haz1irlanma süresi//??
RCC->AHB1RSTR&=~0x00400000;     // DMA2 reseti kaldiralim	//??
GPIOA->MODER|=0x00000FFF;//A0 A1 A2 A3 A4 A5 Analog Mode
ADC1->SQR1|=0x00600000;//6 kanal
ADC1->SQR3|=0x00543210;//CH0->CH1....->CH5 sirasi ile devam et.
ADC1->CR2|=0x00000102; // DMA Enabled, Countinuous Mode,
ADC1->SMPR2|=0x0003FE00;// son 3 kanal en yüksek hizda 3 cycles, ilk 3 kanal en düsük hizda 480 cycles.
DMA2_Stream4->PAR=(uint32_t)&ADC1->DR;//source address
DMA2_Stream4->M0AR=(uint32_t)&ADC1_ARR;//destination add.
DMA2_Stream4->NDTR=6;
DMA2_Stream4->CR=0x01E05500;//circular mode, mem to mem,channel0, 16 bit to 16 bit...
ADC1->CR2|=0x00000001;//ADON:1 ADC Enabled.
DMA2_Stream4->CR|=0x00000001;//DMA enabled.
}


Teşekkürler.