cancel
Showing results for 
Search instead for 
Did you mean: 

HAL_UART_RxCpltCallback never triggers

robotwhisperer
Associate

I am implementing a system with two STM32H753 microcontrollers. MCU1 reads ADC data and sends it over UART to MCU2 using UART DMA on ADC conversion. MCU2 reads data from UART via DMA and is supposed to do some filtering (among other things) to the received data. Earlier, all of the tasks were done by a single MCU (hence it was simpler, as we had access to the ADC data buffer already). 

The issue I am facing is that the UART Receive DMA is never triggering the HAL_UART_RxCpltCallback() callback no matter what I do. I have tried the same with UART_Receive_IT() with no results either. 

To help me ensure that it is not a configuration issue, I configured the same UART in a separate project (which is more of a simpler example of what I am trying to do) and verified my configuration to be working (posted about it earlier). 

10 REPLIES 10

It looks like RxState = 0x22 means HAL_UART_STATE_BUSY_RX, which means that the UART is waiting to receive constantly, which might be why it is never hitting the callback function. Why could this be? Both boards are only connected with less than 6 inches of jumper (breadboard) wires like this:

MCU1:                                MCU2:
GND ----------------------------GND
TX---------------------------------RX