请问这两种printf重定向有什么区别呢?原理是什么?

STM32和串口屏问题。

第一种重定向能够发送字符但是发送串口屏指令后无反应。

第二种能发串口屏指令,但是不能发送字符,发送后调试助手没反应。

int fputc(int ch, FILE *f)
{
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
  return ch;
}


int fputc(int ch,FILE *f)
{
    while((USART3->SR&0x40)==0);
    USART3->DR=(uint8_t) ch;
    return ch;
}

也许对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html