Estoy usando un STM32F103C8T6 (también conocido como pastilla azul) con Eclipse / System Workbench y HAL.
El siguiente código:
volatile HAL_StatusTypeDef result =
HAL_UART_Transmit(&huart1, bytesToSend + currentSendIndex,
bytesPerMessageToSend, 100);
volatile uint32_t error = HAL_UART_GetError(&huart1);
funciona bien cuando se envía 1 byte, y (más tarde) recibe 1 byte y se itera.
Sin embargo, cuando envié 3 bytes, noté que solo recibí el primer byte y las siguientes llamadas para HAL_UART_Reciba el resultado en un tiempo de espera.
Esto parece lógico, porque probablemente solo hay un búfer de 1 byte en el UART.
Sin embargo, lo que no entiendo, ¿por qué transmitir varios bytes en el código mencionado, devuelve HAL_OK y también la llamada a HAL_UART_GetError devuelve 0.
Supongo que se ha producido un rebasamiento para el segundo y consecutivo bytes ... ¿es cierto? Si es así, ¿cómo puedo verificarlo?