Hi,
I have a lot of USART data to receive and continue processing. I want to receive the data in a circular queue in RAM, which is mapped to a DMA receiving area.
I can successfully receive the data and use the EDMA_SetModulo function to let the data "circle" in the RAM. But if the received data counter exceeds the number I set, it stops. I think I can use a DMA interrupt to reset the received data counter, but I worry about the interrupt causing me to miss some incoming data. I want to know if there is another way to tell the DMA to reload the received data counter automatically so that I can receive the data without any interrupt.
I found something strange,when I installed a callback with EDMA_SetCallback,Even through I do nothing in this callback function(just a __NOP() in it),the DMA receive circle queue can continue circle as I need.Maybe there is something I need to config?
Could you please tell us which device are you using please?
sorry,I missed such important info.
I used IMXRT1176's USART3 as recieving port.If I use EDMA_SetCallback(&lpuart3_Rxdmahandle, lpuart3_dma_receive_callback, NULL) set a function for recieving DMA callback,then the receive can circle.Just comment out it,the DMA is finished if DMA receive counter is reached.
Hello,
Thank you in advance for contacting NXP support.
Thank you for the information I think the following community post have the information you require for your application.
Please let me know if there is anything else I can do for you.