Retargeting getchar() function
Here my non blocking getchar. You need to clear the overflow otherwise the rx available will not rise again
bool getchar(uint8_t * ch)
{
// check for overflow and clear
if (__HAL_UART_GET_FLAG(&huart1, UART_FLAG_ORE))
__HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
if (__HAL_UART_GET_FLAG(&huart1, UART_FLAG_RXNE))
{
*ch = huart1.Instance->RDR & 0x1FF;
return true;
}
return false;
}
And to make printf work in blocking mode:
void _write(int file, char *ptr, int len)
{
HAL_UART_Transmit(&huart1, (uint8_t*) ptr, len, 10);
}


