Kann nicht alle Zeichen über UART übertragen

Ich verwende stm32f0 MCU.

Ich möchte jedes einzelne von uart empfangene Byte von uart aus senden. Ich aktiviere einen Interrupt für jedes von uart empfangene Byte.

Mein Code ist ganz einfach.

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
    }
}

Mein PC überträgt ASCII12345678 zu stm32. Wenn die Dinge wie erwartet funktionieren, sollte der PC @ empfange12345678 zurück. Der PC erhält jedoch1357 stattdessen. Was ist los mit dem Code?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage