Постоянно падаю в прерывание с ошибкой Transfer error. Может кто подскажет? Пытаюсь настроить dma на отправку данных через uart.
SET_BIT(RCC->APB2ENR, RCC_APB1LENR_USART2EN);
CLEAR_BIT (USART2->CR1, USART_CR1_UE);
SET_BIT (USART2->CR1, USART_CR1_TE);
SET_BIT (USART2->CR3, USART_CR3_DMAT);
SET_BIT(RCC->AHB1ENR, RCC_AHB1ENR_DMA1EN);
__NVIC_SetPriority (DMA1_Stream0_IRQn, 2);
NVIC_EnableIRQ(DMA1_Stream0_IRQn);
DMA1_Stream0->CR = 0;
SET_BIT (DMA1_Stream0->CR, DMA_SxCR_PL_0);
SET_BIT (DMA1_Stream0->CR, DMA_SxCR_TEIE);
SET_BIT (DMA1_Stream0->CR, DMA_SxCR_TCIE);
SET_BIT (DMA1_Stream0->CR, DMA_SxCR_DIR_0);
SET_BIT (DMA1_Stream0->CR, DMA_SxCR_PFCTRL);
DMA1_Stream0->PAR =(uint32_t)(& USART2->TDR);
DMA1_Stream0->NDTR = 1;
DMA1_Stream0->M0AR = (uint32_t)(&gdata1);
SET_BIT (USART2->CR1, USART_CR1_UE);
CLEAR_BIT (USART2->ICR, USART_ICR_TCCF);
DMA1->LIFCR = DMA_LIFCR_CFEIF0 | DMA_LIFCR_CDMEIF0| DMA_LIFCR_CTEIF0| DMA_LIFCR_CHTIF0| DMA_LIFCR_CTCIF0;
SET_BIT (DMA1_Stream0->CR , DMA_SxCR_EN);
Привет. В DMAMUX нужно еще UART выбрать
Обсуждают сегодня