Não é possível transmitir todos os caracteres através do UART

Estou usando o stm32f0 MCU.

Eu gostaria de transmitir todos os bytes recebidos do uart para fora do uart. Estou habilitando uma interrupção em cada byte recebido do uart.

Meu código é bastante simples.

uint8_t Rx_data[5]; 

//Interrupt callback routine
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
    if (huart->Instance == USART1)  //current UART
    {
        HAL_UART_Transmit(&huart1, &Rx_data[0], 1, 100);        
        HAL_UART_Receive_IT(&huart1, Rx_data, 1);   //activate UART receive interrupt every time on receiving 1 byte
    }
}

Meu PC transmite ASCII12345678 para stm32. Se tudo funcionar como esperado, o PC deve estar recebendo12345678 de volta. No entanto, o PC recebe1357 em vez de. O que há de errado com o código?

questionAnswers(3)

yourAnswerToTheQuestion