__io_getchar implementation for getchar() has a problem
Just repied to topic with the same question:
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; } void _write(int file, char *ptr, int len) { HAL_UART_Transmit(&huart1, (uint8_t*) ptr, len, 10); }
The printf will call the _write function. You need to end it with \r\n or nothing will be printed.
I would like to know how to redirect the putc because this is not possible:
if (sci1_get(&ch)) printf("%c", ch);