I perform the initialization of DMA for USART1 to receive data in the MC stm32f205xx series. When the stream2 is enabled, the register value changes from 4, which I set to 65535, which is taken from no where.
RCC->AHB1ENR |= RCC_AHB1ENR_DMA2EN; DMA2_Stream2->CR &= ~DMA_SxCR_EN; while(DMA2_Stream2->CR & DMA_SxCR_EN); DMA2_Stream2->PAR = (uint32_t)&(USART1->DR); DMA2_Stream2->M0AR = (uint32_t)&test_array[0]; DMA2_Stream2->NDTR = 4; uint32_t temp = DMA2_Stream2->NDTR; // HERE 4 DMA2_Stream2->CR |= (4<<25); //ch4 for stream 2 DMA2_Stream2->CR |= (3<<16); //very high priority DMA2_Stream2->CR |= (1<<10); //increment memory DMA2_Stream2->CR |= (1<<5); //flow control DMA2_Stream2->CR |= (1<<4); //transmit complete interrupt enable DMA2_Stream2->CR |= (1<<2)|(1<<1); //all interrupts available DMA2_Stream2->FCR |= (1<<7); //all interrupts available NVIC_EnableIRQ(DMA2_Stream2_IRQn); uart1_init(); DMA2_Stream2->CR |= DMA_SxCR_EN; temp = DMA2_Stream2->NDTR; //HERE 65535