2024-12-27 08:02 PM
2024-12-27 11:06 PM
HAL_UART_Receive_DMA is asynchronous and uses UART and DMA interrupts. Fiddling with interrupts manually while the HAL state machine is using them will usually lead to disaster. Don't play with UART until the RxComplete is called. Do not change interrupt priorities while the interrupt may be in use.
2024-12-27 11:34 PM - edited 2024-12-27 11:40 PM
actually, this code is one of the part which initiate uart. such as..
void begin(){
~~
~~
}
so i changed order of HAL_UART_Receive_DMA and NVIC & UART IT/flag lines then HAL_UART_Receive_DMA does not end at this time...
2024-12-28 07:37 AM
The MCU will tail-chain IRQ's continuously if the source of the interrupt is not cleared, or keeps asserting more rapidly that the handlers can clear them.
It will only return to foreground execution once everything is clear.