Truestudio中的printf重映射(通过串口打印数据)(HAL库版本)

转载自:https://blog.csdn.net/niu_88/article/details/86684065

代码中随意位置添加:

#include "stdio.h"

#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
PUTCHAR_PROTOTYPE
{
  HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, HAL_MAX_DELAY);
  return ch;
}
#endif


int _write(intfile, char *ptr, int len)
{
     int DataIdx;
      
     for (DataIdx = 0; DataIdx < len;DataIdx++)
     {
           __io_putchar(*ptr++);
     }
      return len;
}

其中HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, HAL_MAX_DELAY);
huart1是自己配置的串口的句柄。

为使printf中支持浮点型数据,需设置如下:
添加:-u_printf_float